Software distributed, hardware aggregated hierarchical traffic management
AssigneeIntel Corporation
InventorsJasvinder Singh, Thomas Long, Eoin Walsh, John J. Browne
Life of this patent
Estimating the term…
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.
Claims19
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.
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.
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.
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.
Dependencies are inferred from the claim text.