IP Library Granted Patent US 10,079,782
Granted Patent B2
US 10,079,782 · App. 15/086,990 · Granted Sep 18, 2018

Facilitating communication of data packets using credit-based flow control

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,079,782
App. No.
15/086,990
Granted
Sep 18, 2018
Kind
B2
Abstract

Apparatuses and methods are described that provide for credit based flow control in a network in which a public buffer is supported at a receiver node, where a transmitter node can control the use of the public buffer. In particular, the transmitter node determines a buffer credit value (TCRi) for each virtual lane of the transmitter node. The buffer credit value (TCRi) is negative (e.g., less than 0) in an instance in which a respective virtual lane private buffer is fully used and thus reflects a loan of credits from the public buffer. In addition, the transmitter node knows the needed buffer size per virtual lane for transmitting a packet in advance based on the round trip time (RTT) and maximum transmission unit (MTU) for the packet and is precluded from consuming more space on the public buffer than required to meet RTT.

Claims (32)

1. An apparatus for managing flow control of data between a transmitter node and a receiver node, the apparatus comprising:

a transmitter node configured to transmit data packets via one or more virtual lanes to a receiver node,

one or more private buffers, wherein each private buffer is associated a respective virtual lane and is configured to store the data packets, and

a public buffer associated with the receiver node, wherein the public buffer is accessible by any of the one or more virtual lanes and is configured to store the data packets,

wherein the transmitter node is configured to determine a buffer credit value (TCRi) for each virtual lane of the transmitter node by subtracting a Flow Control Total Blocks Sent (FCTBS) from a Flow Control Credit Limit (FCCL) of the respective virtual lane, and

wherein the buffer credit value (TCRi) is negative in an instance in which the respective virtual lane private buffer is fully used and at least a portion of the public buffer of the corresponding receiver node is used by the respective virtual lane.

2. The apparatus of claim 1 , wherein the transmitter node is further configured to calculate a loan of buffer credit from the corresponding receiver node with respect to the public buffer by calculating an absolute value of a sum of negative buffer credit values (TCRi) for each virtual lane of the transmitter node.

3. The apparatus of claim 2 , wherein the transmitter node is configured to determine the amount of the public buffer remaining by subtracting the loan of buffer credit required from a buffer size of the public buffer.

4. The apparatus of claim 1 , wherein the transmitter node is configured to allow transmission of a packet over a corresponding virtual lane if the buffer credit value (TCRi) for the corresponding virtual lane plus an amount of the public buffer remaining is greater than 0.

5. The apparatus of claim 1 , wherein the transmitter node is configured allow transmission of the packet only if the buffer credit value (TCRi) required for transmitting the packet via the corresponding virtual lane plus the amount of data to be buffered over a round trip time (RTT) of transmission of the packet is greater than zero.

6. A method of managing flow control of data between a transmitter node and a receiver node, the method comprising:

determining, in a transmitter node, a buffer credit value (TCRi) for each virtual lane of the transmitter node by subtracting a Flow Control Total Blocks Sent (FCTBS) from a Flow Control Credit Limit (FCCL) of a respective virtual lane,

wherein the transmitter node is configured to transmit data packets via one or more of the virtual lanes to a receiver node,

wherein each virtual lane is associated with a private buffer, wherein each private buffer is configured to store the data packets,

wherein the receiver node is associated with a public buffer, wherein the public buffer is accessible by any of the one or more virtual lanes and is configured to store the data packets, and

wherein the buffer credit value (TCRi) is negative in an instance in which a respective virtual lane private buffer is fully used and at least a portion of a public buffer of the corresponding receiver node is used by the respective virtual lane.

7. The method of claim 6 further comprising calculating, in the transmitter node, a loan of buffer credit from the corresponding receiver node with respect to the public buffer by calculating an absolute value of a sum of negative buffer credit values (TCRi) for each virtual lane of the transmitter node.

8. The method of claim 7 further comprising determining, in the transmitter node, the amount of the public buffer remaining by subtracting the loan of buffer credit required from a buffer size of the public buffer.

9. The method of claim 6 further comprising allowing transmission of a packet over a corresponding virtual lane if the buffer credit value (TCRi) for the corresponding virtual lane plus an amount of the public buffer remaining is greater than 0.

10. The method of claim 6 , wherein calculating the loan of buffer credit available from the corresponding receiver node comprises determining, in the transmitter node, whether a loan was made to each respective virtual lane from a public buffer, wherein a loan is determined to have been made in an instance in which the buffer credit value for the respective virtual lane (TCRi) is less than 0.

11. The method of claim 6 , wherein transmission of the packet is allowed only if the buffer credit value (TCRi) required for transmitting the packet via the corresponding virtual lane plus the amount of data to be buffered over a round trip time (RTT) of transmission of the packet is greater than zero.

12. The method of claim 6 , wherein each virtual lane is allotted a predetermined portion of the public buffer, and wherein transmission of the packet via a particular virtual lane is precluded in an instance in which the buffer credit value (TCRi) for the particular virtual lane is negative and the particular virtual lane has used a respective predetermined portion of the public buffer allotted to the particular virtual lane.

13. An apparatus for managing flow control of data between a transmitter node and a receiver node, the apparatus comprising:

means for determining, in a transmitter node, a buffer credit value (TCRi) for each virtual lane of the transmitter node by subtracting a Flow Control Total Blocks Sent (FCTBS) from a Flow Control Credit Limit (FCCL) of the respective virtual lane,

wherein the transmitter node is configured to transmit data packets via one or more of the virtual lanes to a receiver node,

wherein each virtual lane is associated with a private buffer, wherein each private buffer is configured to store the data packets,

wherein the receiver node is associated with a public buffer, wherein the public buffer is accessible by any of the one or more virtual lanes and is configured to store the data packets, and

wherein the buffer credit value (TCRi) is negative in an instance in which a respective virtual lane private buffer is fully used and at least a portion of a public buffer of the corresponding receiver node is used by the respective virtual lane.

14. The apparatus of claim 13 further comprising means for calculating a loan of buffer credit from the corresponding receiver node with respect to the public buffer by calculating an absolute value of a sum of negative buffer credit values (TCRi) for each virtual lane of the transmitter node.

15. The apparatus of claim 14 further comprising means for determining the amount of the public buffer remaining by subtracting the loan of buffer credit required from a buffer size of the public buffer.

16. The apparatus of claim 13 further comprising program code instructions for allowing transmission of a packet over a corresponding virtual lane if the buffer credit value (TCRi) for the corresponding virtual lane plus an amount of the public buffer remaining is greater than 0.

17. The apparatus of claim 13 , wherein transmission of the packet is allowed only if the buffer credit value (TCRi) required for transmitting the packet via the corresponding virtual lane plus the amount of data to be buffered over a round trip time (RTT) of transmission of the packet is greater than zero.

Assignments (4)
MERGER Recorded Jan 14, 2022
From: MELLANOX TECHNOLOGIES TLV LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 058662/0289 →
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 Jun 7, 2016
From: HARAMATY, ZACHY; RAVID, RAN; WERTHEIM, ODED
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 038836/0548 →