IP Library Granted Patent US 9,762,491
Granted Patent B2
US 9,762,491 · App. 14/672,357 · Granted Sep 12, 2017

Dynamic thresholds for congestion 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 9,762,491
App. No.
14/672,357
Granted
Sep 12, 2017
Kind
B2
Abstract

Communication apparatus includes multiple interfaces configured for connection to a packet data network. A memory, coupled to the interfaces, is configured as a shared buffer to contain packets in multiple sets of queues for transmission to the network. Each set of queues receives in the shared buffer a respective allocation having an allocation size that varies over time in response to an amount of space in the shared buffer that is unused at any given time. A controller is configured to apply congestion control to a respective fraction of the packets that are queued for transmission from each set of queues in the shared buffer to the network, such that the respective fraction is set for each set of queues at any given time in response to a relation between a length of the queues in the set and the allocation size of the respective allocation at the given time.

Claims (27)

1. Communication apparatus, comprising:

multiple interfaces configured for connection to a packet data network;

a memory coupled to the interfaces and configured as a shared buffer to contain packets in multiple sets of queues for transmission to the network, each set of queues receiving in the shared buffer a respective allocation having an allocation size that varies over time in response to an amount of space in the shared buffer that is unused at any given time; and

a controller, which is configured to periodically:

determine, for each set of queues, a current length of the queues,

compute a size of an unused portion of the memory,

compute for each set of queues a threshold responsive to the computed size of unused memory,

set a probability of marking packets with a congestion marking, for each set of queues, in response to the determined current length of the queue, a current allocation size of the set of queues and the computed threshold, and

mark a respective fraction of the packets that are queued for transmission from each set of queues in the shared buffer to the network, according to the currently set probability.

2. The apparatus according to claim 1 , wherein the allocation size for each set of queues at any given time is determined by a threshold, which is equal to a product of the amount of the unused space in the buffer multiplied by a respective constant of proportionality.

3. The apparatus according to claim 2 , wherein the respective constant of proportionality is set to different, respective values for different ones of the sets of queues.

4. The apparatus according to claim 1 , wherein the respective fraction of the packets in each set of queues increases as the current length of the set of queues approaches the allocation size of the respective allocation.

5. The apparatus according to claim 1 , wherein the respective fraction of the packets in each set of queues increases as the allocation size of the set of queues decreases in response to increasing buffer occupancy by other queues.

6. The apparatus according to claim 1 , wherein the controller is configured to compute the respective fraction of the packets in each set of queues as a function of a ratio between the length of the queues in the set and the allocation size of the set of queues.

7. A method for communication, comprising:

in a network element having multiple interfaces connected to a packet data network and a memory coupled to the interfaces and configured as a shared buffer to contain packets in multiple sets of queues for transmission to the network, allocating to each set of queues in the shared buffer a respective allocation having an allocation size that varies over time in response to an amount of space in the shared buffer that is unused at any given time; and

periodically performing:

determining, for each set of queues, a current length of the queues,

computing a size of an unused portion of the memory,

computing, for each set of queues, a threshold responsive to the computed size of unused memory,

setting a probability of marking packets with a congestion marking, for each set of queues, in response to the determined current length of the queue, a current allocation size of the set of queues and the computed threshold, and

marking a respective fraction of the packets that are queued for transmission from each set of queues in the shared buffer to the network, according to the currently set probability.

8. The method according to claim 7 , wherein allocating the respective allocation comprises setting for each set of queues a respective threshold, which is equal to a product of the amount of the unused space in the buffer multiplied by a respective constant of proportionality.

9. The method according to claim 8 , wherein the respective constant of proportionality is set to different, respective values for different ones of the sets of queues.

10. The method according to claim 7 , wherein the respective fraction of the packets in each set of queues to which the congestion control is applied increases as the current length of the queues in the set approaches the allocation size of the respective allocation.

11. The method according to claim 7 , wherein the respective fraction of the packets in each set of queues increases as the allocation size of the set of queues decreases in response to increasing buffer occupancy by other queues.

12. The method according to claim 7 , wherein applying congestion control comprises computing the respective fraction of the packets in each set of queues as a function of a ratio between the length of the queues in the set and the allocation size of the set of queues.

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 Mar 30, 2015
From: GAFNI, BARAK; KOREN, BENNY; ELIAS, GEORGE
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 035283/0893 →