IP Library Granted Patent US 10,027,590
Granted Patent B2
US 10,027,590 · App. 14/628,173 · Granted Jul 17, 2018

End to end flow control

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 10,027,590
App. No.
14/628,173
Granted
Jul 17, 2018
Kind
B2
Abstract

A network device implementing the subject system for end to end flow control may include at least one processor circuit that may be configured to detect that congestion is being experienced by at least one queue of a port and identify another network device that is transmitting downstream traffic being queued at the at least one queue of the port that is at least partially causing the congestion. The at least one processor circuit may be further configured to generate an end to end flow control message that comprises an identifier of the port, the end to end flow control message indicating that the downstream traffic should be flow controlled at the another network device. The at least one processor circuit may be further configured to transmit, out-of-band and through at least one intermediary network device, the end to end flow control message to the another network device.

Claims (56)

1. A method comprising:

detecting by a controlling bridge, that congestion is being experienced by at least one queue of a port;

identifying an end station device that is generating upstream traffic being queued at the at least one queue that is at least partially causing the congestion based at least in part on the upstream traffic;

determining, by the controlling bridge, a network device that is directly coupled to the end station device based on network topology information stored at the controlling bridge;

determining, based on the network topology information, another port of the network device to which the end station device is connected;

generating an end to end flow control message that comprises an identifier of the another port of the network device to which the end station device that is generating the upstream traffic is connected, a device identifier of the end station device, and an indication of at least one priority associated with the at least one queue, wherein the end to end flow control message indicates that the upstream traffic should be flow controlled by the end station device and the end to end flow control message is addressed to the network device that is directly coupled to the end station device; and

transmitting the end to end flow control message to the network device over the port, wherein, upon receipt of the end to end flow control message by the network device, the end to end flow control message is converted into a priority flow control message that is transmitted to the end station device over the another port.

2. The method of claim 1 , wherein the method further comprises:

receiving, by the network device, the end to end flow control message;

converting the indication of the at least one priority of the end to end flow control message into a priority enable vector of the priority flow control message; and

transmitting the priority flow control message to the end station device over the another port.

3. The method of claim 2 , further comprising:

receiving, by the end station device, the priority flow control message; and

performing, by the end station device, flow control on the upstream traffic associated with the at least one priority.

4. The method of claim 3 , wherein performing, by the end station device, the flow control on the upstream traffic associated with the at least one priority comprises pausing or rate limiting the upstream traffic associated with the at least one priority without pausing or rate limiting other upstream traffic not associated with the at least one priority.

5. The method of claim 1 , further comprising:

estimating an amount of time to relieve the congestion; and

generating the end to end flow control message to include the amount of time as a pause time;

detecting, prior to an expiration of the amount of time whether the congestion is still being experienced by the at least one queue of the port; and

transmitting another end to end flow control message to the network device when the congestion is still being experienced by the at least one queue of the port.

6. The method of claim 5 , further comprising:

receiving, by the network device, the end to end flow control message;

generating, by the network device and responsive to receiving the end to end flow control message, the priority flow control message comprising the amount of time; and

transmitting the priority flow control message to the end station device.

7. The method of claim 1 , wherein a source address field of the end to end flow control message comprises a first address of another network device comprising the at least one queue experiencing the congestion, and a destination address field of the end to end flow control message comprises a second address of the network device.

8. The method of claim 7 , wherein the end to end flow control message is transmitted to the network device out-of-band via at least one intermediary device that forwards the end to end flow control message from the another network device to the network device without modifying the end to end flow control message.

9. The method of claim 8 , wherein the another network device comprises the controlling bridge in an extended bridge architecture, the at least one intermediary device comprises an aggregate port extender device in the extended bridge architecture, the network device comprises port extender device in the extended bridge architecture, and

the upstream traffic is received from the end station device by the port extender device over the another port, forwarded by the port extender device, without modifying the upstream traffic, to the aggregate port extender device, forwarded by the aggregate port extender device, without modifying the upstream traffic, to the controlling bridge device, and received by the controlling bridge device over the port.

10. A non-transitory computer-readable storage medium storing instructions, the instructions comprising:

