IP Library Granted Patent US 9,166,919
Granted Patent B2
US 9,166,919 · App. 13/428,606 · Granted Oct 20, 2015

Reducing headroom

Inventors: Vahid Tabatabaee (Cupertino, CA); Bruce Kwan (Sunnyvale, CA)
Assignee: BROADCOM CORPORATION
H04L47/266H04L47/29H04L47/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,166,919
App. No.
13/428,606
Granted
Oct 20, 2015
Kind
B2
Abstract

The various embodiments of the invention provide mechanisms to reduce headroom size while minimizing dropped packets. In general, this is done by using a shared headroom space between all ports, and providing a randomized delay in transmitting a flow-control message.

Claims (43)

1. A method for a switch that receives packets in a packet-switching network, the method comprising:

setting an upper (XOFF_MAX) threshold for a buffer that shares headroom between a plurality of ports in the switch, the XOFF_MAX threshold indicating a buffer usage that always triggers a transmission of a flow-control (XOFF) message;

setting a lower (XOFF_MIN) threshold for the buffer, the XOFF_MIN threshold indicating a buffer usage that never triggers the transmission of the XOFF message;

determining a random (XRAND) value for each port and priority of the switch, each XRAND value being between the XOFF_MAX threshold and the XOFF_MIN threshold;

monitoring usage of the buffer to determine whether the buffer usage exceeds the XRAND value of a particular port;

transmitting the XOFF message to a data source that sends packets to the particular port when the buffer usage exceeds the XRAND value of the particular port; and

when the XOFF message is transmitted, wait a predetermined period of time before determining a new XRAND value for the particular port, wherein

the XOFF message instructs the data source to pause transmission of the data packets to the switch.

2. A system, comprising:

a switch that includes a plurality of ports, a buffer that shares headroom between each of the plurality of ports and circuitry, the circuitry configured to

set an upper (XOFF_MAX) threshold for the buffer, the XOFF_MAX threshold indicating a buffer usage that always triggers a transmission of a flow-control (XOFF) message;

set a lower (XOFF_MIN) threshold for the buffer, the XOFF_MIN threshold indicating a buffer usage that never triggers the transmission of the XOFF message;

determine a random (XRAND) value for each port and priority of the switch, each XRAND value being between the XOFF_MAX threshold and the XOFF_MIN threshold;

monitor usage of the buffer to determine whether the buffer usage exceeds the XRAND value of a particular port;

transmit the XOFF message to a data source that sends packets to the particular port when the buffer usage exceeds the XRAND value of the particular port; and

when the XOFF message is transmitted, wait a predetermined period of time before determining a new XRAND value for the particular port, wherein

the XOFF message instructs the data source to pause transmission of the data packets to the switch.

3. The system according to claim 2 , wherein the XRAND value is determined by subtracting a random offset from the XOFF_MAX threshold.

4. The system according to claim 2 , wherein

the XRAND value is determined by adding a random offset to the XOFF_MIN threshold, and

the XRAND value is between the XOFF_MIN threshold and the XOFF_MAX threshold.

5. The method according to claim 1 , wherein the XRAND value is determined by subtracting a random offset from the XOFF_MAX threshold.

6. The method according to claim 1 , wherein the XRAND value is determined by adding a random offset to the XOFF_MIN threshold.

7. The method according to claim 1 , wherein

the data source transmits packets to a destination device via the particular port of the switch,

the data source receives the XOFF message from the switch, and

after reception of the XOFF message from the switch the data source changes a transmission route of the packets to the destination device so that the packets do not pass through the switch.

8. The method according to claim 7 , wherein, after at least the predetermined period of time, the data source redirects the transmission route of the packets to the destination device so that the packets again pass through the switch.

9. The method according to claim 1 , wherein a flow control of the buffer is based on a most recent selected XRAND value.

10. The method according to claim 1 , wherein the XRAND value for each of the plurality of ports is different.

11. The system according to claim 2 , further comprising the data source, wherein

the data source transmits packets to a destination device via the particular port of the switch,

the data source receives the XOFF message from the switch, and

after reception of the XOFF message from the switch, the data source changes a transmission route of the packets to the destination device so that the packets do not pass through the switch.

12. The system according to claim 11 , wherein, after at least the predetermined period of time, the data source redirects the transmission route of the packets to the destination device so that the packets again pass through the switch.

13. The system according to claim 2 , wherein a flow control of the buffer is based on a most recent selected XRAND value.

14. The system according to claim 2 , wherein the XRAND value for each of the plurality of ports is different.

15. A method for a switch that includes a buffer and a plurality of ports, the buffer sharing headroom between the plurality of ports in the switch, the method comprising:

determining a random (XRAND) value for each port and priority of the switch, each XRAND value being a threshold for the buffer of the switch;

monitoring usage of the buffer to determine whether the buffer usage exceeds the XRAND value of a particular port;

transmitting a flow-control (XOFF) message to a data source that sends packets to the particular port when the buffer usage exceeds the XRAND value of the particular port; and

when the XOFF message is transmitted, wait a predetermined period of time before determining a new XRAND value for the particular port, wherein

the XOFF message instructs the data source to pause transmission of the data packets to the switch.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2012
From: TABATABAEE, VAHID; KWAN, BRUCE
To: BROADCOM CORPORATION
Reel/Frame 028039/0836 →
Continuity (1)
Related Publication 20130250757A1 · Sep 26, 2013