Method and apparatus providing programmable thresholds for full-duplex flow control in a network switch
First Claim
1. A method in a network having network stations, the method comprising:
- setting a first queue threshold for a free pointer queue configured for storing free frame pointers, the free frame pointers specifying respective memory locations available for storing received data frames;
receiving a first data frame from a first of the network stations; and
selectively transmitting a pause frame specifying a selected pause interval to the first transmitting station based on the first queue threshold and a number of the free frame pointers stored in the free pointer queue, the pause frame causing the first network station to halt transmission for the selected pause interval, whereinthe selectively transmitting step comprises transmitting the pause frame when the number of free frame pointers falls below the first queue threshold.
1 Assignment
0 Petitions
Accused Products
Abstract
A network having a shared memory architecture for storing data frames has a set of programmable thresholds that specify when flow control should be initiated on full-duplex network ports. The network switch includes a queue for storing free frame pointers that specify available memory locations in an external memory for storing data frames received from a network station. The network switch takes a frame pointer from a free buffer queue for each received data frame, and stores the received data frame in the location in external memory specified by the frame pointer while a decision making engine within the switch determines the appropriate destination ports. Flow control is initiated based on the number of available frame pointers by transmitting a PAUSE frame having a selected PAUSE interval to a transmitting network station. Specifically, a full-duplex port will output a PAUSE frame having a short, medium, or long programmed pause interval if the free buffer pool of available frame pointers falls below a high, medium, or low programmable threshold, respectively. The switch thus provides flexibility in generating variable-length PAUSE control frames to minimize wasting network bandwidth.
65 Citations
20 Claims
-
1. A method in a network having network stations, the method comprising:
-
setting a first queue threshold for a free pointer queue configured for storing free frame pointers, the free frame pointers specifying respective memory locations available for storing received data frames; receiving a first data frame from a first of the network stations; and selectively transmitting a pause frame specifying a selected pause interval to the first transmitting station based on the first queue threshold and a number of the free frame pointers stored in the free pointer queue, the pause frame causing the first network station to halt transmission for the selected pause interval, wherein the selectively transmitting step comprises transmitting the pause frame when the number of free frame pointers falls below the first queue threshold.
-
-
2. A method in a network having network stations, the method comprising:
-
setting a first queue threshold for a free pointer queue configured for storing free frame pointers, the free frame pointers specifying respective memory locations available for storing received data frames; receiving a first data frame from a first of the network stations; selectively transmitting a pause frame specifying a selected pause interval to the first transmitting station based on the first queue threshold and a number of the free frame pointers stored in the free pointer queue, the pause frame causing the first network station to halt transmission for the selected pause interval; setting a second queue threshold level less than the first queue threshold for the free pointer queue; and setting a first delay interval and a second delay interval longer than the first delay interval, wherein the selectively transmitting step comprises selecting one of the first and second delay intervals as the selected pause interval based on the number of free frame pointers falling below the first and second thresholds, respectively. - View Dependent Claims (3, 4)
-
-
5. A method in a network having network stations, the method comprising:
-
setting a first queue threshold for a free pointer queue configured for storing free frame pointers, the free frame pointers specifying respective memory locations available for strong received data frames; receiving a first data frame from a first of the network stations; selectively transmitting a pause frame specifying a selected pause interval to the first transmitting station based on the first queue threshold and a number of the free frame pointers stored in the free pointer queue, the pause frame causing the first network station to halt transmission for the selected pause interval; obtaining one of the free frame pointers from the free pointer queue for storing the received first data frame; and decrementing a counter corresponding to the number of the free frame pointers. - View Dependent Claims (6, 7, 8, 9)
-
-
10. A method in a network having network stations, the method comprising:
-
setting a first queue threshold for a free pointer queue configured for storing free frame pointers, the free frame pointers specifying respective memory locations available for storing received data frames; receiving a first data frame from a first of the network stations; selectively transmitting a pause frame specifying a selected pause interval to the first transmitting station based on the first queue threshold and a number of the free frame pointers stored in the free pointer queue, the pause frame causing the first network station to halt transmission for the selected pause interval; and setting the pause interval to equal a selected number of slot times based on a reduction in the number of free frame pointers relative to the first queue threshold. - View Dependent Claims (11)
-
-
12. A method in a network switch for selectively outputting a data frame from a transmitting station to a destination station, comprising:
-
setting a first queue threshold and a second queue threshold less than the first queue threshold for a free pointer queue configured for storing free frame pointers, the free frame pointers specifying respective memory locations available for storing received data frames; setting a first delay interval and a second delay interval longer than the first delay interval; receiving a first data frame from the transmitting station; and transmitting a pause frame specifying a selected pause interval to the transmitting station, the pause interval selected from at least one of the first and second delay intervals based a number of the stored free frame pointers falling below at least one of the first and second queue thresholds, respectively. - View Dependent Claims (13, 14)
-
-
15. An apparatus for outputting a data frame from a transmitting station to a destination station in a network, comprising:
-
a first port for receiving at least a portion of the data frame from the transmitting station; a free pointer queue for storing free frame pointers, the free frame pointers specifying respective memory locations available for storing received data frames, a first programmable threshold register for storing a first threshold value; a second port for outputting data frames identified for transmission to the destination station; a controller for causing the first output port to output a pause frame having a pause interval selected based on a number of the free frame pointers relative to the first threshold value; and a first set of programmable pause configuration registers storing first, second, and third pause intervals, the controller selecting one of the first, second, and third pause intervals as the selected pause interval based on the number of the free frame pointers. - View Dependent Claims (16, 17, 18)
-
-
19. An apparatus for outputting a data frame from a transmitting station to a destination station in a network, comprising:
-
a first port for receiving at least a portion of the data frame from the transmitting station; a free pointer queue for storing free frame pointers, the free frame pointers specifying respective memory locations available for storing received data frames, a first programmable threshold register for storing a first threshold value; a second port for outputting data frames identified for transmission to the destination station; a controller for causing the first output port to output a pause frame having a pause interval selected based on a number of the free frame pointers relative to the first threshold value; and a counter counting the number of the free frame pointers in the free pointer queue, the controller decrementing the queue counter in response to storage of the first data frame using one of the free frame pointers obtained from the free pointer queue, and incrementing the queue counter in response to returning the one of the free frame pointers to the free pointer queue after transmission of the first data frame. - View Dependent Claims (20)
-
Specification