IP Library Granted Patent US 8,437,252
Granted Patent B2
US 8,437,252 · App. 12/945,699 · Granted May 7, 2013

Intelligent congestion feedback apparatus and method

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 8,437,252
App. No.
12/945,699
Granted
May 7, 2013
Kind
B2
Abstract

Apparatus and methods for intelligent congestion feedback are disclosed. An example apparatus includes a data interface configured to receive data packets from a source endpoint via an intermediate node. The data packets include a field indicating whether data congestion for data being sent to the destination endpoint is occurring. The example apparatus also includes a timer. The example apparatus further includes a feedback loop interface configured to selectively enable a feedback loop to the source endpoint and to transmit congestion notification (CN) messages to the source endpoint over the feedback loop. Upon receiving a data packet indicating that congestion has occurred due to the data packets from the source endpoint to the destination endpoint, the destination endpoint is configured to set the timer to a preset time value; start the timer reverse counting from the preset time value to zero, enable the feedback loop and transmit the CN messages.

Claims (69)

1. A data network destination endpoint comprising:

a data interface configured to receive data packets from a source endpoint via an intermediate node, wherein the data packets include a field indicating whether or not data congestion to the destination endpoint has occurred in the intermediate node;

a timer configured to be initially set to zero; and

a feedback loop interface configured to selectively enable a feedback loop to the source endpoint and to transmit congestion notification (CN) messages to the source endpoint over the feedback loop,

wherein, upon receiving a data packet indicating that congestion has occurred in the intermediate node due to the data packets from the source endpoint to the destination endpoint, the destination endpoint is configured to:

set the timer to a preset time value;

start the timer reverse counting from the preset time value to zero;

enable the feedback loop; and

transmit the CN messages.

2. The destination endpoint of claim 1 , wherein the field indicating whether or not data congestion has occurred comprises a congestion notification bit tag includes in a packet header.

3. The destination endpoint of claim 1 , wherein, when the timer reaches zero, the destination endpoint is further configured to:

stop sending the CN messages; and

disable the feedback loop.

4. The destination endpoint of claim 1 , wherein, when the timer is counting down from the preset time value to zero, if the destination endpoint receives another data packet indicating congestion due to the data packets from the source endpoint to the destination endpoint, the destination endpoint is further configured to:

reset the timer to the preset time value; and

resume the timer reverse counting to zero.

5. The destination endpoint of claim 1 , wherein, if the destination endpoint receives a user configurable number of data packets indicating that congestion due to the data packets from the source endpoint to the destination endpoint has been resolved and the timer has not reached zero, the destination endpoint is further configured to:

stop sending the CN messages;

disable the feedback loop; and

set the timer to zero.

6. The destination endpoint of claim 1 , wherein the destination endpoint, for each CN message, is further configured to:

set an explicit congestion notification-echo flag in an acknowledgment (ACK) packet associated with each data packet indicating congestion.

7. The destination endpoint of claim 1 , wherein each CN message comprises a SrcEndpointAddress field, a DestEndpointAddress field, and a CongestionState field.

8. The destination endpoint of claim 1 , further comprising a plurality of timers, each timer of the plurality of timers being associated with a respective class of service for a respective source endpoint.

9. The destination endpoint of claim 1 , wherein the preset time value of the timer is determined based on at least one of:

responsiveness of the source endpoint in resolving the congestion;

a number of source endpoints contributing to the congestion, and

a degree of the congestion.

10. The destination endpoint of claim 1 , wherein the preset time value defines a period of time that the destination endpoint enables the feedback loop for transmitting the CN messages.

11. The destination endpoint of claim 1 , wherein the destination endpoint, when the timer reaches zero, is further configured to:

stop sending the CN messages; and

disable the feedback loop.

12. A method comprising:

receiving, at a network destination endpoint, data packets from a source endpoint via an intermediate node, wherein the data packets include a field indicating whether or not data congestion to the destination endpoint has occurred in the intermediate node;

determining, by the destination endpoint, that a packet of the data packets received from the source endpoint has been marked to indicate congestion; and

in response to the determination that the packet indicating congestion was received:

setting, by the destination endpoint, a timer to a preset time value;

reverse counting, by the timer, from the preset time value to zero;

enabling, by the destination endpoint, a feedback loop between the destination endpoint and the source endpoint; and

transmitting, by the destination endpoint, congestion notification (CN) messages to the source endpoint over the feedback loop.

13. The method of claim 12 , further comprising, when the timer reaches zero:

stopping transmission of the CN messages; and

disabling the feedback loop.

14. The method of claim 12 , further comprising:

determining, by the destination endpoint, that a second packet of the data packets received from the source endpoint has been marked to indicate congestion; and

in response to the determination that the second packet has been marked to indicate congestion:

resetting the timer back to the preset time value; and

resuming the reverse counting.

15. The method of claim 12 , further comprising, in response to receiving, when the timer has not reached zero, a user configurable number of packets, of the data packets from the source endpoint, indicating that the congestion has been resolved:

stopping transmission of the CN messages; and

disabling the feedback loop.

16. The method of claim 12 , wherein the timer corresponds with a single class of service.

17. The method of claim 12 , further comprising adjusting, by the destination endpoint, the preset time value based on at least one of:

a responsiveness of the source endpoint in resolving the congestion;

a number of source endpoints contributing to the congestion, and

a degree of congestion.

18. The method of claim 12 , further comprising:

defining, by the destination endpoint, the preset time value as a period of time to enable the feedback loop for transmitting the CN messages.

19. The method of claim 12 , further comprising:

mapping, by the destination endpoint, the CN messages to a highest priority class of service queue.

20. A data network destination endpoint comprising:

a data interface configured to receive data packets from a plurality of source endpoints via an intermediate node, wherein the data packets include a field indicating whether or not data congestion to the destination endpoint has occurred in the intermediate node;

a plurality of timers configured to be initially set to zero, each timer of the plurality of timer being associated with a respective class of service of a respective source endpoint of the plurality of source endpoints; and

a plurality of feedback loop interfaces, each feedback loop interface being configured to selectively enable a respective feedback loop to a respective source endpoint for a respective class of service and to transmit congestion notification (CN) messages to the respective source endpoint for the respective class of service over the respective feedback loop,

wherein, upon receiving, at the destination endpoint, a data packet indicating that congestion has occurred in the intermediate node due to the data packets of a given class of service from a given source endpoint of the plurality of source endpoints, the destination endpoint is configured to:

set the respective timer for the given class of service for the given source endpoint to a preset time value;

start the respective timer reverse counting from the preset time value to zero;

enable the respective feedback loop for the given class of service for the given source endpoint; and

transmit, over the respective feedback loop, the CN messages to the given source endpoint.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 09/05/2018 PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0133. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0456 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0133 →
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 →