IP Library Granted Patent US 10,200,294
Granted Patent B2
US 10,200,294 · App. 15/387,718 · Granted Feb 5, 2019

Adaptive routing based on flow-control credits

Inventors: Alex Shpiner (Nesher, IL); Vladimir Zdornov (Kfar Saba, IL); Zachy Haramaty (Hemed, IL); Eitan Zahavi (Zichron Yaakov, IL)
Assignee: Mellanox Technologies TLV Ltd.
H04L47/39H04L45/24
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,200,294
App. No.
15/387,718
Granted
Feb 5, 2019
Kind
B2
Abstract

A method for network communication includes receiving in a network element a packet for forwarding to a destination node. The destination node is reachable via two or more candidate ports of the network element that are connected to respective next-hop network elements. Link-level flow-control credit notifications are received in the network element from the next-hop network elements via the respective candidate ports. An egress port is selected for the packet, from among the candidate ports, based at least on the received link-level flow-control credit notifications. The packet is forwarded toward the destination node over the selected egress port.

Claims (34)

1. A method for network communication, comprising:

in a network element, receiving a packet for forwarding to a destination node, wherein the destination node is reachable via two or more candidate ports of the network element that are connected to respective next-hop network elements;

receiving in the network element link-level flow-control credit notifications from the next-hop network elements via the respective candidate ports;

selecting an egress port for the packet from among the candidate ports, based at least on the received link-level flow-control credit notifications, by:

deriving, from the received link-level flow-control credit notifications, numbers of credits that are currently available on the candidate ports;

normalizing the numbers of credits by respective lengths of network links that connect the next-hop network elements to the candidate ports; and

selecting the egress port based at least on the normalized numbers of credits; and

forwarding the packet toward the destination node over the selected egress port.

2. The method according to claim 1 , wherein selecting the egress port comprises calculating, based at least on the link-level flow-control credit notifications, port congestion grades for the candidate ports, and selecting the egress port based on the port congestion grades.

3. The method according to claim 1 , wherein the packet is associated with a given Virtual Lane (VL), and wherein selecting the egress port comprises choosing the egress port only based on the link-level flow-control credit notifications pertaining to the given VL.

4. The method according to claim 1 , wherein the packet is associated with a given Virtual Lane (VL), and wherein selecting the egress port comprises choosing the egress port based on (i) the link-level flow-control credit notifications pertaining to the given VL, and (ii) the link-level flow-control credit notifications pertaining to the candidate ports as a whole.

5. The method according to claim 1 , and comprising, in addition to selecting the egress port, throttling amounts of data sent via the candidate ports based on the received link-level flow-control credit notifications.

6. A network element, comprising:

multiple ports; and

circuitry, configured to:

receive a packet for forwarding to a destination node, wherein the destination node is reachable via two or more candidate ports of the network element that are connected to respective next-hop network elements;

receive link-level flow-control credit notifications from the next-hop network elements via the respective candidate ports;

select an egress port for the packet from among the candidate ports, based at least on the received link-level flow-control credit notifications, by:

deriving, from the received link-level flow-control credit notifications, numbers of credits that are currently available on the candidate ports;

normalizing the numbers of credits by respective lengths of network links that connect the next-hop network elements to the candidate ports; and

selecting the egress port based at least on the normalized numbers of credits; and

forward the packet toward the destination node over the selected egress port.

7. The network element according to claim 5 , wherein the circuitry is configured to calculate, based at least on the link-level flow-control credit notifications, port congestion grades for the candidate ports, and to select the egress port based on the port congestion grades.

8. The network element according to claim 5 , wherein the packet is associated with a given Virtual Lane (VL), and wherein the circuitry is configured to select the egress port only based on the link-level flow-control credit notifications pertaining to the given VL.

9. The network element according to claim 5 , wherein the packet is associated with a given Virtual Lane (VL), and wherein the circuitry is configured to select the egress port based on (i) the link-level flow-control credit notifications pertaining to the given VL, and (ii) the link-level flow-control credit notifications pertaining to the candidate ports as a whole.

10. The network element according to claim 5 , wherein, in addition to selecting the egress port, the circuitry is further configured to throttle amounts of data sent via the candidate ports based on the received link-level flow-control credit notifications.

11. A computer software product, the product comprising a tangible non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by a processor in a network element, cause the processor to:

receive a packet for forwarding to a destination node, wherein the destination node is reachable via two or more candidate ports of the network element that are connected to respective next-hop network elements;

receive link-level flow-control credit notifications from the next-hop network elements via the respective candidate ports;

select an egress port for the packet from among the candidate ports, based at least on the received link-level flow-control credit notifications, by:

deriving, from the received link-level flow-control credit notifications, numbers of credits that are currently available on the candidate ports;

normalizing the numbers of credits by respective lengths of network links that connect the next-hop network elements to the candidate ports; and

selecting the egress port based at least on the normalized numbers of credits; and

forward the packet toward the destination node over the selected egress port.

Assignments (4)
MERGER Recorded Dec 15, 2021
From: MELLANOX TECHNOLOGIES TLV LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 058517/0564 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 42962/0859 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.; MELLANOX TECHNOLOGIES TLV LTD.; MELLANOX TECHNOLOGIES SILICON PHOTONICS INC.
Reel/Frame 046551/0459 →
SECURITY INTEREST Recorded Jun 23, 2017
From: MELLANOX TECHNOLOGIES, LTD.; MELLANOX TECHNOLOGIES TLV LTD.; MELLANOX TECHNOLOGIES SILICON PHOTONICS INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 042962/0859 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 25, 2016
From: SHPINER, ALEX; ZDORNOV, VLADIMIR; HARAMATY, ZACHY; ZAHAVI, EITAN
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 040762/0049 →
Continuity (1)
Related Publication 20180183720A1 · Jun 28, 2018
Cited By (2)
US 12,328,251 US 12,328,262