IP Library Granted Patent US 12,255,828
Granted Patent B2
US 12,255,828 · App. 18/113,100 · Granted Mar 18, 2025

QOS for multiplex network receive queue

Inventors: Gal Shalom (Givat-Avni, IL); Omri Kahalon (Tel Aviv, IL); Aviad Yehezkel (Yokneam Illit, IL); Yossi Kuperman (Haifa, IL); Roni Bar Yanai (Even Yehuda, IL)
Assignee: Mellanox Technologies, Ltd
H04L47/31H04L47/215H04L47/622H04L47/629H04L49/3009
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,255,828
App. No.
18/113,100
Granted
Mar 18, 2025
Kind
B2
Abstract

In one embodiment, a network device, including a network interface to receive packets over a packet data network, and a hierarchical policer to provide queue fairness for a plurality of network flows competing for access to a multiplex network receive queue, and including level one meters to label the received packets, a level two meter to receive at least some of the labeled packets and relabel the at least some labeled packets, and queueing logic add the packets labeled with a first label-type to the multiplex network receive queue and drop the packets labeled with a third label-type.

Claims (39)

1. A network device, comprising:

a network interface to receive packets over a packet data network; and

packet processing circuitry to manage a multiplex network receive queue, and including a hierarchical policer to provide queue fairness for a plurality of network flows competing for access to the multiplex network receive queue, the hierarchical policer including:

a plurality of level one meters to label the received packets with corresponding labels selected from labels of three label-types based on available level-one-meter credits for a first label-type and a second label-type, a first level one meter of the level one meters being to selectively label packets of a first network flow according to the three label-types, a second level one meter of the level one meters being to selectively label packets of a second network flow according to the three label-types;

a level two meter to receive at least some of the labeled packets output by the level one meters and relabel the at least some labeled packets based on a current labeling of the labeled packets and available level-two-meter credits for the first label-type and the second label-type; and

queueing logic to selectively: add the packets labeled with the first label-type or the second label-type of the three label-types to the multiplex network receive queue; and drop the packets labeled with a third label-type of the three label-types, the packet processing circuitry being to configure a number of the available level-one-meter credits and the available level-two-meter credits so that the packets labeled with the first label-type by the level one meters retain the first label-type after the relabeling by the level two meter.

2. The device according to claim 1 , wherein the hierarchical policer is to provide the queue fairness for the network flows so that each of the network flows competing for access to the multiplex network receive queue is provided at least a minimal access to the multiplex network receive queue.

3. The device according to claim 1 , wherein the packet processing circuitry is to consume the available level-one-meter credits and the available level-two-meter credits according to a bandwidth of the packets.

4. The device according to claim 3 , wherein the packet processing circuitry is to periodically replenish the available level-one-meter credits and the available level-two-meter credits.

5. The device according to claim 1 , wherein the packet processing circuitry is to consume the available level-one-meter credits and the available level-two-meter credits according to a number of the packets.

6. The device according to claim 5 , wherein the packet processing circuitry is to add back consumed ones of the level-one-meter credits and the level-two-meter credits responsively to respective ones of the packets being consumed from the multiplex network receive queue.

7. The device according to claim 1 , wherein the hierarchical policer is to provide the queue fairness for the network flows so that each of the network flows competing for access to the multiplex network receive queue is provided at least a minimal access to the multiplex network receive queue based on packets labeled with the first label-type by the level one meters retaining the first label-type after the relabeling by the level two meter.

8. The device according to claim 1 , wherein the packet processing circuitry is to configure the available level-one-meter credits and the available level-two-meter credits so that some of the packets labeled with the second label-type by the level one meters are relabeled with the third label-type by the level two meter.

9. A network method, comprising:

receiving packets over a packet data network;

managing a multiplex network receive queue;

providing queue fairness for a plurality of network flows competing for access to the multiplex network receive queue using a hierarchical policer;

labeling the received packets with corresponding labels selected from labels of three label-types by a plurality of level one meters including a first level one meter and a second level one meter, the labeling including labeling the received packets according to the three label-types based on available level-one-meter credits for a first label-type and a second label-type;

selectively labeling packets of a first network flow according to the three label-types by the first level one meter;

selectively labeling packets of a second network flow according to the three label-types by the second level one meter;

receiving at least some of the labeled packets output by the level one meters;

relabeling the at least some labeled packets, the relabeling including relabeling some of the labeled packets based on a current labeling of the labeled packets and available level-two-meter credits for the first label-type and the second label-type;

configuring a number of the available level-one-meter credits and the available level-two-meter credits so that the packets labeled with the first label-type by the level one meters retain the first label-type after the relabeling by the level two meter; and

selectively adding the packets labeled with the first label-type or the second label-type of the three label-types to the multiplex network receive queue and dropping the packets labeled with a third label-type of the three label-types.

10. The method according to claim 9 , wherein the providing includes providing the queue fairness for the network flows so that each of the network flows competing for access to the multiplex network receive queue is provided at least a minimal access to the multiplex network receive queue.

11. The method according to claim 9 , further comprising consuming the available level-one-meter credits and the available level-two-meter credits according to a bandwidth of the packets.

12. The method according to claim 11 , further comprising periodically replenishing the available level-one-meter credits and the available level-two-meter credits.

13. The method according to claim 9 , further comprising consuming the available level-one-meter credits and the available level-two-meter credits according to a number of the packets.

14. The method according to claim 13 , further comprising adding back consumed ones of the level-one-meter credits and the level-two-meter credits responsively to respective ones of the packets being consumed from the multiplex network receive queue.

