IP Library › Granted Patent US 12,323,333
Granted Patent B2
US 12,323,333 · App. 16/953,210 · Granted Jun 3, 2025

Software distributed, hardware aggregated hierarchical traffic management

Inventors: Jasvinder Singh (Shannon, IE); Thomas Long (Limerick, IE); Eoin Walsh (Limerick, IE); John J. Browne (Limerick, IE)
Assignee: Intel Corporation
H04L47/2425H04L47/60H04L47/6215H04L47/6275H04L47/808
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,323,333
App. No.
16/953,210
Granted
Jun 3, 2025
Kind
B2
Abstract

In one embodiment, a system comprises an interface to receive a plurality of packets; and a plurality of processor units to execute a plurality of transmission sub-interfaces, each transmission sub-interface to perform hierarchical quality of service (HQoS) scheduling on a distinct subset of the plurality of packets, wherein each transmission sub-interface is to schedule its subset of the plurality of packets for transmission by a network interface controller by assigning the packets of the subset to a plurality of transmission queues that each correspond to a distinct traffic class.

Claims (40)

1. A system comprising:

a plurality of processor units to execute a plurality of transmission sub-interfaces, each transmission sub-interface to perform hierarchical quality of service (HQoS) scheduling on a distinct subset of a plurality of packets, wherein each transmission sub-interface is to schedule its subset of the plurality of packets for transmission by a network interface controller by assigning the packets of the subset to a plurality of transmission queues that each correspond to a distinct traffic class;

wherein a first transmission sub-interface is to initially assign a first bandwidth profile to the traffic class corresponding to the first transmission queue, wherein the first bandwidth profile specifies a bandwidth for the traffic class that is equal to a minimum required bandwidth for the traffic class;

wherein the first transmission sub-interface is to assign a second bandwidth profile to the traffic class corresponding to the first transmission queue based on a determination that the first bandwidth profile has been active for the traffic class for a period of time, wherein the second bandwidth profile specifies a bandwidth for the traffic class that is greater than the minimum required bandwidth for the traffic class.

2. The system of claim 1 , further comprising the network interface controller, wherein the network interface controller comprises a scheduler to allocate a transmission bandwidth of the network interface controller among each of the plurality of transmission sub-interfaces such that each transmission sub-interface is guaranteed a minimum transmission bandwidth for each round of packet transmission by the network interface controller.

3. The system of claim 2 , wherein the scheduler is to:

allocate at least a portion of unused transmission bandwidth of the first transmission sub-interface to a second transmission sub-interface for use during a transmission round.

4. The system of claim 2 , wherein the scheduler is to modify an order of scheduling of the transmission sub-interfaces in successive transmission rounds such that a transmission sub-interface is not scheduled to transmit first for two successive transmission rounds.

5. The system of claim 2 , wherein, during a transmission cycle, the network interface controller is to transmit all available packets of a first traffic class having a highest priority from each transmission sub-interface before transmitting any packets of a second traffic class having a second highest priority.

6. The system of claim 5 , wherein, during the transmission cycle, the scheduler is to allocate unused bandwidth associated with the first traffic class to at least one of the transmission sub-interfaces for transmission of packets of the second traffic class.

7. The system of claim 1 , wherein the first transmission sub-interface is to increase a rate at which the first transmission sub-interface assigns packets to a first transmission queue based on a determination that an occupancy of the first transmission queue does not exceed a threshold.

8. The system of claim 2 , wherein the network interface controller is to retrieve packets assigned to more than one of the plurality of transmission queues of a transmission sub-interface in a single memory mapped input/output (I/O) operation responsive to a notification that packets are queued.

9. A method comprising:

receiving a plurality of packets; and

executing, by a plurality of processor units, a plurality of transmission sub-interfaces, each transmission sub-interface to perform hierarchical quality of service (HQoS) scheduling on a distinct subset of the plurality of packets, wherein each transmission sub-interface is to schedule its subset of the plurality of packets for transmission by a network interface controller by assigning the packets of the subset to a plurality of transmission queues that each correspond to a distinct traffic class;

wherein a first transmission sub-interface is to initially assign a first bandwidth profile to the traffic class corresponding to the first transmission queue, wherein the first bandwidth profile specifies a bandwidth for the traffic class that is equal to a minimum required bandwidth for the traffic class;

wherein the first transmission sub-interface is to assign a second bandwidth profile to the traffic class corresponding to the first transmission queue based on a determination that the first bandwidth profile has been active for the traffic class for a period of time, wherein the second bandwidth profile specifies a bandwidth for the traffic class that is greater than the minimum required bandwidth for the traffic class.

10. The method of claim 9 , further comprising allocating a transmission bandwidth of the network interface controller among each of the plurality of transmission sub-interfaces, such that each transmission sub-interface is guaranteed a minimum transmission bandwidth for each round of packet transmission by the network interface controller.