instructions to receive, by a network device, an end to end flow control message from another network device that is experiencing congestion at one or more queues of a port, the end to end flow control message being received out-of-band via an intermediary network device that forwards the end to end flow control message without modifying the end to end flow control message, and the end to end flow control message comprising an identifier of the port and a list of priorities associated with the one or more queues of the port that are experiencing the congestion;

instructions to determine an end station device that is coupled to the port;

instructions to convert the list of priorities of the end to end flow control message into a priority enable vector of a priority flow control message, the priority enable vector indicating priorities of upstream traffic to be flow controlled, wherein the priority flow control message indicates that upstream data traffic having a priority identified in the priority enable vector should be flow controlled by the end station device, the priority flow control message being separate from the end to end flow control message; and

instructions to transmit the priority flow control message in-band over the port to the end station device.

11. The non-transitory computer-readable storage medium of claim 10 , wherein a source address field of the end to end flow control message comprises a first address of the another network device comprising the port and a destination address field of the end to end flow control message comprises a second address of network device.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the another network device comprises a controlling bridge device in an extended bridge architecture, the intermediary network device comprises an aggregate port extender in the extended bridge architecture, and the network device comprises a port extender device in the extended bridge architecture.

13. A controlling bridge device comprising:

a port; and

a processor configured to:

detect that congestion is being experienced by at least one queue of the port;

identify an end station device that is generating upstream traffic being queued at the at least one queue that is at least partially causing the congestion based at least in part on the upstream traffic;

determine a network device that is directly coupled to the end station device based on network topology information stored at the controlling bridge device;

determine, based on the network topology information, another port of the network device to which the end station device is connected;

generate an end to end flow control message that comprises an identifier of the another port of the network device to which the end station device that is generating the upstream traffic is connected, a device identifier of the end station device, and an indication of at least one priority associated with the at least one queue, wherein the end to end flow control message indicates that the upstream traffic should be flow controlled by the end station device and the end to end flow control message is addressed to the network device that is directly coupled to the end station device; and

transmit the end to end flow control message to the network device over the port, wherein, upon receipt of the end to end flow control message by the network device, the end to end flow control message is converted into a priority flow control message that is transmitted to the end station device over the another port.

14. The controlling bridge device of claim 13 , wherein the end station device is configured to, upon receipt of the priority flow control message, perform flow control on the upstream traffic associated with the at least one priority.

15. The controlling bridge device of claim 14 , the end station device is configured to pause or rate limit the upstream traffic associated with the at least one priority without pausing or rate limiting other upstream traffic not associated with the at least one priority.

16. The controlling bridge device of claim 13 , wherein the processor is further configured to:

estimate an amount of time to relieve the congestion; and

generate the end to end flow control message to include the amount of time as a pause time;

detect, prior to an expiration of the amount of time whether the congestion is still being experienced by the at least one queue of the port; and

transmit another end to end flow control message to the network device when the congestion is still being experienced by the at least one queue of the port.

17. The controlling bridge device of claim 16 , wherein the priority flow control message comprises the amount of time.

18. The controlling bridge device of claim 13 , wherein a source address field of the end to end flow control message comprises a first address of the controlling bridge device comprising the port having the at least one queue experiencing the congestion, and a destination address field of the end to end flow control message comprises a second address of the network device.

19. The controlling bridge device of claim 18 , wherein the end to end flow control message is transmitted to the network device out-of-band via at least one intermediary device that forwards the end to end flow control message from the controlling bridge device to the network device without modifying the end to end flow control message.

20. The controlling bridge device of claim 19 , wherein the at least one intermediary device comprises an aggregate port extender device in an extended bridge architecture, the network device comprises port extender device in the extended bridge architecture, and

the upstream traffic is received from the end station device by the port extender device over the another port, forwarded by the port extender device, without modifying the upstream traffic, to the aggregate port extender device, forwarded by the aggregate port extender device, without modifying the upstream traffic, to the controlling bridge device, and received by the controlling bridge device over the port.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
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 Mar 5, 2015
From: SINHA, SANTANU; KALKUNTE, MOHAN VENKATACHAR
To: BROADCOM CORPORATION
Reel/Frame 035093/0112 →