IP Library Granted Patent US 12,726,447
Granted Patent B2
US 12,726,447 · App. 18/652,825 · Granted Sep 1, 2026

Dual mode QOS

Inventors: Chengchun Tu (Sammamish, WA); Daniel T Jurgens (Austin, TX); Bodong Wang (Austin, TX)
Assignee: Mellanox Technologies, Ltd
H04L47/627H04L47/20H04L47/32H04L47/58H04L47/6295
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,726,447
App. No.
18/652,825
Granted
Sep 1, 2026
Kind
B2
Abstract

In one embodiment, a network device includes a network interface to receive packets over a packet data network, packet processing circuitry to manage a multiplex network receive queue, and including a policer to provide queue fairness for a plurality of network flows competing for access to the multiplex network receive queue, and including meters to label the received packets, and selectively operate in (a) a two-level mode with two-levels of the meters, and (b) a single-level mode with a single one of the meters, and queueing logic to add some of the received packets to the multiplex network receive queue and drop others of the received packets responsively to labelling of the packets by the meters.

Claims (51)

1 . A network device, comprising:

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

packet processing circuitry to manage a multiplex network receive queue, and including:

a policer to: provide queue fairness for a plurality of network flows competing for access to the multiplex network receive queue, and including meters to label the received packets, and selectively operate in: (a) a two-level mode with two-levels of the meters; and (b) a single-level mode with a single one of the meters; and automatically selectively toggle between the two-level mode and the single-level mode; and

queueing logic to add some of the received packets to the multiplex network receive queue and drop others of the received packets responsively to labeling of the packets by the meters.

2 . The network device according to claim 1 , wherein:

in the two-level mode, the two-levels of meters include:

level one meters to receive first packets from the network interface and label the first packets; and

a level two meter to receive at least some of the labeled first packets from the level one meters and relabel the at least some labeled first packets;

in the single-level mode, the level two meter is to receive second packets from the network interface and label the second packets; and

the queueing logic is to add ones of the first packets and the second packets labeled with a first label-type or a second label-type to the multiplex network receive queue and drop ones of the first packets and the second packets labeled with a third label-type.

3 . The network device according to claim 2 , wherein the packet processing circuitry is to configure packet steering to feed the first packets into the level one meters according to the network flows when toggling from operating in the single-level mode to operating in the two-level mode.

4 . The network device according to claim 2 , wherein the meters are to label the packets according to three label-types based on available per meter credits for the first label-type and the second label-type.

5 . The network device according to claim 4 , wherein the packet processing circuitry is to:

consume the available per meter credits according to a bandwidth of the packets for the level one meters;

periodically replenish the available per meter credits for the level one meters;

consume the available packet credits according to a number of the packets for the level two meter; and

add back consumed ones of the packet credits responsively to respective ones of the packets being consumed from the multiplex network receive queue.

6 . The network device according to claim 5 , wherein the packet processing circuitry is to assign a bandwidth limit to the first label-type and the second label-type for each of the level one meters according to a bandwidth limit of the multiplex network receive queue.

7 . The network device according to claim 2 , wherein:

the level two meter has a status equal to the first label type or the second label type or the third label type; and

the packet processing circuitry is to toggle the policer from operating in the single-level mode to operating in the two-level mode responsively to detecting that the status of the level two meter is the second label type or the third label type.

8 . The network device according to claim 7 , wherein the packet processing circuitry is to detect the status of the level two meter by sampling a current label being allocated by the level two meter and averaging over a sliding time window.

9 . The network device according to claim 7 , wherein the packet processing circuitry is to toggle the policer from operating in the two-level mode to operating in the single-level mode responsively to a given number or given fraction of the level one meters have a status equal to the first label type.

10 . A networking 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 policer including meters;

labelling by the meters the received packets;

selectively operating in: (a) a two-level mode with two-levels of the meters; and (b) a single-level mode with a single one of the meters;

automatically selectively toggling between the two-level mode and the single-level mode;

adding some of the received packets to the multiplex network receive queue; and

dropping others of the received packets responsively to the labeling of the packets.

11 . The method according to claim 10 , further comprising:

in the two-level mode:

receiving by level one meters first packets from a network interface and labeling the first packets; and

receiving by a level two meter at least some of the labeled first packets from the level one meters and relabeling the at least some labeled first packets; and

in the single-level mode:

receiving by the level two meter second packets from the network interface and labeling the second packets; and

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

12 . The method according to claim 11 , further comprising configuring packet steering to feed the first packets into the level one meters according to the network flows when toggling from operating in the single-level mode to operating in the two-level mode.

