IP Library › Granted Patent US 12,021,756
Granted Patent B2
US 12,021,756 · App. 18/267,291 · Granted Jun 25, 2024

Multi-queue packet processing performed by an intermediate device in a communication network

Inventors: Szilveszter Nádas (Santa Clara, CA); Sandor Laki (Budapest, HU); Gergo Gombos (Budapest, HU); Ferenc Fejes (Budapest, HU)
Assignee: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
H04L47/6215H04L47/12H04L47/29
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 12,021,756
App. No.
18/267,291
Filed
Jun 14, 2023
Granted
Jun 25, 2024
Kind
B2
Art Unit
2455
USPC
709/224
Abstract

An intermediate device ( 110 ) of a communication network ( 100 ) assigns each of a plurality of received packets ( 300 ) to either a Low Latency, Low Loss, Scalable throughput (L4S) queue ( 370 a ) or a non-L4S queue ( 370 b ). Each queue ( 370 a, 370 b ) is associated with one packet value size counter for each of the plurality of packet values ( 320 ). The intermediate device ( 110 ) increments, for each packet ( 300 ) and by a size of the packet ( 300 ), the packet value size counter associated with the queue ( 370 a, 370 b ) to which the packet ( 300 ) is assigned and calculates, for each queue ( 370 a, 370 b ), a congestion threshold value based on the packet value size counters associated with the queue ( 370 a, 370 b ). The intermediate device ( 110 ) marks one or more of the packets ( 300 ) as having experienced congestion based on the congestion threshold values of the queues ( 370 a, 370 b ).

Claims (44)

1. A method, implemented by an intermediate device of a communication network, the method comprising:

receiving a plurality of packets, each packet comprising a packet value, the packet value of each packet being one of a plurality of packet values that respectively identify a unique packet classification;

assigning each of the packets to either a Low Latency, Low Loss, Scalable throughput (L4S) queue or a non-L4S queue, each queue being associated with one packet value size counter for each of the plurality of packet values;

incrementing, for each packet and by a size of the packet, the packet value size counter associated with the queue to which the packet is assigned;

generating, for each of the queues, a histogram representing a distribution of the packet values comprised in the plurality of packets;

calculating, for each queue, a congestion threshold value based on the packet value size counters associated with the queue, wherein calculating the congestion threshold value for each queue comprises selecting the congestion threshold value of each queue based on the histogram of the queue; and

marking one or more of the packets as having experienced congestion based on the congestion threshold values of the queues.

2. The method of claim 1 , further comprising incrementing, for each packet and by the size of the packet, a total size counter associated with the queue to which the packet is assigned, wherein calculating the congestion threshold value for each queue is further based on the total size counter associated with the queue.

3. The method of claim 2 , further comprising periodically updating a control plane of the intermediate device with the total size counters of the queues.

4. The method of claim 3 , further comprising periodically updating the control plane of the intermediate device with the packet value size counters associated with each of the queues.

5. The method of claim 4 , wherein the periodic updating of the control plane with the total size counters is more frequent than the periodic updating of the control plane with the packet value size counters.

6. The method of claim 1 , wherein selecting the congestion threshold value of each queue based on the histogram of the queue comprises selecting, as the congestion threshold value of the queue, the highest packet value in which a total size of all of packets represented in the histogram having the highest packet value or higher is not less than a threshold.

7. The method of claim 6 , further comprising calculating the threshold based on a total size of the packets represented in the histogram and a marking probability.

8. The method of claim 4 , further comprising periodically performing the calculating of the congestion threshold values for each queue, by the control plane, responsive to the periodic updating of the control plane with the total size counters associated with the queues.

9. The method of claim 1 , further comprising:

receiving a plurality of additional packets respectively comprising packet values;

assigning each of the additional packets to one of the queues; and

determining, for each of the additional packets, whether to drop the additional packet based on the congestion threshold value of the queue and the packet value of the additional packet.

10. An intermediate device comprising:

processing circuitry and a memory, the memory containing instructions executable by the processing circuitry whereby the intermediate device is configured to:

receive a plurality of packets, each packet comprising a packet value, the packet value of each packet being one of a plurality of packet values that respectively identify a unique packet classification;

assign each of the packets to either a Low Latency, Low Loss, Scalable throughput (L4S) queue or a non-L4S queue, each queue being associated with one packet value size counter for each of the plurality of packet values;

increment, for each packet and by a size of the packet, the packet value size counter associated with the queue to which the packet is assigned;

generate, for each of the queues, a histogram representing a distribution of the packet values comprised in the plurality of packets;

calculate, for each queue, a congestion threshold value based on the packet value size counters associated with the queue, wherein to calculate the congestion threshold value for each queue the intermediate device is configured to select the congestion threshold value of each queue based on the histogram of the queue; and

mark one or more of the packets as having experienced congestion based on the congestion threshold values of the queues.

11. The intermediate device of claim 10 , further configured to increment, for each packet and by the size of the packet, a total size counter associated with the queue to which the packet is assigned, wherein calculating the congestion threshold value for each queue is further based on the total size counter associated with the queue.

12. The intermediate device of claim 11 , further configured to periodically update a control plane of the intermediate device with the total size counters of the queues.

13. The intermediate device of claim 12 , further configured to periodically update the control plane of the intermediate device with the packet value size counters associated with each of the queues.

14. The intermediate device of claim 13 , wherein the periodic updating of the control plane with the total size counters is more frequent than the periodic updating of the control plane with the packet value size counters.

15. The intermediate device of claim 10 , wherein to select the congestion threshold value of each queue based on the histogram of the queue the intermediate device is configured to select, as the congestion threshold value of the queue, the highest packet value in which a total size of all of packets represented in the histogram having the highest packet value or higher is not less than a threshold.

16. The intermediate device of claim 15 , further configured to calculate the threshold based on a total size of the packets represented in the histogram and a marking probability.

17. The intermediate device of claim 13 , further configured to periodically perform the calculating of the congestion threshold values for each queue, by the control plane, responsive to the periodic updating of the control plane with the total size counters associated with the queues.

18. The intermediate device of claim 10 , further configured to:

receive a plurality of additional packets respectively comprising packet values;

assign each of the additional packets to one of the queues; and

determine, for each of the additional packets, whether to drop the additional packet based on the congestion threshold value of the queue and the packet value of the additional packet.

19. A non-transitory computer readable medium storing a computer program product for controlling an intermediate device in a wireless communication network, the computer program product comprising software instructions that, when run on the intermediate device, cause the intermediate device to:

receive a plurality of packets, each packet comprising a packet value, the packet value of each packet being one of a plurality of packet values that respectively identify a unique packet classification;

assign each of the packets to either a Low Latency, Low Loss, Scalable throughput (L4S) queue or a non-L4S queue, each queue being associated with one packet value size counter for each of the plurality of packet values;

increment, for each packet and by a size of the packet, the packet value size counter associated with the queue to which the packet is assigned;

generate, for each of the queues, a histogram representing a distribution of the packet values comprised in the plurality of packets;

calculate, for each queue, a congestion threshold value based on the packet value size counters associated with the queue, wherein calculating the congestion threshold value for each queue comprises selecting the congestion threshold value of each queue based on the histogram of the queue; and

mark one or more of the packets as having experienced congestion based on the congestion threshold values of the queues.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2023
From: NÁDAS, SZILVESZTER; LAKI, SANDOR; GOMBOS, GERGO; FEJES, FERENC
To: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Reel/Frame 063949/0230 →
Continuity (2)
Provisional Application 63136724 · Jan 13, 2021
Related Publication 20240056401A1 · Feb 15, 2024
Cited By (1)
US 12,568,395