WO2006124414A2 - Queue aware flow control - Google Patents
Queue aware flow control Download PDFInfo
- Publication number
- WO2006124414A2 WO2006124414A2 PCT/US2006/017923 US2006017923W WO2006124414A2 WO 2006124414 A2 WO2006124414 A2 WO 2006124414A2 US 2006017923 W US2006017923 W US 2006017923W WO 2006124414 A2 WO2006124414 A2 WO 2006124414A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- pause
- flow
- transmitter
- receiver
- aware
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6205—Arrangements for avoiding head of line blocking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9078—Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
Definitions
- a router or switch directs packets from an input to an output.
- the classic network device architecture includes multiple line cards having onboard queue managers, that connect to a central switching mechanism.
- Fig. 1 is a high level depiction of a network device 10 depicting line cards 12 connected to a crossbar switch 14 by serial links 16.
- the crossbar includes crossbar switches in the form of ASICs coupled to a backplane formed of multiple serial links.
- the line cards act as the inputs and outputs of the router and are coupled to a backplane switching fabric which performs the task of coupling an input line card to an output line card for data transfer. Traffic from the input line card is passed through a switch the backplane switching fabric and passed to the proper output line card.
- High speed network device applications utilize a serial backplane where data is transferred on high-speed serial paths formed in the backplane.
- the queue managers must implement flow control to prevent data from being lost when buffers on a receiver overflow. Backpressure is used to control flow and the receiver has the ability to prevent transmission of data until its buffers have capacity to receive more data.
- head of line (HOL) blocking may occur when a packet at the head of the transmit queue can't be transmitted because of backpressure. This blocks all packets in the transmit queue from being transmitted even if their intended receiver is available.
- VOQs virtual output queues
- Flow Control is a process that is found in most Ethernet networks. It is needed to ensure that devices do not overload other devices on the network. Special frames called 'PAUSE frames' are used to signal traffic flow requests and status between nodes. PAUSE frames permit one end station to temporarily stop all traffic from the other end station (except MAC Control frames).
- Station A transmits frames at a rate that causes Station B to enter into a state of congestion (i.e. no buffer space remaining to receive additional frames).
- Station B may transmit a PAUSE frame to Station A requesting that Station A stop transmitting frames for a specified period of time.
- Station A Upon receiving the PAUSE frame, Station A will suspend further frame transmission until the specified time period has elapsed. This will allow Station B time to recover from the congestion state. At the end of the specified time period, Station A will resume normal transmission of frames.
- PAUSE frame protocol is bi-directional. Station A may send frames to pause Station B, and Station B may send frames to pause Station A.
- a PAUSE frame is the one type of frame that a station is allowed to send even if it is currently in the paused state.
- Support for PAUSE frames is optional among devices that implement the full- duplex protocol (the use of PAUSE frames is not supported in a half-duplex environment). It is valid for a device to support only half of the protocol; i.e. it may transmit PAUSE frames without having the capability to decode them on the receive side, and vice-versa.
- Devices use the Auto-Negotiation protocol to discover the PAUSE frame capabilities of the device at the other end of the link. This permits interoperability between devices that do or do not support one or both halves of the protocol.
- FIG. 1 is a block diagram of an example the architecture of a network device
- FIG. 2 is a block diagram of a conventional MAC
- FIG. 3 is block diagram of an embodiment of the invention.
- FIGs. 4 and 5 are flow charts of actions performed by embodiments of the invention.
- Ethernet Protocol MultiGigabit SERDES backplane for Access Routing platforms that utilize Ethernet Protocol.
- the use of Ethernet Protocol will help alleviate the congestion of the currently utilized PCI- based backplane and provide a low cost and low power point-to-point switched interconnect.
- the current Ethernet Flow Control protocol does not provide the required support for backplane applications.
- backplanes carry traffic in many virtual streams bound for different destinations.
- Datagram traffic (latency insensitive) and Control traffic (latency sensitive) are examples of two virtual streams in a system.
- the incoming virtual stream at that input ⁇ ort(s) of the switching node may enter a blocked state as it fills up.
- MAC Ethernet Media Access Controller
- Fig. 2 depicts the existing MAC system utilized in Ethernet systems in compliance with IEEE 802.3.
- the system includes Tx and Rx FIFOs, Pause Frame generation logic (PFGL), an 802.3 processing element, pause frame handling logic (PFFIL) and a Physical Layer (PHY) device coupled to the media.
- PFGL Pause Frame generation logic
- PFFIL pause frame handling logic
- PHY Physical Layer
- the system logic e.g., a DMA or switch scheduler
- the 802.3 processing element receives frames into the Rx FIFO.
- the pause frame generation logic When the fill level of the Rx FIFO is above a programmable threshold the pause frame generation logic generates a pause frame with a programmable pause value and passes the pause frame to the 802.3 processing element for transmission to the PHY. When the fill level of the Rx FIFO is below another programmable level the pause frame generation logic generates a pause frame with a zero pause value to signal a peer device to resume transmission.
- the Rx pause frame logic informs the 802.3 processing element to stop transmission for the pause time after completing transmission of the current frame.
- the Rx pause frame logic informs the 802.3 processing element to resume transfers when a pause frame with a zero pause is received.
- the standard 802.3x pause frame format included a Length/Type field of 16 bits that holds a value 88-08 (hex) to indicate a MAC control frame, a MAC Control Opcode of 16 bits that holds a value 00-01 to indicate that the frame is being used as a Pause Frame, and a Pausejime parameter field of 16 bits. Additionally, the Pause Frame includes a 42-byte reserved field (transmitted as all zeros) that is required to pad the length of the Pause Frame to the minimum Ethernet frame size.
- Fig 3 is a block diagram of an embodiment of the invention.
- System logic is coupled to sets of multiple Tx and Rx FIFOs.
- a scheduler has inputs coupled to Tx FIFOs and an output coupled to the 802.3 processing element.
- Pause Frame generation logic has control inputs coupled to the Rx FIFOs and a pause frame output coupled to the 802.3 processing element and
- Pause Frame handling logic has a Pause Frame input coupled to the 802.3 processing element and a control output coupled to the scheduler.
- the 802.3 processing element has Tx and Rx ports coupled to the PHY.
- the reserved field of the standard 802.3x Pause Frame is utilized to identify a particular virtual stream to be paused.
- This information can be encoded by assigning a bit position in the reserved field to each virtual stream, e.g., a particular Rx FIFO in a receiver and Tx FIFO in a transmitter that are exchanging information, and the setting of a bit in one of the bit positions identifies the particular Tx FIFO in the set of Tx FIFOs that is to be paused.
- a Flow- A ware Pause Frame is generated encoding the programmable pause time and having the bit position identifying Rx FIFO 1 in the reserved field of the Pause Frame set by the Pause Frame generation logic.
- the FAPF is then passed to the 802.3 processing element for transmission.
- a FAPF when received by the 802.3 processing element, it is passed to the PFHL which reads the pause time and virtual stream identification information from the Pause Frame.
- the pause time and virtual stream identification information are sent from the PFHL to the Scheduler.
- the Scheduler stops scheduling the identified Tx FIFO for transmission for the amount of time indicated by the pause time.
- an Ethernet device determines that the link partner does not support this modification, it will default to standard Ethernet flow control mechanism. This allows for support for off-the-shelf Ethernet devices.
- TX Standard MAC - RX Standard MAC -> HOL blocking can occur. No traffic class differentiation.
- TX Standard MAC - RX enhanced MAC -> HOL blocking can occur. No traffic class differentiation.
- TX enhanced MAC - RX standard MAC -> HOL blocking can occur. No traffic class differentiation.
- SERDES, SGMII and/or TBI reserved K-codes in the 8b/10b encoded PMD/PCS sub-layer are used to interrupt the packet being transmitted and insert the modified standard PAUSE frame or a specially defined PAUSE frame.
- a description of 8b/10b encoding in K codes is given in an article by Z.X. Widmer and P. A. Franaszek entitled A DC-BALANCED, PARTITIONED-BLOCK, 8B/10B TRANSMISSION CODE, IBM Journal of Research and Development, Vol. 27, Number 5, September 1983.
- the flow control message can be inserted by the receiver and received by the transmitter as soon as congestion is detected at the receiver, that is there is no need to wait for frame boundary, the buffering requirements per virtual stream can be reduced thereby reducing the turnaround time from the transmission of the pause frame to actual pause of the transmission from the virtual stream.
- the Pause Frame Generation Logic triggers the PHY to interrupt the packet being transmitted and to transmit a K-code that indicates to the transmitter that the current frame is being aborted and that the next packets will comprise a PAUSE frame. Accordingly, the delay between the time the RxFIFO overflows and the time that the transmitter pauses the transmission of packets on the virtual stream is reduced.
Abstract
A network flow control system utilizes flow-aware pause frames that identify a specific virtual stream to pause. Special codes may be utilized to interrupt a frame being transmitted to insert a pause frame without waiting for frame boundaries.
Description
PATENT APPLICATION
QUEUE AWARE FLOW CONTROL
BACKGROUND OF THE INVENTION
[01] A router or switch (network device) directs packets from an input to an output. The classic network device architecture includes multiple line cards having onboard queue managers, that connect to a central switching mechanism. Fig. 1 is a high level depiction of a network device 10 depicting line cards 12 connected to a crossbar switch 14 by serial links 16. The crossbar includes crossbar switches in the form of ASICs coupled to a backplane formed of multiple serial links. The line cards act as the inputs and outputs of the router and are coupled to a backplane switching fabric which performs the task of coupling an input line card to an output line card for data transfer. Traffic from the input line card is passed through a switch the backplane switching fabric and passed to the proper output line card. High speed network device applications utilize a serial backplane where data is transferred on high-speed serial paths formed in the backplane.
[02] The queue managers must implement flow control to prevent data from being lost when buffers on a receiver overflow. Backpressure is used to control flow and the receiver has the ability to prevent transmission of data until its buffers have capacity to receive more data.
[03] At the transmitter, head of line (HOL) blocking may occur when a packet at the head of the transmit queue can't be transmitted because of backpressure. This blocks all packets in the transmit queue from being transmitted even if their intended receiver is available.
[04] The problem of HOL blocking is solved by forming virtual output queues (VOQs) on the line cards where a VOQ is established for each potential receiver. Thus, if the head packet on a VOQ is blocked the line card can switch to another VOQ having a head packet that is not blocked.
[OS] The backplane interconnect architecture is a key chokepoint in today's communication infrastructure designs. A great deal of attention has been paid to moving data between chips on a board and there has been growing acceptance of Gigabit and Multi- Gigabit Ethernet as a point to point switched interconnect technology.
[06] Flow Control is a process that is found in most Ethernet networks. It is needed to ensure that devices do not overload other devices on the network. Special frames
called 'PAUSE frames' are used to signal traffic flow requests and status between nodes. PAUSE frames permit one end station to temporarily stop all traffic from the other end station (except MAC Control frames).
[07] For example, assume a full-duplex link that connects two devices called "Station A" and "Station B". Suppose Station A transmits frames at a rate that causes Station B to enter into a state of congestion (i.e. no buffer space remaining to receive additional frames). Station B may transmit a PAUSE frame to Station A requesting that Station A stop transmitting frames for a specified period of time. Upon receiving the PAUSE frame, Station A will suspend further frame transmission until the specified time period has elapsed. This will allow Station B time to recover from the congestion state. At the end of the specified time period, Station A will resume normal transmission of frames.
[08] Note that the PAUSE frame protocol is bi-directional. Station A may send frames to pause Station B, and Station B may send frames to pause Station A. A PAUSE frame is the one type of frame that a station is allowed to send even if it is currently in the paused state. Support for PAUSE frames is optional among devices that implement the full- duplex protocol (the use of PAUSE frames is not supported in a half-duplex environment). It is valid for a device to support only half of the protocol; i.e. it may transmit PAUSE frames without having the capability to decode them on the receive side, and vice-versa. Devices use the Auto-Negotiation protocol to discover the PAUSE frame capabilities of the device at the other end of the link. This permits interoperability between devices that do or do not support one or both halves of the protocol.
[09] However, the current flow control using PAUSE frame does not fit very well in the backplane architecture as it does not distinguish internal queues of the system and prevents traffic to flow between unclogged queues when one of the queues become full.
[10] The problem with PAUSE frames is that the transmitting device stops all further transmissions for duration of the PAUSE event in units of 512-bit times. This works very well for devices connected over the Ethernet network in a LAN/WAN environment. However, this can become a Quality of Service (QoS) bottleneck in a backplane interconnect environment.
[11] The challenges in the field of backplane interconnect design continue to increase with demands for more and better techniques having greater flexibility and .adaptability. Therefore, a need has arisen for a new system and method for providing backpressure control in Gigabit Ethernet systems allowing for QoS and Class of Service (CoS) requirements to be met.
BRIEF DESCRIPTION OF THE DRAWINGS
[12] Fig. 1 is a block diagram of an example the architecture of a network device;
[13] Fig. 2 is a block diagram of a conventional MAC;
[14] Fig. 3 is block diagram of an embodiment of the invention; and
[15] Figs. 4 and 5 are flow charts of actions performed by embodiments of the invention.
DETAILED DESCRIPTION OF THE INVENTION [16] Reference will now be made in detail to various embodiments of the invention. Examples of these embodiments are illustrated in the accompanying drawings. While the invention will be described in conjunction with these embodiments, it will be understood that it is not intended to limit the invention to any embodiment. On the contrary, it is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the various embodiments. However, the present invention maybe practiced without some or all of these specific details. La other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
[17] A first embodiment will be described in connection with a
MultiGigabit SERDES backplane for Access Routing platforms that utilize Ethernet Protocol. The use of Ethernet Protocol will help alleviate the congestion of the currently utilized PCI- based backplane and provide a low cost and low power point-to-point switched interconnect. However, the current Ethernet Flow Control protocol does not provide the required support for backplane applications.
[18] Typically, backplanes carry traffic in many virtual streams bound for different destinations. Datagram traffic (latency insensitive) and Control traffic (latency sensitive) are examples of two virtual streams in a system. When one of the outgoing line- cards has one of its virtual streams full, the incoming virtual stream at that input ρort(s) of the switching node may enter a blocked state as it fills up. If a current Ethernet Media Access Controller (MAC) is used, it can cause all traffic from many line cards to stop flowing to the switching node as one of the virtual streams is blocked. This is not desirable in the backplane interconnect.
[19] Even during heavy loading of the switched backplane, it should be possible to transport latency sensitive traffic and/or control traffic without getting head of line blocked because the traffic of one of the virtual streams is blocked. The avoidance of HOL blocking requires virtual stream aware flow control support in the Ethernet protocol.
[20] Ba the following, two techniques for providing virtual stream aware flow control in the Ethernet protocol are described. Both of these techniques are novel in a way that they not only support standard Ethernet MACs but also allow for a mixed fabric of modified and standard Ethernet devices. This is especially important in access routing market where time to market dictates development of modules/line cards using off-the-shelf components,
[21] Fig. 2 depicts the existing MAC system utilized in Ethernet systems in compliance with IEEE 802.3. The system includes Tx and Rx FIFOs, Pause Frame generation logic (PFGL), an 802.3 processing element, pause frame handling logic (PFFIL) and a Physical Layer (PHY) device coupled to the media.
[22] When transmitting, the system logic, e.g., a DMA or switch scheduler, puts frames for transmission in the Tx FIFO and 802.3 processing element transmits frames from the Tx FIFO to the PHY. When receiving, the 802.3 processing element receives frames into the Rx FIFO.
[23] When the fill level of the Rx FIFO is above a programmable threshold the pause frame generation logic generates a pause frame with a programmable pause value and passes the pause frame to the 802.3 processing element for transmission to the PHY. When the fill level of the Rx FIFO is below another programmable level the pause frame generation logic generates a pause frame with a zero pause value to signal a peer device to resume transmission.
[24] When a pause frame with a non-zero pause is received, the Rx pause frame logic informs the 802.3 processing element to stop transmission for the pause time after completing transmission of the current frame. The Rx pause frame logic informs the 802.3 processing element to resume transfers when a pause frame with a zero pause is received.
[25] The standard 802.3x pause frame format included a Length/Type field of 16 bits that holds a value 88-08 (hex) to indicate a MAC control frame, a MAC Control Opcode of 16 bits that holds a value 00-01 to indicate that the frame is being used as a Pause Frame, and a Pausejime parameter field of 16 bits. Additionally, the Pause Frame includes a
42-byte reserved field (transmitted as all zeros) that is required to pad the length of the Pause Frame to the minimum Ethernet frame size.
[26] Fig 3 is a block diagram of an embodiment of the invention. System logic is coupled to sets of multiple Tx and Rx FIFOs. A scheduler has inputs coupled to Tx FIFOs and an output coupled to the 802.3 processing element. Pause Frame generation logic has control inputs coupled to the Rx FIFOs and a pause frame output coupled to the 802.3 processing element and Pause Frame handling logic has a Pause Frame input coupled to the 802.3 processing element and a control output coupled to the scheduler. The 802.3 processing element has Tx and Rx ports coupled to the PHY.
[27] In this embodiment, the reserved field of the standard 802.3x Pause Frame is utilized to identify a particular virtual stream to be paused. Two bytes are used to define the virtual stream map [16 virtual streams] and two bytes define the spaces left for max sized messages per virtual stream [total of 16x2 = 32 bytes]. Rest of the 8 bytes are reserved for future use.
[28] This information can be encoded by assigning a bit position in the reserved field to each virtual stream, e.g., a particular Rx FIFO in a receiver and Tx FIFO in a transmitter that are exchanging information, and the setting of a bit in one of the bit positions identifies the particular Tx FIFO in the set of Tx FIFOs that is to be paused.
[29] The operation of the embodiment depicted in Fig. 3 will now be described. The operation of the PFGL to generate a flow-aware pause frame (FAPF) will be described with reference to Fig. 4 and the operation of the PFHL to handle received FAPF will be described with reference to Fig. 5.
. [30] In Fig. 4, if the fill level of a particular Rx FIFO, in this example Rx FIFO 1, exceeds the programmable threshold then a Flow- A ware Pause Frame is generated encoding the programmable pause time and having the bit position identifying Rx FIFO 1 in the reserved field of the Pause Frame set by the Pause Frame generation logic. The FAPF is then passed to the 802.3 processing element for transmission.
[31] In Fig. 5, when a FAPF is received by the 802.3 processing element, it is passed to the PFHL which reads the pause time and virtual stream identification information from the Pause Frame. The pause time and virtual stream identification information are sent from the PFHL to the Scheduler. The Scheduler stops scheduling the identified Tx FIFO for transmission for the amount of time indicated by the pause time.
[32] If during negotiation, either Link Level Auto negotiation or software initiated negotiation, an Ethernet device determines that the link partner does not support this
modification, it will default to standard Ethernet flow control mechanism. This allows for support for off-the-shelf Ethernet devices.
[33] Overall, 4 working configurations and their performance would be:
1. TX Standard MAC - RX Standard MAC -> HOL blocking can occur. No traffic class differentiation.
2. TX Standard MAC - RX enhanced MAC -> HOL blocking can occur. No traffic class differentiation.
3. TX enhanced MAC - RX standard MAC -> HOL blocking can occur. No traffic class differentiation.
4. TX enhanced MAC - RX enhanced MAC -> Full traffic class differentiation.
[34] However, when all link partners use Enhanced MAC, there are significant benefits to overall architecture as congestion information of one flow is fed back from the congestion point to the sources and helps relieve congestion by selectively backing- off only sources belonging to a particular virtual stream. The Pause Frame Handling Logic at the transmitter decodes the identity of the virtual stream requesting a pause and the scheduler PAUSEes all TxFIFOs belonging to the identified virtual stream.
[35] In another embodiment of the invention utilizes Reserved Code Words to interrupt a frame being transmitted to immediately transmit a Pause Frame. In a standard Ethernet system the transmission of the Pause Frame is delayed until the transmission of the current frame is completed. This could lead to overflow of the Rx buffer that requested the Pause Frame.
[36] In this embodiment, SERDES, SGMII and/or TBI reserved K-codes in the 8b/10b encoded PMD/PCS sub-layer are used to interrupt the packet being transmitted and insert the modified standard PAUSE frame or a specially defined PAUSE frame. A description of 8b/10b encoding in K codes is given in an article by Z.X. Widmer and P. A. Franaszek entitled A DC-BALANCED, PARTITIONED-BLOCK, 8B/10B TRANSMISSION CODE, IBM Journal of Research and Development, Vol. 27, Number 5, September 1983.
[37] Since the flow control message can be inserted by the receiver and received by the transmitter as soon as congestion is detected at the receiver, that is there is no need to wait for frame boundary, the buffering requirements per virtual stream can be reduced thereby reducing the turnaround time from the transmission of the pause frame to actual pause of the transmission from the virtual stream.
[38] Referring back to Fig. 3, when an RxFIFO overflows the Pause Frame Generation Logic triggers the PHY to interrupt the packet being transmitted and to transmit a K-code that indicates to the transmitter that the current frame is being aborted and that the
next packets will comprise a PAUSE frame. Accordingly, the delay between the time the RxFIFO overflows and the time that the transmitter pauses the transmission of packets on the virtual stream is reduced.
[39] The invention has now been described with reference to the preferred embodiments. Alternatives and substitutions will now be apparent to persons of skill in the art. For example, as is known in the art, the FIFO overflow condition can be defined in many ways. Further, virtual streams experiencing backpressure can be identified using different combinations of bit positions in the reserved fields of the Pause Frame. Also, the invention is not limited to systems in strict compliance with BEEE 802.3. Accordingly, it is not intended to limit the invention except as provided by the appended claims.
Claims
1. A method for controlling flow between a transmitter/receiver pair, with the receiver having a plurality of Rx FIFOs holding frames received at the receiver and the transmitter having a plurality of TxFIFOs, the method comprising: generating an overflow indication identifying an overflow RxFIFO having a fill level exceeding a threshold; forming a flow-aware pause frame indicating the identity of the overflow RxFIFO and indicating a pause time value; transmitting the flow-aware pause frame to the transmitter; receiving the flow-aware pause frame at the transmitter and decoding the flow-aware pause frame to determine the identity of a TxFIFO that transmits packets to the overflow RxFIFO and the pause time value; and stopping transmission of frames from an identified TxFIFO to the overflow RxFIFO for the pause time value.
2. The method of claim 1 further comprising: utilizing reserved bits in flow-aware pause frame to indicate the identity of the overflow RxFBFO.
3. The method of claim 1 further comprising: auto-negotiating between the transmitter and receiver to determine whether flow-aware pause frames are supported.
4. A system for controlling flow between a transmitter/receiver pair, said system comprising: a plurality of RxFIFOs at the receiver for holding received frames; a pause frame generation logic block that generates a flow-aware pause frame, when an overflow indication is received, identifying an overflow RxFIFO, with the pause frame generation logic encoding the identity of the overflow RxFIFO in the flow-aware pause frame; a first processing unit on the receiver, coupled to pause frame generation logic block, that transmits the flow-aware pause frame; a second processing on the transmitter for receiving the flow-aware pause frame; a plurality TxFIFOs at the transmitter that hold frames to be transmitted; a scheduler, coupled to the first and second TxFIFOs, that schedules a frame to be transmitted from the TxFIFOs; and a pause frame handling logic block, coupled to the second processor and the scheduler, that decodes a received flow-aware pause frame to identify a TxFIFO that transmits frames to the overflow RxPIFO indicated by the flow-aware pause frame and that signals the scheduler to stop transmitting frames from an identified TxFBFO to the overflow RxFIFO.
5. A method for controlling flow between a transmitter/receiver pair, with the receiver having an Rx FIFO holding packets to be transmitted, the method comprising: generating a full indication at the RxFJOFO when the fill level of the RxFlFO exceeds a threshold; forming, in response to the full indication, a pause frame indicating a pause time value; interrupting a frame being transmitted from the receiver and transmitting a special code in response to pause frame formation; receiving the special code at the transmitter and responding to subsequent packets as a pause frame; and stopping transmission of frames from the first TxFIFO for the pause time value.
6. The method of claim 5 further comprising: autonegotiating to determine whether the transmitter and receiver support use of the special code.
7. A system for controlling flow between a transmitter/receiver pair, with the receiver having a plurality of Rx FIFOs holding frames received at the receiver and the transmitter having a plurality of TxFBFOs, the system comprising: means for generating an overflow indication identifying an overflow RxFIFO having a fill level exceeding a threshold; means for forming a flow-aware pause frame indicating the identity of the overflow RxFIFO and indicating a pause time value; means for transmitting the flow-aware pause frame to the transmitter; means for receiving the flow-aware pause frame at the transmitter and decoding the flow-aware pause frame to determine the identity of a TxFIFO that transmits packets to the overflow RxFIFO and the pause time value; and means for stopping transmission of frames from an identified TxFIFO to the overflow RxFIFO for the pause time value.
8. The system of claim 7 further comprising: means for utilizing reserved bits in flow-aware pause frame to indicate the identity of the overflow RxFIFO.
9. The method of claim 7 further comprising: auto-negotiating between the transmitter and receiver to determine whether flow-aware pause frames are supported.
10. A system for controlling flow between a transmitter/receiver pair, with the receiver having an Rx FIFO holding packets to be transmitted, the sysstem comprising: means for generating a full indication at the RxFIFO when the fill level of the RxFIFO exceeds a threshold; means for forming, in response to the full indication, a pause frame indicating a pause time value; means for interrupting a frame being transmitted from the receiver and transmitting a special code in response to pause frame formation; means for receiving the special code at the transmitter and responding to subsequent packets as a pause frame; means for stopping transmission of frames from the first TxFIFO for the pause time value.
11. The system of claim 10 further comprising: means for autonegotiating to determine whether the transmitter and receiver support use of the special code.
12. A system for controlling flow between a transmitter/receiver pair, with the receiver having a plurality of Rx FIFOs holding frames received at the receiver and the transmitter having a plurality of TxFIFOs, the receiver comprising: means for generating an overflow indication identifying an overflow RxFIFO having a fill level exceeding a threshold; means for forming a flow-aware pause frame indicating the identity of the overflow RxFIFO and indicating a pause time value; means for transmitting the flow-aware pause frame to the transmitter.
13. A system for controlling flow between a transmitter/receiver pair, with the receiver having a plurality of Rx FIFOs holding frames received at the receiver and the transmitter having a plurality of TxFIFOs, the receiver comprising: means for receiving a flow-aware pause frame at the transmitter and decoding the flow-aware pause frame to determine the identity of a TxFIFO that transmits packets to an overflow RxFIFO identified by the flow-aware pause frame and the pause time value; and means for stopping transmission of frames from an identified TxFEFO to the overflow RxFIFO for the pause time value.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06752446A EP1882336B1 (en) | 2005-05-16 | 2006-05-10 | Queue aware flow control |
CN200680010068.1A CN101536413B (en) | 2005-05-16 | 2006-05-10 | Queue aware flow control |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/130,700 | 2005-05-16 | ||
US11/130,700 US7839779B2 (en) | 2005-05-16 | 2005-05-16 | Queue aware flow control |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2006124414A2 true WO2006124414A2 (en) | 2006-11-23 |
WO2006124414A3 WO2006124414A3 (en) | 2007-11-22 |
Family
ID=37431830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2006/017923 WO2006124414A2 (en) | 2005-05-16 | 2006-05-10 | Queue aware flow control |
Country Status (4)
Country | Link |
---|---|
US (1) | US7839779B2 (en) |
EP (1) | EP1882336B1 (en) |
CN (1) | CN101536413B (en) |
WO (1) | WO2006124414A2 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2048831A1 (en) * | 2007-10-12 | 2009-04-15 | Nokia Siemens Networks S.p.A. | Method and systems for QoS-aware flow control in communication networks, corresponding network and computer program product |
EP2256640A1 (en) * | 2009-05-29 | 2010-12-01 | Oracle America, Inc. | Managing traffic on virtualized lanes between a network switch and a virtual machine |
EP2302847A1 (en) | 2009-09-25 | 2011-03-30 | Alcatel Lucent | Control of traffic flows with different CoS in a communication network |
US8767752B1 (en) | 2010-05-03 | 2014-07-01 | Pluribus Networks, Inc. | Method and system for resource coherency and analysis in a network |
US8891543B1 (en) | 2011-05-23 | 2014-11-18 | Pluribus Networks Inc. | Method and system for processing packets in a network device |
US9154445B2 (en) | 2010-05-03 | 2015-10-06 | Pluribus Networks Inc. | Servers, switches, and systems with virtual interface to external network connecting hardware and integrated networking driver |
US9160668B2 (en) | 2010-05-03 | 2015-10-13 | Pluribus Networks Inc. | Servers, switches, and systems with switching module implementing a distributed network operating system |
US9300576B2 (en) | 2010-05-03 | 2016-03-29 | Pluribus Networks Inc. | Methods, systems, and fabrics implementing a distributed network operating system |
US9306849B2 (en) | 2010-05-03 | 2016-04-05 | Pluribus Networks, Inc. | Methods and systems for managing distribute media access control address tables |
US9304782B2 (en) | 2010-05-03 | 2016-04-05 | Pluribus Networks, Inc. | Network switch, systems, and servers implementing boot image delivery |
US9319335B1 (en) | 2010-12-07 | 2016-04-19 | Pluribus Networks, Inc. | Distributed operating system for a layer 2 fabric |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949452B2 (en) * | 2005-04-07 | 2015-02-03 | Opanga Networks, Inc. | System and method for progressive download with minimal play latency |
US8909807B2 (en) * | 2005-04-07 | 2014-12-09 | Opanga Networks, Inc. | System and method for progressive download using surplus network capacity |
US8553720B2 (en) | 2006-04-19 | 2013-10-08 | Marvell World Trade Ltd. | Adaptive speed control for MAC-PHY interfaces |
US8208380B1 (en) * | 2006-11-22 | 2012-06-26 | Marvell Israel (M.I.S.L) Ltd. | Lossless system support using circular buffer allocation |
US8243752B2 (en) * | 2007-04-04 | 2012-08-14 | Marvell World Trade Ltd. | Long-reach ethernet for 1000BASE-T and 10GBASE-T |
US7936669B2 (en) | 2008-06-04 | 2011-05-03 | Entropic Communications, Inc. | Systems and methods for flow control and quality of service |
CN101800706B (en) * | 2010-03-25 | 2015-07-22 | 中兴通讯股份有限公司 | Method and system for obtaining threshold of flow control buffer area |
US8539260B2 (en) * | 2010-04-05 | 2013-09-17 | Intel Corporation | Method, apparatus, and system for enabling platform power states |
CN102739510B (en) * | 2011-04-15 | 2016-07-27 | 中兴通讯股份有限公司 | A kind of flow control method and device |
CN104641609B (en) * | 2012-09-10 | 2018-03-09 | 马维尔国际贸易有限公司 | Method and apparatus for transmitting packet between the interface control module of Line cards |
US8593948B1 (en) * | 2012-12-04 | 2013-11-26 | Hitachi, Ltd. | Network device and method of controlling network device |
US9030936B2 (en) * | 2013-06-12 | 2015-05-12 | Intel Corporation | Flow control with reduced buffer usage for network devices |
US9497125B2 (en) | 2013-07-28 | 2016-11-15 | Mellanox Technologies Ltd. | Congestion control enforcement in a virtualized environment |
JP6287451B2 (en) * | 2014-03-26 | 2018-03-07 | 富士通株式会社 | Data receiving apparatus, data receiving apparatus control method, and data transmitting / receiving system having data transmitting apparatus and data receiving apparatus |
US9807024B2 (en) | 2015-06-04 | 2017-10-31 | Mellanox Technologies, Ltd. | Management of data transmission limits for congestion control |
US10009277B2 (en) | 2015-08-04 | 2018-06-26 | Mellanox Technologies Tlv Ltd. | Backward congestion notification in layer-3 networks |
US10237376B2 (en) | 2015-09-29 | 2019-03-19 | Mellanox Technologies, Ltd. | Hardware-based congestion control for TCP traffic |
CN107689923B (en) * | 2016-08-04 | 2021-02-12 | 华为技术有限公司 | Message processing method and router |
US11909848B2 (en) | 2020-07-09 | 2024-02-20 | Mellanox Technologies, Ltd. | Multi-flow compression |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170022B1 (en) | 1998-04-03 | 2001-01-02 | International Business Machines Corporation | Method and system for monitoring and controlling data flow in a network congestion state by changing each calculated pause time by a random amount |
US20020087723A1 (en) | 2001-01-03 | 2002-07-04 | Robert Williams | Method and apparatus for performing priority-based flow control |
US20020136163A1 (en) | 2000-11-24 | 2002-09-26 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method for flow control |
US20030046458A1 (en) | 2001-08-28 | 2003-03-06 | Kenta Morishima | Data transfer equipment and aligner included in data transfer equipment |
US20030218977A1 (en) | 2002-05-24 | 2003-11-27 | Jie Pan | Systems and methods for controlling network-bound traffic |
US20040081090A1 (en) | 2002-09-09 | 2004-04-29 | Toshihide Hara | Congestion controller for ethernet switch |
US6745179B2 (en) | 2001-10-12 | 2004-06-01 | Shipley Company, L.L.C. | Method and system for facilitating viewer navigation through online information relating to chemical products |
US6771601B1 (en) | 2000-01-31 | 2004-08-03 | International Business Machines Corporation | Network switch having source port queuing and methods, systems and computer program products for flow level congestion control suitable for use with a network switch having source port queuing |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026075A (en) * | 1997-02-25 | 2000-02-15 | International Business Machines Corporation | Flow control mechanism |
DE69923898T2 (en) * | 1998-03-14 | 2006-04-27 | Samsung Electronics Co., Ltd., Suwon | Apparatus and method for exchanging frame messages of different lengths in a CDMA communication system |
US6167029A (en) * | 1998-10-13 | 2000-12-26 | Xaqti Corporation | System and method for integrated data flow control |
JP2003511906A (en) * | 1999-10-02 | 2003-03-25 | サムスン エレクトロニクス カンパニー リミテッド | Method for fair flow control in packet-switched networks |
US6754179B1 (en) * | 2000-06-13 | 2004-06-22 | Lsi Logic Corporation | Real time control of pause frame transmissions for improved bandwidth utilization |
US7062568B1 (en) * | 2002-01-31 | 2006-06-13 | Forcelo Networks, Inc. | Point-to-point protocol flow control extension |
-
2005
- 2005-05-16 US US11/130,700 patent/US7839779B2/en active Active
-
2006
- 2006-05-10 EP EP06752446A patent/EP1882336B1/en not_active Not-in-force
- 2006-05-10 CN CN200680010068.1A patent/CN101536413B/en active Active
- 2006-05-10 WO PCT/US2006/017923 patent/WO2006124414A2/en active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170022B1 (en) | 1998-04-03 | 2001-01-02 | International Business Machines Corporation | Method and system for monitoring and controlling data flow in a network congestion state by changing each calculated pause time by a random amount |
US6771601B1 (en) | 2000-01-31 | 2004-08-03 | International Business Machines Corporation | Network switch having source port queuing and methods, systems and computer program products for flow level congestion control suitable for use with a network switch having source port queuing |
US20020136163A1 (en) | 2000-11-24 | 2002-09-26 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method for flow control |
US20020087723A1 (en) | 2001-01-03 | 2002-07-04 | Robert Williams | Method and apparatus for performing priority-based flow control |
US20030046458A1 (en) | 2001-08-28 | 2003-03-06 | Kenta Morishima | Data transfer equipment and aligner included in data transfer equipment |
US6745179B2 (en) | 2001-10-12 | 2004-06-01 | Shipley Company, L.L.C. | Method and system for facilitating viewer navigation through online information relating to chemical products |
US20030218977A1 (en) | 2002-05-24 | 2003-11-27 | Jie Pan | Systems and methods for controlling network-bound traffic |
US20040081090A1 (en) | 2002-09-09 | 2004-04-29 | Toshihide Hara | Congestion controller for ethernet switch |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2048831A1 (en) * | 2007-10-12 | 2009-04-15 | Nokia Siemens Networks S.p.A. | Method and systems for QoS-aware flow control in communication networks, corresponding network and computer program product |
WO2009046869A1 (en) * | 2007-10-12 | 2009-04-16 | Nokia Siemens Networks S.P.A. | Method and systems for qos-aware flow control in communication networks, corresponding network and computer program product |
EP2256640A1 (en) * | 2009-05-29 | 2010-12-01 | Oracle America, Inc. | Managing traffic on virtualized lanes between a network switch and a virtual machine |
CN101902395A (en) * | 2009-05-29 | 2010-12-01 | 甲骨文美国公司 | The system and method for the resource on the management host |
US8174984B2 (en) | 2009-05-29 | 2012-05-08 | Oracle America, Inc. | Managing traffic on virtualized lanes between a network switch and a virtual machine |
EP2302847A1 (en) | 2009-09-25 | 2011-03-30 | Alcatel Lucent | Control of traffic flows with different CoS in a communication network |
WO2011036001A1 (en) * | 2009-09-25 | 2011-03-31 | Alcatel Lucent | Control of traffic flows with different cos in a communications network |
US9300576B2 (en) | 2010-05-03 | 2016-03-29 | Pluribus Networks Inc. | Methods, systems, and fabrics implementing a distributed network operating system |
US9042233B2 (en) | 2010-05-03 | 2015-05-26 | Pluribus Networks Inc. | Method and system for resource coherency and analysis in a network |
US9154445B2 (en) | 2010-05-03 | 2015-10-06 | Pluribus Networks Inc. | Servers, switches, and systems with virtual interface to external network connecting hardware and integrated networking driver |
US9160668B2 (en) | 2010-05-03 | 2015-10-13 | Pluribus Networks Inc. | Servers, switches, and systems with switching module implementing a distributed network operating system |
US8767752B1 (en) | 2010-05-03 | 2014-07-01 | Pluribus Networks, Inc. | Method and system for resource coherency and analysis in a network |
US9306849B2 (en) | 2010-05-03 | 2016-04-05 | Pluribus Networks, Inc. | Methods and systems for managing distribute media access control address tables |
US9304782B2 (en) | 2010-05-03 | 2016-04-05 | Pluribus Networks, Inc. | Network switch, systems, and servers implementing boot image delivery |
US9319335B1 (en) | 2010-12-07 | 2016-04-19 | Pluribus Networks, Inc. | Distributed operating system for a layer 2 fabric |
US8891543B1 (en) | 2011-05-23 | 2014-11-18 | Pluribus Networks Inc. | Method and system for processing packets in a network device |
Also Published As
Publication number | Publication date |
---|---|
CN101536413A (en) | 2009-09-16 |
EP1882336A4 (en) | 2011-08-31 |
US20060268709A1 (en) | 2006-11-30 |
EP1882336B1 (en) | 2013-02-20 |
WO2006124414A3 (en) | 2007-11-22 |
CN101536413B (en) | 2014-06-11 |
EP1882336A2 (en) | 2008-01-30 |
US7839779B2 (en) | 2010-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7839779B2 (en) | Queue aware flow control | |
US7957285B1 (en) | Inter-device flow control | |
US7903552B2 (en) | Directional and priority based flow control mechanism between nodes | |
EP1280301B1 (en) | Method and switch for congestion control | |
US9094327B2 (en) | Prioritization and preemption of data frames over a switching fabric | |
US8638784B1 (en) | Network switch having virtual input queues for flow control | |
US9992130B2 (en) | Systems and methods for flow control and quality of service | |
US7120113B1 (en) | Systems and methods for limiting low priority traffic from blocking high priority traffic | |
US8059671B2 (en) | Switching device | |
US6295281B1 (en) | Symmetric flow control for ethernet full duplex buffered repeater | |
US8819265B2 (en) | Managing flow control buffer | |
US8018851B1 (en) | Flow control for multiport PHY | |
US7106696B1 (en) | Systems and methods for limiting the rates of data to/from a buffer | |
US20140163810A1 (en) | Method for data transmission among ECUs and/or measuring devices | |
EP2442498B1 (en) | Method and device for controlling switching network traffic | |
US7701949B1 (en) | System and method for switching high priority traffic with low latency | |
US20050138238A1 (en) | Flow control interface | |
JP3995482B2 (en) | Router that transmits flow control signals at high speed | |
Kirstädter et al. | A Highly Scalable Switching and Routing Chipset |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200680010068.1 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2006752446 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
NENP | Non-entry into the national phase |
Ref country code: RU |