11. The method of claim 10 , further comprising:

allocating at least a portion of unused transmission bandwidth of a first transmission sub-interface to a second transmission sub-interface for use during a transmission round.

12. The method of claim 10 , further comprising transmitting during a transmission cycle, via the network interface controller, all available packets of a first traffic class from each sub-interface before transmitting any packets of a second traffic class.

13. The method of claim 9 , further comprising assigning a bandwidth profile to a traffic class and adjusting the bandwidth profile of the traffic class based on occupancy of the transmission queue that corresponds to the traffic class.

14. One or more non-transitory computer-readable media with code stored thereon, wherein the code is executable to cause a machine to:

process a plurality of received packets; and

execute a plurality of transmission sub-interfaces, each transmission sub-interface to perform hierarchical quality of service (HQoS) scheduling on a distinct subset of the plurality of packets, wherein each transmission sub-interface is to schedule its subset of the plurality of packets for transmission by a network interface controller by assigning the packets of the subset to a plurality of transmission queues that each correspond to a distinct traffic class;

wherein a first transmission sub-interface is to initially assign a first bandwidth profile to the traffic class corresponding to the first transmission queue, wherein the first bandwidth profile specifies a bandwidth for the traffic class that is equal to a minimum required bandwidth for the traffic class;

wherein the first transmission sub-interface is to assign a second bandwidth profile to the traffic class corresponding to the first transmission queue based on a determination that the first bandwidth profile has been active for the traffic class for a period of time, wherein the second bandwidth profile specifies a bandwidth for the traffic class that is greater than the minimum required bandwidth for the traffic class.

15. The computer-readable media of claim 14 , wherein the code is executable to cause the machine to allocate a transmission bandwidth of the network interface controller among each of the plurality of transmission sub-interfaces, such that each transmission sub-interface is guaranteed a minimum transmission bandwidth for each round of transmission by the network interface controller.

16. The computer-readable media of claim 15 , wherein the code is executable to cause the machine to:

detect that a first transmission sub-interface did not use all of its allocated transmission bandwidth during a transmission round; and

allocate at least a portion of unused transmission bandwidth of the first transmission sub-interface to a second transmission sub-interface for use during the transmission round.

17. The computer-readable media of claim 15 , wherein the code is executable to cause the machine to transmit during a transmission cycle, via the network interface controller, all available packets of a first traffic class from each sub-interface before transmitting any packets of a second traffic class.

18. The computer-readable media of claim 14 , wherein the code is executable to cause the machine to assign a bandwidth profile to a traffic class and adjust the bandwidth profile of the traffic class based on occupancy of the transmission queue that corresponds to the traffic class.

19. One or more non-transitory computer-readable media with code stored thereon, wherein the code is executable to cause a machine to:

reallocate bandwidth reserved for a first group of at least one subscriber to transmit packets of a first traffic class during a transmission round, wherein the reallocating bandwidth comprises:

determining an unused amount of bandwidth reserved for the first group to transmit packets of the first class; and

allocating at least a portion of the unused reserved bandwidth to a second group of at least one subscriber to transmit packets of the first traffic class during the transmission round;

execute a transmission sub-interface to schedule transmission of packets for the first group, wherein the transmission sub-interface is to adjust a rate at which the transmission sub-interface assigns packets to a transmission queue based on an occupancy of the transmission queue;

wherein the transmission sub-interface is to initially assign a first bandwidth profile to a traffic class corresponding to a first transmission queue, wherein the first bandwidth profile specifies a bandwidth for the traffic class that is equal to a minimum required bandwidth for the traffic class;

wherein the transmission sub-interface is to assign a second bandwidth profile to the traffic class corresponding to the first transmission queue based on a determination that the first bandwidth profile has been active for the traffic class for a period of time, wherein the second bandwidth profile specifies a bandwidth for the traffic class that is greater than the minimum required bandwidth for the traffic class.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2020
From: SINGH, JASVINDER; LONG, THOMAS; WALSH, EOIN; BROWNE, JOHN J.
To: INTEL CORPORATION
Reel/Frame 054424/0861 →
Continuity (1)
Related Publication 20210075732A1 · Mar 11, 2021
References Cited (8)
US 8027354B1 · Portolani · 2011 [cited by examiner]
US 20130039178A1 · Chen et al. · 2013 [cited by applicant]
US 20140112128A1 · Kwan · 2014 [cited by examiner]
US 20190007330A1 · Browne · 2019 [cited by examiner]
US 20190199646A1 · Singh et al. · 2019 [cited by applicant]
US 20200245192A1 · Roy · 2020 [cited by examiner]
EP 1187404A2 · 2002 [cited by applicant]
EPO Extended European Search Report in EP Application Serial No. 21198577.5 mailed on Mar. 18, 2022 (9 pages). [cited by applicant]