IP Library Granted Patent US 9,584,429
Granted Patent B2
US 9,584,429 · App. 14/335,962 · Granted Feb 28, 2017

Credit based flow control for long-haul links

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,584,429
App. No.
14/335,962
Granted
Feb 28, 2017
Kind
B2
Abstract

A method for communication includes storing packets received from a sending node over a communication link in a receive buffer of a receiving node. The receive buffer includes one or more blocks having a first block size. A first credit count, corresponding to a number of available blocks in the receive buffer, is derived. The first credit count is converted to a second credit count so as to represent an available space in the receive buffer in accordance with a second block size, which is different from the first block size. A transmission rate of the sending node is controlled by publishing the second credit count to the sending node over the communication link.

Claims (33)

1. A method for communication, comprising:

storing packets received from a sending node over a communication link in a receive buffer of a receiving node, wherein the receive buffer comprises one or more blocks having a first block size;

deriving a first credit count corresponding to a number of available blocks in the receive buffer;

converting the first credit count to a second credit count so as to represent an available space in the receive buffer in accordance with a second block size, which is different from the first block size, by extracting from the first credit count a number of Most Significant Bits (MSBs) that depends on a ratio between the second block size and the first block size, which equals an integer ratio; and

controlling a transmission rate of the sending node by publishing the second credit count to the sending node over the communication link.

2. The method according to claim 1 , wherein publishing the second credit count comprises publishing a number of bytes that is smaller than an actual size of the receive buffer by at least the second block size.

3. The method according to claim 1 , and comprising rounding-up or rounding-down the extracted MSBs.

4. The method according to claim 1 , and comprising maintaining in the sending node a credit count in accordance with the first block size, and updating the credit count based on the second credit count published by the receiving node and on a number of bytes delivered from the sending node over the communication link.

5. A method for communication, comprising:

storing packets received from a sending node over a communication link in a receive buffer of a receiving node, wherein the receive buffer comprises one or more blocks having a first block size;

deriving a first credit count corresponding to a number of available blocks in the receive buffer;

converting the first credit count to a second credit count so as to represent an available space in the receive buffer in accordance with a second block size, which is different from the first block size;

controlling a transmission rate of the sending node by publishing the second credit count to the sending node over the communication link; and

maintaining in the sending node a sent blocks count indicating a number of blocks delivered to the communication link since link initialization, and reporting by the sending node to the receiving node the sent blocks count in units corresponding to the second block size.

6. A method for communication, comprising:

storing packets received from a sending node over a communication link in a receive buffer of a receiving node, wherein the receive buffer comprises one or more blocks having a first block size;

deriving a first credit count corresponding to a number of available blocks in the receive buffer, by evaluating the number of available blocks in the receive buffer excluding part of the available space whose size equals at least a second block size, which is different from the first block size;

converting the first credit count to a second credit count so as to represent an available space in the receive buffer in accordance with the second block size; and

controlling a transmission rate of the sending node by publishing the second credit count to the sending node over the communication link.

7. A communication apparatus, comprising:

a receive buffer, which comprises one or more blocks having a first block size; and

a receiver controller, which is configured to store packets received over a communication link in the receive buffer, to derive a first credit count corresponding to a number of available blocks in the receive buffer, to convert the first credit count to a second credit count so as to represent an available space in the receive buffer in accordance with a second block size, which is different from the first block size, by extracting from the first credit count a number of Most Significant Bits (MSBs) that depends on a ratio between the second block size and the first block size, which equals an integer ratio, and to control a transmission rate of the packets by publishing the second credit count over the communication link.

8. The apparatus according to claim 7 , wherein the receiver controller is configured to publish the second credit count by publishing a number of bytes that is smaller than an actual size of the receive buffer by at least the second block size.

9. The apparatus according to claim 7 , wherein the receiver controller is configured to round-up or round-down the extracted MSBs.

10. The apparatus according to claim 7 , and comprising a sending node, which is configured to generate and transmit the packets over the communication link, to maintain a credit count in accordance with the first block size, and to update the credit count based on the published second credit count and on a number of bytes delivered from the sending node to the communication link.

11. A communication apparatus, comprising:

a sending node, which is configured to generate and transmit packets over a communication link;

a receive buffer, which comprises one or more blocks having a first block size; and

a receiver controller, which is configured to store the packets received from the sending node over the communication link in the receive buffer, to derive a first credit count corresponding to a number of available blocks in the receive buffer, to convert the first credit count to a second credit count so as to represent an available space in the receive buffer in accordance with a second block size, which is different from the first block size, and to control a transmission rate of the packets by publishing the second credit count over the communication link,

wherein the sending node is configured to maintain a sent blocks count indicating a number of blocks delivered to the communication link since link initialization, and to report the sent blocks count over the communication link in units corresponding to the second block size.

12. A communication apparatus, comprising:

a receive buffer, which comprises one or more blocks having a first block size; and

a receiver controller, which is configured to store packets received over a communication link in the receive buffer, to derive a first credit count corresponding to a number of available blocks in the receive buffer, by evaluating the number of available blocks in the receive buffer excluding part of the available space whose size equals at least a second block size, which is different from the first block size, to convert the first credit count to a second credit count so as to represent an available space in the receive buffer in accordance with the second block size, and to control a transmission rate of the packets by publishing the second credit count over the communication link.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 37900/0720 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 046542/0792 →
PATENT SECURITY AGREEMENT Recorded Feb 24, 2016
From: MELLANOX TECHNOLOGIES, LTD.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037900/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2014
From: HARAMATY, ZACHY; KRISS, ROY; ABRAMOVICH, NOAM KATZ; ELIAS, GEORGE; RAVID, RAN
To: MELLANOX TECHNOLOGIES LTD.
Reel/Frame 033348/0139 →