IP Library › Granted Patent US 11,088,966
Granted Patent B2
US 11,088,966 · App. 16/672,682 · Granted Aug 10, 2021

Managing congestion in a network adapter based on host bus performance

Inventors: Adi Menachem (Hod Hasharon, IL); Alex Shpiner (Nesher, IL); Noam Bloch (Bat Shlomo, IL); Eitan Zahavi (Zichron Yaakov, IL); Idan Burstein (Carmiel, IL); Dror Bohrer (Nesher, IL); Roee Moyal (Yokneam Illit, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
H04L49/505H04L47/2408H04L49/3018H04L49/501H04L49/9068
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,088,966
App. No.
16/672,682
Granted
Aug 10, 2021
Kind
B2
Abstract

A network adapter includes a host interface and circuitry. The host interface is configured to connect locally between the network adapter and a host via a bus. The circuitry is configured to receive from one or more source nodes, over a communication network to which the network adapter is coupled, multiple packets destined to the host, and temporarily store the received packets in a queue of the network adapter, to send the stored packets from the queue to the host over the bus, to monitor a performance attribute of the bus, and in response to detecting, based at least on the monitored performance attribute, an imminent overfilling state of the queue, send a congestion notification to at least one of the source nodes from which the received packets originated.

Claims (25)

1. A network adapter, comprising:

a host interface, configured to connect locally between the network adapter and a host via a local bus; and circuitry, configured to:

receive from one or more source nodes, over a communication network to which the network adapter is coupled, multiple packets destined to the host, and temporarily store the received packets in an ingress queue of the network adapter;

while sending the stored packets from the ingress queue to the host over the local bus, monitor a performance attribute of the local bus that is indicative of a rate of emptying the ingress queue toward the host; and

in response to detecting, based at least on the monitored performance attribute of the local bus, that congestion is expected to occur toward the communication network due to reduction in the emptying rate of the ingress queue toward the local bus, send a congestion notification to at least one of the source nodes from which the received packets originated.

2. The network adapter according to claim 1 , wherein the performance attribute comprises a transaction latency between a time of sending a read request over the local bus and a time of receiving a response to the read request over the local bus, and wherein the circuitry is configured to detect that the congestion is expected to occur toward the communication network by identifying that the transaction latency exceeds a predefined latency limit.

3. The network adapter according to claim 1 , wherein the local bus supports a credit-based flow control scheme, wherein the performance attribute comprises a credit level available for transmitting data toward the host over the local bus, and wherein the circuitry is configured to detect that the congestion is expected to occur toward the communication network by identifying that the credit level is below a predefined credit threshold.

4. The network adapter according to claim 1 , wherein the received packets belong to multiple different respective service classes, and wherein the circuitry is configured to detect that the congestion is expected to occur toward the communication network for a selected service class.

5. The network adapter according to claim 1 , wherein the circuitry is configured to detect that the congestion is expected to occur toward the communication network based on evaluating a rate of change of the performance attribute.

6. The network adapter according to claim 1 , wherein the circuitry is configured to send the congestion notification by generating a multibit notification that indicates a severity level of the performance attribute.

7. The network adapter according to claim 1 , wherein the circuitry is configured to initially store the received packets in a receive buffer of the network adapter, to process at least some of the packets in the receive buffer before transferring the received packets to the ingress queue, and to detect that the congestion is expected to occur toward the communication network based on respective occupancy levels of at least one of the ingress queue and the receive buffer, and on the monitored performance attribute.

8. The network adapter according to claim 1 , wherein the circuitry is configured to send the congestion notification using a notification packet supported by an underlying transport layer protocol.

9. The network adapter according to claim 1 , wherein the circuitry is configured to send the congestion notification to a given source network node only when a predefined time period has elapsed since a congestion notification was previously sent to the given source network node.

10. A method, comprising:

in a network adapter comprising a host interface for connecting locally between the network adapter and a host via a local bus, receiving from one or more source nodes, over a communication network to which the network adapter is coupled, multiple packets destined to the host, and temporarily storing the received packets in an ingress queue of the network adapter;

while sending the stored packets from the queue to the host over the bus, monitoring a performance attribute of the local bus that is indicative of a rate of emptying the ingress queue toward the host; and

in response to detecting, based at least on the monitored performance attribute of the local bus, that congestion is expected to occur toward the communication network due to reduction in the emptying rate of the ingress queue toward the local bus, sending a congestion notification to at least one of the source nodes from which the received packets originated.

11. The method according to claim 10 , wherein the performance attribute comprises a transaction latency between a time of sending a read request over the local bus and a time of receiving a response to the read request over the local bus, wherein detecting that the congestion is expected to occur toward the communication network comprises identifying that the transaction latency exceeds a predefined latency limit.

12. The method according to claim 10 , wherein the local bus supports a credit-based flow control scheme, wherein the performance attribute comprises a credit level available for transmitting data toward the host over the local bus, and wherein detecting that the congestion is expected to occur toward the communication network comprises identifying that the credit level is below a predefined credit threshold.

13. The method according to claim 10 , wherein the received packets belong to multiple different respective service classes, wherein detecting that the congestion is expected to occur toward the communication network comprises detecting that the congestion is expected to occur toward the communication network for a selected service class.

14. The method according to claim 10 , wherein that the congestion is expected to occur toward the communication network comprises evaluating a rate of change of the performance attribute.

15. The method according to claim 10 , wherein sending the congestion notification comprises generating a multibit notification that indicates a severity level of the performance attribute.

16. The method according to claim 10 , and comprising initially storing the received packets in a receive buffer of the network adapter and processing at least some of the packets in the receive buffer before transferring the received packets to the ingress queue, wherein detecting that the congestion is expected to occur toward the communication network comprises that the congestion is expected to occur toward the communication network based on respective occupancy levels of at least one of the ingress queue and the receive buffer, and on the monitored performance attribute.

17. The method according to claim 10 , wherein sending the congestion notification comprises sending the congestion notification using a notification packet supported by an underlying transport layer protocol.

18. The method to claim 10 , wherein sending the congestion notification comprises sending the congestion notification to a given source network node only when a predefined time period has elapsed since a congestion notification was previously sent to the given source network node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2019
From: MENACHEM, ADI; SHPINER, ALEX; BLOCH, NOAM; ZAHAVI, EITAN; BURSTEIN, IDAN; BOHRER, DROR; MOYAL, ROEE
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 050977/0569 →
Continuity (2)
Provisional Application 62756085 · Nov 6, 2018
Related Publication 20200145349A1 · May 7, 2020
Cited By (5)
US 12,244,670 US 12,273,270 US 12,301,476 US 12,375,407 US 12,500,840