15. The method according to claim 9 , wherein the providing includes providing the queue fairness for the network flows so that each of the network flows competing for access to the multiplex network receive queue is provided at least a minimal access to the multiplex network receive queue based on packets labeled with the first label-type by the level one meters retaining the first label-type after the relabeling by the level two meter.

16. The method according to claim 9 , wherein the configuring includes configuring the available level-one-meter credits and the available level-two-meter credits so that some of the packets labeled with the second label-type by the level one meters are relabeled with the third label-type by the level two meter.

17. A network device, comprising:

a network interface to receive packets over a packet data network; and

packet processing circuitry to manage a multiplex network receive queue, and including a hierarchical policer to provide queue fairness for a plurality of network flows competing for access to the multiplex network receive queue, the hierarchical policer including:

a plurality of level one meters to label the received packets with corresponding labels selected from labels of three label-types based on available level-one-meter credits for a first label-type and a second label-type, a first level one meter of the level one meters being to selectively label packets of a first network flow according to the three label-types, a second level one meter of the level one meters being to selectively label packets of a second network flow according to the three label-types;

a level two meter to receive at least some of the labeled packets output by the level one meters and relabel the at least some labeled packets based on a current labeling of the labeled packets and available level-two-meter credits for the first label-type and the second label-type; and

queueing logic to selectively: add the packets labeled with the first label-type or the second label-type of the three label-types to the multiplex network receive queue; and drop the packets labeled with a third label-type of the three label-types, wherein the packet processing circuitry is to:

consume the available level-one-meter credits and the available level-two-meter credits according to a number of the packets; and

add back consumed ones of the level-one-meter credits and the level-two-meter credits responsively to respective ones of the packets being consumed from the multiplex network receive queue.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2023
From: SHALOM, GAL; KAHALON, OMRI; YEHEZKEL, AVIAD; KUPERMAN, YOSSI; BAR YANAI, RONI
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 062775/0044 →
Continuity (1)
Related Publication 20240291766A1 · Aug 29, 2024
References Cited (42)
US 6751663B1 · Farrell et al. · 2004 [cited by applicant]
US 7787472B2 · Washburn et al. · 2010 [cited by applicant]
US 8045470B2 · Zseby · 2011 [cited by applicant]
US 8705365B1 · Martin et al. · 2014 [cited by applicant]
US 8856518B2 · Sridharan et al. · 2014 [cited by applicant]
US 9331947B1 · O'Keeffe et al. · 2016 [cited by applicant]
US 9450881B2 · Dumitrescu et al. · 2016 [cited by applicant]
US 9942158B2 · Shetty et al. · 2018 [cited by applicant]
US 10181987B2 · Grandham et al. · 2019 [cited by applicant]
US 10237354B2 · Jani · 2019 [cited by applicant]
US 10341263B2 · Zou et al. · 2019 [cited by applicant]
US 10432745B2 · Daly et al. · 2019 [cited by applicant]
US 10680964B1 · Kadosh et al. · 2020 [cited by applicant]
US 10924418B1 · Gudibanda et al. · 2021 [cited by applicant]
US 11310163B1 · Lo et al. · 2022 [cited by applicant]
US 11470007B2 · Urman et al. · 2022 [cited by applicant]
US 11516135B2 · Aibester et al. · 2022 [cited by applicant]
US 11558304B2 · Lo et al. · 2023 [cited by applicant]
US 11621920B2 · Urman et al. · 2023 [cited by applicant]
US 20040081095A1 · Liu et al. · 2004 [cited by applicant]
US 20050160180A1 · Rabje et al. · 2005 [cited by applicant]
US 20060221819A1 · Padwekar · 2006 [cited by applicant]
US 20090109847A1 · Stephenson et al. · 2009 [cited by applicant]
US 20100150004A1 · Duffield et al. · 2010 [cited by applicant]
US 20110080886A1 · Chandrachood et al. · 2011 [cited by applicant]
US 20110096666A1 · Davari · 2011 [cited by examiner]
US 20120054363A1 · Hart · 2012 [cited by applicant]
US 20150006755A1 · Turlington et al. · 2015 [cited by applicant]
US 20150085694A1 · Agarwal et al. · 2015 [cited by applicant]
US 20160262073A1 · Muley et al. · 2016 [cited by applicant]
US 20170177222A1 · Singh et al. · 2017 [cited by applicant]
US 20190058641A1 · Mirzazad Barijough et al. · 2019 [cited by applicant]
US 20200358674A1 · Harikrishnan et al. · 2020 [cited by applicant]
US 20210084530A1 · Song et al. · 2021 [cited by applicant]
US 20210117360A1 · Kutch et al. · 2021 [cited by applicant]
US 20220368639A1 · Aibester et al. · 2022 [cited by applicant]
WO 2020212308A1 · 2020 [cited by applicant]
Heinanen et al., “A Single Rate Three Color Marker,” Request for Comments (RFC) 2697, The Internet Society, pp. 1-7, Sep. 1999. [cited by applicant]
Heinanen et al., “A Two Rate Three Color Marker,” Request for Comments (RFC) 2698, The Internet Society, pp. 1-6, Sep. 1999. [cited by applicant]
Hahne et al., “Dynamic Queue Length Thresholds for Multiple Loss Priorities,” IEEE/ACM Transactions on Networking, vol. 10, No. 3, pp. 368-380, Jun. 2002. [cited by applicant]
Claise et al., “Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of Flow Information,” Request for Comments (RFC) 7011, Internet Engineering Task Force (IETF), pp. 1-77, Sep. 2013. [cited by applicant]
Aboul-Magd et al., “A Differentiated Service Two-Rate, Three-Color Marker with Efficient Handling of in-Profile Traffic,” Request for Comments (RFC) 4115, The Internet Society, pp. 1-6, year 2005. [cited by applicant]