13 . The method according to claim 11 , further comprising labeling the packets according to three label-types based on available per meter credits for the first label-type and the second label-type.

14 . The method according to claim 13 , further comprising:

consuming the available per meter credits according to a bandwidth of the packets for the level one meters;

periodically replenishing the available per meter credits for the level one meters;

consuming available packet credits according to a number of the packets for the level two meter; and

adding back consumed ones of the packet credits responsively to respective ones of the packets being consumed from the multiplex network receive queue.

15 . The method according to claim 14 , further comprising assigning a bandwidth limit to the first label-type and the second label-type for each of the level one meters according to a bandwidth limit of the multiplex network receive queue.

16 . The method according to claim 11 , wherein the level two meter has a status equal to the first label type or the second label type or the third label type, the method further comprising toggling the policer from operating in the single-level mode to operating in the two-level mode responsively to detecting that the status of the level two meter is the second label type or the third label type.

17 . The method according to claim 16 , further comprising detecting the status of the level two meter by sampling a current label being allocated by the level two meter and averaging over a sliding time window.

18 . The method according to claim 16 , further comprising toggling the policer from operating in the two-level mode to operating in the single-level mode responsively to a given number or given fraction of the level one meters have a status equal to the first label type.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2024
From: TU, CHENGCHUN; JURGENS, DANIEL T; WANG, BODONG
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 067289/0087 →
Continuity (1)
Related Publication 20250343766A1 · Nov 6, 2025
References Cited (66)
US 6751663B1 · Farrell et al. · 2004 [cited by applicant]
US 6970426B1 · Haddock · 2005 [cited by examiner]
US 7554907B1 · Epps · 2009 [cited by examiner]
US 7640355B1 · Marshall · 2009 [cited by examiner]
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 20020071398A1 · Moran · 2002 [cited by examiner]
US 20030152084A1 · Lee · 2003 [cited by examiner]
US 20040081095A1 · Liu et al. · 2004 [cited by applicant]
US 20050078602A1 · Mancour · 2005 [cited by examiner]
US 20050160180A1 · Rabje · 2005 [cited by examiner]
US 20060087969A1 · Santiago · 2006 [cited by examiner]
US 20060159019A1 · Buskirk · 2006 [cited by examiner]
US 20060221819A1 · Padwekar · 2006 [cited by applicant]
US 20060239194A1 · Chapell · 2006 [cited by examiner]
US 20080056268A1 · Washburn · 2008 [cited by examiner]
US 20090109847A1 · Stephenson · 2009 [cited by examiner]
US 20100150004A1 · Duffield et al. · 2010 [cited by applicant]
US 20100195504A1 · Nandagopal · 2010 [cited by examiner]
US 20100271946A1 · Davari · 2010 [cited by examiner]
US 20110080886A1 · Chandrachood et al. · 2011 [cited by applicant]
US 20110096666A1 · Davari · 2011 [cited by examiner]
US 20120054363A1 · Hart · 2012 [cited by applicant]
US 20120170450A1 · Alleyne · 2012 [cited by examiner]
US 20120170452A1 · Alleyne · 2012 [cited by examiner]
US 20140140234A1 · Briscoe · 2014 [cited by examiner]
US 20150006755A1 · Turlington et al. · 2015 [cited by applicant]
US 20150016266A1 · Dumitrescu · 2015 [cited by examiner]
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 20170230301A1 · Szymanski · 2017 [cited by examiner]
US 20170302467A1 · Liu · 2017 [cited by examiner]
US 20190058641A1 · Mirzazad Barijough et al. · 2019 [cited by applicant]
US 20190215277A1 · Dhanoa · 2019 [cited by examiner]
US 20200145345A1 · Finkelstein · 2020 [cited by examiner]
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]
US 20240291766A1 · Shalom et al. · 2024 [cited by applicant]
WO 2020212308A1 · 2020 [cited by applicant]
Parekh et al A Generalized Processor Sharing Approach to Flow Control in Integrated Services Networks: The Single-Node Case, IEEE/ACM Transactions on Networki]'(G, vol. I, No. 3, Jun. 1993 (Year: 1993). [cited by examiner]
Parekh et al, A Generalized Processor Sharing Approach to Flow Control in Integrated Services Networks: The Multiple Node Case, IEEEIACM Transactions on Networking. vol 2. No. 2, Apr. 1994 (Year: 1994). [cited by examiner]
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]
U.S. Appl. No. 18/113,100 Office Action dated Nov. 26, 2024. [cited by applicant]