US9876725B2

Methods and apparatus for flow-controllable multi-staged queues

Summary by NHIP

Multi-staged queue flow control

The method sends distinct flow control signals to separate stages of transmit queues when a receive queue encounters congestion. The first signal targets a queue at a specific interface card with a suspension time value, while the second signal suspends a different queue within the second stage based on requests from the receive queue.

Claim Score by NHIP

Read claim 13, the broadest

Abstract

In one embodiment, a method includes sending a first flow control signal to a first stage of transmit queues when a receive queue is in a congestion state. The method also includes sending a second flow control signal to a second stage of transmit queues different from the first stage of transmit queues when the receive queue is in the congestion state.

US9876725B2, drawing sheet 1
Sheet 1 of 8

Term

3 yearsleft in the term

Expires 13 September 2029, including 348 days of term adjustment.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

19 claims: 3 independent, 16 dependent

  1. 1
    A method, comprising:sending a first flow control signal based on data flow within a first flow control loop including (1) a first stage of transmit queues fanning into a second stage of transmit queues, (2) the second stage of transmit queues fanning into a physical link, and (3) the physical link;defining a second flow control signal based on data flow within a second flow control loop including (1) the second stage of transmit queues, and (2) the physical link, and excluding the first stage of transmit queues, the second flow control signal including instructions to suspend transmission at a transmit queue from the second stage of transmit queues;and sending the second flow control signal such that the transmit queue from the second stage of transmit queues suspends transmission in response to the second flow control, the first flow control signal includes an identifier of a transmit queue from the first stage of transmit queues and a suspension time value associated with the identifier of the transmit queue from the first stage of transmit queues, the suspension time value being based on a first request to suspend transmission at a receive queue associated with the first stage of transmit queues and a second request to suspend transmission at the receive queue.
  2. 7
    A non-transitory, processor-readable medium storing code representing instructions to be executed by a processor, the code comprising code to cause the processor to:send a first flow control signal based on data flow within a first flow control loop including (1) a first stage of transmit queues fanning into a second stage of transmit queues, (2) the second stage of transmit queues fanning into a physical link, and (3) the physical link;define a second flow control signal based on data flow within a second flow control loop including (1) the second stage of transmit queues, and (2) the physical link, and excluding the first stage of transmit queues, the second flow control signal including instructions to suspend transmission at a transmit queue from the second stage of transmit queues;and send the second flow control signal such that the transmit queue from the second stage of transmit queues suspends transmission in response to the second flow control, the first flow control signal includes an identifier of a transmit queue from the first stage of transmit queues and a suspension time value associated with the identifier of the transmit queue from the first stage of transmit queues, the suspension time value being based on a first request to suspend transmission at as receive queue associated with the first stage of transmit queues and a second request to suspend transmission at the receive queue.
  3. 13
    Broadest claimClaim Score 32, narrow(NHIP)A non-transitory, processor-readable medium storing code representing instructions to be executed by a processor, the code comprising code to cause the processor to:send a first flow control signal based on data flow within a first flow control loop including (1) a first stage of transmit queues fanning into a second stage of transmit queues, (2) the second stage of transmit queues fanning into a physical link, and (3) the physical link;define a second flow control signal based on data flow within a second flow control loop including (1) the second stage of transmit queues, and (2)the physical link, and excluding the first stage of transmit queues, the second flow control signal including instructions to suspend transmission at a transmit queue from the second stage of transmit queues;and send the second flow control signal such that the transmit queue from the second stage of transmit queues suspends transmission in response to the second flow control, the first flow control loop includes (1) a first stage of receive queues fanning into a second stage of receive queues, and (2) the second stage of receive queues fanning into the physical link, and the second flow control loop includes the second stage of receive queues and does not include the first stage of receive queues.