Method and apparatus for controlling the flow of data frames through a network switch on a port-by-port basis
First Claim
1. A method of regulating the flow of data between plural network stations through a network switch, the method comprising the steps:
- setting respective threshold values that indicate a saturation level for the internal resources of each transmit port of the switch, said setting of respective threshold values includes setting a first threshold value for a low priority portion of an output queue, and setting a second threshold value for a high priority portion of the output queue;
receiving, by a receive port of the switch, a data frame destined to a transmit port, the data frame being received from a first of the plural network stations;
determining if the internal resources of the transmit port have reached the threshold value for that transmit port; and
selectively transmitting a PAUSE frame that specifies a pause interval value if the internal resources of that transmit port have reached the threshold value, the PAUSE frame causing the first network station to discontinue transmission of data frames to that transmit port for the duration of the pause interval value.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus and method are disclosed for regulating the flow of data between plural network stations through a network switch. A receive port functions to receive data frames from a first network station, and a transmit port outputs the received data frames to a second network station. A programmable threshold register is provided for storing a threshold value that indicates a saturation level for the internal resources of the transmit port. Control circuitry is used to monitor the internal resources of the transmit port and determine whether or not the threshold value has been reached. If the threshold value has been reached, then the control circuitry will implement a flow control process that causes the first network station to discontinue transmission of data frames to the transmit port until the internal resources of the transmit port fall below the threshold value.
-
Citations
22 Claims
-
1. A method of regulating the flow of data between plural network stations through a network switch, the method comprising the steps:
-
setting respective threshold values that indicate a saturation level for the internal resources of each transmit port of the switch, said setting of respective threshold values includes setting a first threshold value for a low priority portion of an output queue, and setting a second threshold value for a high priority portion of the output queue;
receiving, by a receive port of the switch, a data frame destined to a transmit port, the data frame being received from a first of the plural network stations;
determining if the internal resources of the transmit port have reached the threshold value for that transmit port; and
selectively transmitting a PAUSE frame that specifies a pause interval value if the internal resources of that transmit port have reached the threshold value, the PAUSE frame causing the first network station to discontinue transmission of data frames to that transmit port for the duration of the pause interval value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
retrieving the pause interval value stored in the at least one pause registers; and
constructing a PAUSE frame that includes the pause interval value retrieved from the at least one pause registers.
-
-
8. The method of claim 1, wherein the step of selectively transmitting a PAUSE frame comprises the steps:
-
alerting the receive port that the transmit port has reached the threshold value; and
transmitting, by the receive port, the PAUSE frame to the first network station.
-
-
9. The method of claim 8, wherein the step of alerting the receive port comprises a step of transmitting a signal from a port vector FIFO that places frame pointers in the output queues, to the receive port.
-
10. The method of claim 1, wherein upon receiving the PAUSE frame, the first network station performs the steps:
-
completing transmission of any data frame that is currently in progress; and
waiting until the duration specified by the pause interval value expires before transmitting any additional data frames that are queued for transmission.
-
-
11. The method of claim 9, further comprising the steps:
-
receiving a second PAUSE frame that specifies a second pause interval value; and
causing the first network station to restart and continue counting based on the value specified by the second pause interval.
-
-
12. The method of claim 9, further comprising the step of incrementing the value of a received counter that specifies the total number of PAUSE frames received by the first network station.
-
13. An arrangement for regulating the flow of data between plural network stations through a network switch, said plural network stations being connectable to the network switch, the arrangement comprising:
-
a receive port for receiving data frames from a first of said plural network stations;
a transmit port for outputting the received data frames to a second of said plural network stations;
a programmable threshold register for storing a threshold value that indicates a saturation level for internal resources of said transmit port, wherein said internal resources include an output queue for storing frame pointers that identify locations in an external memory where said received data frames are located and said threshold value specifies a threshold number of frame pointers that may be stored in said output queue; and
control circuitry for selectively transmitting a PAUSE frame to said first network station upon detecting that the internal resources of said transmit port have reached said threshold value, said PAUSE frame specifying a pause interval value and causing said first network station to discontinue transmission of data frames to said transmit port until said pause interval value has expired, wherein said programmable threshold register stores a first threshold value that specifies a threshold number of frame pointers that may be stored in a low priority portion of said output queue, and a second threshold value that specifies a threshold number of frame pointers that may be stored in a high priority portion of said output queue. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
said output queue outputs an overflow signal when the number of frame pointers stored therein has reached said threshold value; - and
said control circuitry transmit said PAUSE frame in response to detection of said overflow signal.
-
-
17. The arrangement of claim 13, wherein said control circuitry includes a port vector FIFO that places frame pointers for queuing into output queues of said network switch, and said control circuitry is logically coupled to said receive port.
-
18. The arrangement of claim 17, wherein:
-
said port vector FIFO outputs a signal to said receive port, said signal being indicative of said internal resources reaching said threshold value; and
said receive port outputs said pause frame to said first network station in response to receiving said pulse.
-
-
19. The arrangement of claim 13, further comprising a management register for storing the value of a transmit flow control counter that indicates the total number of PAUSE frames that have been transmitted by said receive port.
-
20. The arrangement of claim 19, wherein said management register further stores the value of a receive flow control counter that indicates the total number of PAUSE frames that have been received by said transmit port.
-
21. The arrangement of claim 13, wherein upon receiving said PAUSE frame, said first network station is configured to perform the steps:
-
complete transmission of any data frame that is currently in progress; and
wait until said pause interval value expires before transmitting any additional data frames that are queued for transmission.
-
-
22. The arrangement of claim 21, wherein said first network station is further configured to perform the steps:
-
receive a second PAUSE frame that specifies a second pause interval value; and
restart a new count based on the value of said second pause interval.
-
Specification