IP Library Granted Patent US 9,699,095
Granted Patent B2
US 9,699,095 · App. 14/718,114 · Granted Jul 4, 2017

Adaptive allocation of headroom in network devices

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,699,095
App. No.
14/718,114
Granted
Jul 4, 2017
Kind
B2
Abstract

Communication apparatus includes multiple ports for connection to a packet data network. A memory contains, for each port, a respective first, fixed headroom allocation to hold packets received from the network through the port and to contain a shared headroom buffer, which is available to be shared among a plurality of the ports. Flow-control logic allocates to each of the ports, within the shared headroom buffer, a respective second, variable headroom allocation, which varies responsively to fill levels of the respective first headroom allocation and of the shared headroom buffer, thereby defining, for each of the ports, a respective total headroom allocation comprising the respective first and second headroom allocations. The logic is configured to apply flow-control operations in response to the packets received from the network through each port responsively to a total fill level of the respective total headroom allocation of the port.

Claims (20)

1. Communication apparatus, comprising:

multiple ports configured for connection to a packet data network;

a memory coupled to the ports and configured to contain, for each port, a respective first, fixed headroom allocation to hold packets received from the network through the port and to contain a shared headroom buffer, which is available to be shared among a plurality of the ports; and

flow-control logic, which is configured to allocate to each of the ports, within the shared headroom buffer, a respective second, variable headroom allocation, which varies responsively to fill levels of the respective first headroom allocation and of the shared headroom buffer, thereby defining, for each of the ports, a respective total headroom allocation comprising the respective first and second headroom allocations, and which is configured to apply flow-control operations in response to the packets received from the network through each port responsively to a size of and a total fill level of the respective total headroom allocation of the port.

2. The apparatus according to claim 1 , wherein the flow-control logic is configured to set a threshold for each port responsively to the respective total headroom allocation, and to apply a flow-control operation when the total fill level is above the threshold.

3. The apparatus according to claim 2 , wherein the threshold is an XOFF threshold, and wherein the flow-control operation comprises sending a PAUSE frame to a peer node when the total fill level passes the XOFF threshold.

4. The apparatus according to claim 2 , wherein the threshold is an XON threshold, and wherein the flow-control operation comprises sending a command to a peer node to resume transmission of packets when the total fill level drops below the XON threshold.

5. The apparatus according to claim 2 , wherein the threshold is drop threshold, and wherein the flow-control operation comprises dropping one or more packets received from a peer node when the total fill level passes the drop threshold.

6. The apparatus according to claim 1 , wherein the first, fixed headroom allocation comprises, for each port, multiple, respective sub-allocations, which are respectively assigned to different flow-control classes of the packets received through the port, and wherein at least a part of the respective second, variable headroom allocation of the port is shared among the different flow-control classes.

7. The apparatus according to claim 6 , wherein the flow-control logic is configured to allocate to each port, within the shared headroom buffer, a third headroom allocation, which is shared among the different flow-control classes of the packets received through the port, in addition to the respective sub-allocations of the first, fixed headroom allocation that are assigned to the different flow-control classes and to the part of the respective second, variable headroom allocation of the port.

8. A method for communication, comprising:

in a network element having multiple ports connected to a packet data network and a memory coupled to the ports, providing to each port a respective first, fixed headroom allocation in the memory to hold packets received from the network through the port, and providing in the memory a shared headroom buffer, which is available to be shared among a plurality of the ports;

allocating to each of the ports, within the shared headroom buffer, a respective second, variable headroom allocation, which varies responsively to fill levels of the respective first headroom allocation and of the shared headroom buffer, thereby defining, for each of the ports, a respective total headroom allocation comprising the respective first and second headroom allocations; and

applying flow-control operations in response to the packets received from the network through each port responsively to a size of and a total fill level of the respective total headroom allocation of the port.

9. The method according to claim 8 , wherein applying the flow-control operations comprises setting a threshold for each port responsively to the respective total headroom allocation, and performing a flow-control operation when the total fill level is above the threshold.

10. The method according to claim 9 , wherein the threshold is an XOFF threshold, and wherein the flow-control operation comprises sending a PAUSE frame to a peer node when the total fill level passes the XOFF threshold.

11. The method according to claim 9 , wherein the threshold is an XON threshold, and wherein the flow-control operation comprises sending a command to a peer node to resume transmission of packets when the total fill level drops below the XON threshold.

12. The apparatus according to claim 9 , wherein the threshold is drop threshold, and wherein the flow-control operation comprises dropping one or more packets received from a peer node when the total fill level passes the drop threshold.

13. The method according to claim 8 , wherein the first, fixed headroom allocation comprises, for each port, multiple, respective sub-allocations, which are respectively assigned to different flow-control classes of the packets received through the port, and wherein at least a part of the respective second, variable headroom allocation of the port is shared among the different flow-control classes.

14. The method according to claim 13 , wherein applying the flow-control operations comprises allocating to each port, within the shared headroom buffer, a third headroom allocation, which is shared among the different flow-control classes of the packets received through the port, in addition to the respective sub-allocations of the first, fixed headroom allocation that are assigned to the different flow-control classes and to the part of the respective second, variable headroom allocation of the 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. 37898/0959 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 046542/0699 →
PATENT SECURITY AGREEMENT Recorded Feb 23, 2016
From: MELLANOX TECHNOLOGIES TLV LTD.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037898/0959 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2015
From: ELIAS, GEORGE; BUKSPAN, IDO; ABRAMOVICH, NOAM KATZ; GAFNI, BARAK
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 035685/0697 →