IP Library Granted Patent US 9,444,754
Granted Patent B1
US 9,444,754 · App. 14/276,947 · Granted Sep 13, 2016

Method for congestion control in a network interface card

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,444,754
App. No.
14/276,947
Granted
Sep 13, 2016
Kind
B1
Abstract

Congestion detection is implemented on the ingress direction, egress direction, or both directions in a network interface controller. Congestion notification is facilitated between a source and a destination through a network interface controller. In accordance with an aspect, a NIC is configured to label ingress packets—coming from the network—in relation to the presence of congestion. In accordance with another aspect, the NIC is configured to label egress packets—going to the network—in relation to the presence of congestion. A full offload NIC is equipped to operate on the packet labels in the presence of congestion and to react appropriately if it is on the receiving end, sending end, or both.

Claims (33)

1. Network interface circuitry configured to couple a host computer and a network such that the host is interoperable with a peer via the network, the network interface circuitry comprising:

congestion detection circuitry configured to, based on an operating state of the network interface circuitry relative to a transport layer flow of packets being communicated between the host and the peer, detect congestion at the network interface circuitry, relative to the transport layer flow; and

indication providing circuitry configured to provide an indication of the detected congestion correlated to the transport layer flow,

wherein the network interface circuitry further comprises protocol processing circuitry configured to perform transport layer protocol processing on packets of the transport layer flow; and

wherein the congestion detection circuitry is configured to set the congestion experienced indication on a packet to be transmitted from the network interface circuitry as a result of the transport layer protocol processing.

2. The network interface circuitry of claim 1 , wherein:

the packets being communicated between the host and the peer according to the transport layer flow are ingress packets of the transport layer flow from the network to the network interface circuitry; and

being configured to provide the indication of the detected congestion includes being configured to provide a congestion experienced indication to the host correlated to the ingress packets of the transport layer flow.

3. The network interface circuitry of claim 2 , wherein:

the transport layer flow is a connection that is operating according to a TCP/IP protocol; and

the indication providing circuitry is configured to provide the indication of the detected congestion correlated to the transport layer flow including providing ECN bits to a receiving stack of the host.

4. The network interface circuitry of claim 3 , wherein:

the host is configured to re-compute the IP header checksum.

5. The network interface circuitry of claim 3 , wherein:

the indication providing circuitry is configured to provide the indication of congestion alongside the packet as an out-of-band communication.

6. The network interface circuitry of claim 1 , wherein:

the packets being communicated between the host and the peer according to the transport layer flow are egress packets from the network interface circuitry to the network; and

being configured to provide the indication of the detected congestion includes being configured to provide a congestion experienced indication to the peer correlated to the egress packets.

7. The network interface circuitry of claim 6 , wherein:

the protocol processing circuitry is further configured to form the egress packets using transport layer protocol processing functionality of the protocol processing circuitry, and

the transport layer protocol processing functionality of the protocol processing circuitry is configured to provide the indication of the detected congestion based on operation of the transport layer protocol processing functionality in forming the egress packets.

8. The network interface circuitry of claim 2 , wherein:

being configured to provide a congestion experienced indication to the host correlated to the ingress packets includes being configured to provide the congestion experienced indication correlated to a transport layer flow to which the ingress packets belong.

9. The network interface circuitry of claim 8 , wherein:

being configured to provide a congestion experienced indication to the host correlated to the ingress packets includes being configured to provide with the congestion experienced indication at least one of information from headers of the ingress packets or a transport layer flow identification obtained by the network interface circuitry using a lookup.

10. The network interface circuitry of claim 1 , wherein:

the protocol processing circuitry is further configured to operate as a-link-layer switch, and

the congestion detection circuitry and indication providing circuitry are configured to operate in the process of the protocol processing circuitry operating as a link-layer switch.

11. The network interface circuitry of claim 1 , wherein:

the protocol processing circuitry is configured to provide a virtual local area network tunnel, and wherein the indication providing circuitry is configured to provide the congestion indication in an inner internet layer protocol header of packets being transported via the virtual local area network tunnel.

12. The network interface circuitry of claim 1 , further comprising:

traffic rate management circuitry, and

the indication providing circuitry is configured to provide the indication of detected congestion to the traffic rate management circuitry.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Dec 18, 2025
From: WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 073264/0525 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE FIRST PAGE OF THE INTELLECTUAL PROPERTY SECURITY AGREEMENT HAS AN INCORRECT DATE THAT NEEDS TO BE CORRECTED PREVIOUSLY RECORDED ON REEL 050050 FRAME 0396. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Aug 15, 2019
From: CHELSIO COMMUNICATIONS, INC.
To: WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION
Reel/Frame 050112/0234 →
SECURITY INTEREST Recorded Aug 14, 2019
From: CHELSIO COMMUNICATIONS, INC.
To: WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION
Reel/Frame 050050/0396 →
RELEASE OF SECURITY INTEREST Recorded Apr 25, 2017
From: NOVIRIAN CAPITAL
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 042142/0232 →
SECURITY INTEREST Recorded Jul 29, 2016
From: CHELSIO COMMUNICATIONS, INC.
To: NOVIRIAN CAPITAL
Reel/Frame 039296/0550 →
SECURITY INTEREST Recorded Oct 21, 2014
From: CHELSIO COMMUNICATIONS, INC.
To: SILICON VALLEY BANK
Reel/Frame 033990/0451 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2014
From: NOUREDDINE, WAEL
To: CHELSIO COMMUNICATIONS, INC.
Reel/Frame 032886/0984 →