IP Library › Granted Patent US 11,153,211
Granted Patent B2
US 11,153,211 · App. 15/836,850 · Granted Oct 19, 2021

Fast data center congestion response

Inventors: Vignesh Trichy Ravi (Portland, OR); Ravi Murty (Portland, OR); Ravindra Babu Ganapathi (Hillsboro, OR); Michael A. Parker (Santa Clara, CA)
Assignee: Intel Corporation
H04L47/12H04L47/11H04L47/2425H04L47/2483H04L47/263H04L47/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 11,153,211
App. No.
15/836,850
Granted
Oct 19, 2021
Kind
B2
Abstract

There is included in one example a switch, including: an ingress port to receive data from a source host; a first egress port to send data to a destination host; a second egress port to send data to the source host; and a congestion notification generator (CNG) including: a congestion detector to compute bandwidth consumption of a flow associated with a packet received on the ingress port and assigned to the first egress port, and determine based on the computed bandwidth consumption that the flow is congested; a flow extractor to extract a flow identifier of the flow from the packet; a throttle calculator to calculate a quantitative flow throttle value for the flow; and a header builder to build a congestion notification packet to instruct the source host to throttle the flow.

Claims (48)

1. A switch, comprising:

an ingress port;

first and second egress ports; and circuitry to:

compute bandwidth consumption of a flow associated with a packet received from a source host on the ingress port and assigned to a destination host communicatively coupled to the first egress port, and determine based on the computed bandwidth consumption that the flow is congested;

extract a flow identifier of the flow from the packet;

calculate a quantitative flow throttle value for the flow; and

build a packet to instruct the source host to throttle the flow; and

send the packet to the source host via the second egress port.

2. The switch of claim 1 , wherein the switch is to provide layer 2 (L2) switching services.

3. The switch of claim 1 , wherein the computed bandwidth consumption is based at least in part on a quality of service or service level agreement.

4. The switch of claim 1 , wherein the packet comprises a congestion notification header (CNH) flag that is set, and a CNH comprising an L2 source, L2 destination, the flow identifier, and the quantitative flow throttle value.

5. The switch of claim 4 , wherein the L2 source is to send the packet to the source host via the second egress port.

6. The switch of claim 1 , wherein the quantitative flow throttle value is to realize a throttling target in a single iteration.

7. The switch of claim 1 , wherein the flow is associated with a traffic class, and wherein the quantitative flow throttle value is to conform the flow to a bandwidth allocation for the traffic class.

8. The switch of claim 1 , wherein computing the quantitative flow throttle value comprises computing a difference between Y comprising a source data rate for a service level of a traffic class, and X comprising a funded bandwidth share for the service level based on a quality of service policy.

9. One or more tangible, non-transitory computer-readable storage mediums having stored thereon instructions to instruct a computing apparatus to:

compute a bandwidth consumption of a flow associated with a packet received from a source host on an ingress port and assigned to a destination host communicatively coupled to a first egress port;

determine based on the computed bandwidth consumption that the flow is congested;

extract a flow identifier of the flow;

calculate a quantitative flow throttle value for the flow; and

build a packet configured to instruct the source host to throttle the flow; and

send the packet to the source host via a second egress port.

10. The one or more tangible, non-transitory computer-readable mediums of claim 9 , wherein the computed bandwidth consumption is based at least in part on a quality of service or service level agreement.

11. The one or more tangible, non-transitory computer-readable mediums of claim 9 , wherein the packet comprises a congestion notification header (CNH) flag that is set, and a CNH comprising an L2 source, L2 destination, the flow identifier, and the quantitative flow throttle value.

12. The one or more tangible, non-transitory computer-readable mediums of claim 9 , wherein the instructions are further to send the packet directly to the source host via the second egress port.

13. The one or more tangible, non-transitory computer-readable mediums of claim 9 , wherein the quantitative flow throttle value is to achieve a throttling target in a single iteration.

14. The one or more tangible, non-transitory computer-readable mediums of claim 9 , wherein the flow is associated with a traffic class, and wherein the quantitative flow throttle value is to conform the flow to a bandwidth allocation for the traffic class.

15. The one or more tangible, non-transitory computer-readable mediums of claim 9 , wherein the instructions are to operate in a layer 3 (L3) transport-agnostic fashion.

16. The one or more tangible, non-transitory computer-readable mediums of claim 9 , wherein computing the quantitative flow throttle value comprises computing a difference between Y comprising a source data rate for a service level of a traffic class, and X comprising a funded bandwidth share for the service level based on a quality of service policy.

17. The one or more tangible, non-transitory computer-readable mediums of claim 9 , wherein the instructions comprise instructions to program an application-specific integrated circuit (ASIC).

18. The one or more tangible, non-transitory computer-readable mediums of claim 9 , wherein the instructions comprise instructions to program a field-programmable gate array (FPGA).

19. The one or more tangible, non-transitory computer-readable mediums of claim 9 , wherein the instructions comprise instructions to program an intellectual property (IP) block.

20. The one or more tangible, non-transitory computer-readable mediums of claim 9 , wherein the instructions comprise software instructions for a processor.

21. A method of providing fast congestion response, comprising:

computing a bandwidth consumption of a flow associated with a packet received from a source host on an ingress port and assigned to a destination host communicatively coupled to a first egress port;

determining based on the computed bandwidth consumption that the flow is congested;

extracting a flow identifier of the flow;

calculating a quantitative flow throttle value for the flow; and

building a packet configured to instruct the source host to throttle the flow; and

sending the packet to the source host via a second egress port.

22. The method of claim 21 , wherein the computed bandwidth consumption is based at least in part on a quality of service or service level agreement.

23. The method of claim 21 , wherein the packet comprises a congestion notification header (CNH) flag that is set, and a CNH comprising an L2 source, L2 destination, the flow identifier, and the quantitative flow throttle value.

24. The method of claim 21 , further comprising sending the packet directly to the source host via the second egress port.

25. A congestion notification generator (CNG) circuit to:

compute bandwidth consumption of a flow associated with a packet received from a source host on an ingress port and assigned to a destination host communicatively coupled to a first egress port, and determine based on the computed bandwidth consumption that the flow is congested;

extract a flow identifier of the flow;

calculate a quantitative flow throttle value for the flow; and

build a congestion notification packet configured to instruct the source host to throttle the flow.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2018
From: RAVI, VIGNESH TRICHY; MURTY, RAVI; GANAPATHI, RAVINDRA BABU; PARKER, MICHAEL A.
To: INTEL CORPORATION
Reel/Frame 046267/0014 →
Continuity (1)
Related Publication 20190182161A1 · Jun 13, 2019
Cited By (1)
US 12,301,476