IP Library Granted Patent US 12,293,231
Granted Patent B2
US 12,293,231 · App. 17/471,889 · Granted May 6, 2025

Packet processing load balancer

Inventors: Chenmin Sun (Shanghai, CN); Yipeng Wang (Portland, OR); Rahul R. Shah (Chandler, AZ); Ren Wang (Portland, OR); Sameh Gobriel (Dublin, CA); Hongjun Ni (Shanghai, CN); Mrittika Ganguli (Chandler, AZ); Edwin Verplanke (Chandler, AZ)
Assignee: Intel Corporation
G06F9/505G06F9/5083H04L2012/5678H04L47/11H04L47/12H04L47/125
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,293,231
App. No.
17/471,889
Granted
May 6, 2025
Kind
B2
Abstract

Examples described herein include a device interface; a first set of one or more processing units; and a second set of one or more processing units. In some examples, the first set of one or more processing units are to perform heavy flow detection for packets of a flow and the second set of one or more processing units are to perform processing of packets of a heavy flow. In some examples, the first set of one or more processing units and second set of one or more processing units are different. In some examples, the first set of one or more processing units is to allocate pointers to packets associated with the heavy flow to a first set of one or more queues of a load balancer and the load balancer is to allocate the packets associated with the heavy flow to one or more processing units of the second set of one or more processing units based, at least in part on a packet receive rate of the packets associated with the heavy flow.

Claims (59)

1. A method comprising:

processing packets of a heavy flow by:

performing heavy flow detection in a network interface device and a first set of one or more processing units, wherein a flow comprises a heavy flow based on a receive rate of packets of the flow over a period of time at the network interface device and a first level, wherein the performing heavy flow detection comprises determining a byte count of the packets of the flow at the network interface device and performing binary tree traversal using the first set of one or more processing units and wherein at least one processing unit of the first set of one or more processing units manages a hash-table backed binary tree for the flow and

performing the processing of the packets of the heavy flow by a second set of one or more processing units, wherein the first set of one or more processing units and the second set of one or more processing units are different.

2. The method of claim 1 , comprising:

allocating pointers to packets associated with the heavy flow to a first set of one or more queues of a load balancer and

the load balancer allocating the packets associated with the heavy flow to one or more processing units of the second set of one or more processing units based, at least in part on a packet receive rate of the packets associated with the heavy flow.

3. The method of claim 2 , comprising

at least one processing unit of the first set of one or more processing units: providing pointers to packets of a non-heavy flow to a second set of one or more queues of the load balancer, wherein a second flow comprises a non-heavy flow based on a receive rate of packets of the second flow over a period of time and a second level and

the load balancer allocating pointers to packets of the non-heavy flow to a third set of one or more processing units, wherein the third set of one or more processing units is different than the second set of one or more processing units.

4. The method of claim 2 , wherein the load balancer comprises a dynamic load balancer.

5. The method of claim 1 , wherein the performing heavy flow detection comprises performing a Nitrosketch scheme using the network interface device and the first set of one or more processing units.

6. The method of claim 1 , wherein the packets are distributed among the first set of one or more processing units using receive side scaling (RSS).

7. The method of claim 1 , comprising:

the second set of one or more processing units providing pointers to processed packets to a load balancer and

the load balancer performing re-ordering the processed packets and making the processed packets available for access by a third set of one or more processing units.

8. An apparatus comprising:

a device interface;

a first set of one or more processing units; and

a second set of one or more processing units, wherein:

the first set of one or more processing units are to perform heavy flow detection for packets of a flow and

the second set of one or more processing units are to perform processing of packets of a heavy flow, wherein:

the first set of one or more processing units and the second set of one or more processing units are different,

the flow comprises the heavy flow based on a receive rate of the packets of the flow over a period of time and a first level,

the perform heavy flow detection comprises determine a byte count of the packets of the flow at a network interface device and perform binary tree traversal using the first set of one or more processing units, and

at least one processing unit of the first set of one or more processing units is to manage a hash-table backed binary tree for the flow to perform the heavy flow detection.

9. The apparatus of claim 8 , wherein:

the first set of one or more processing units is to allocate pointers to packets associated with the heavy flow to a first set of one or more queues of a load balancer and

the load balancer is to allocate the packets associated with the heavy flow to one or more processing units of the second set of one or more processing units based, at least in part on a packet receive rate of the packets associated with the heavy flow.

10. The apparatus of claim 9 , wherein:

at least one processing unit of the first set of one or more processing units is to provide pointers to packets of a non-heavy flow to a second set of one or more queues of the load balancer, wherein:

a second flow comprises a non-heavy flow based on a receive rate of packets of the second flow over a period of time and a second level,

the load balancer is to allocate pointers to packets of the non-heavy flow to a third set of one or more processing units, and

the third set of one or more processing units is different than the second set of one or more processing units.

11. The apparatus of claim 8 , wherein perform heavy flow detection comprises perform a Nitrosketch scheme using a network interface device and the first set of one or more processing units.

12. The apparatus of claim 8 , wherein the packets are distributed among the first set of one or more processing units using receive side scaling (RSS).

13. The apparatus of claim 8 , wherein

the second set of one or more processing units provide pointers to processed packets to a load balancer and

the load balancer is to perform re-ordering the processed packets and make the processed packets available for access by a third set of one or more processing units.

14. At least one non-transitory computer-readable medium comprising instructions stored thereon, that if executed by a computing system, cause the computing system to:

use a first set of one or more processing units to perform heavy flow detection for packets of a flow and

use a second set of one or more processing units to perform processing of packets of a heavy flow, wherein:

the first set of one or more processing units and second set of one or more processing units are different,

the flow comprises the heavy flow based on a receive rate of the packets of the flow over a period of time and a first level,

the perform heavy flow detection comprises determine a byte count of the packets of the flow at a network interface device and perform binary tree traversal using the first set of one or more processing units, and

at least one processing unit of the first set of one or more processing units is to manage a hash-table backed binary tree for the flow to perform the heavy flow detection.

15. The computer-readable medium of claim 14 , wherein

the first set of one or more processing units is to allocate pointers to packets associated with the heavy flow to a first set of one or more queues of a load balancer and

the load balancer is to allocate the packets associated with the heavy flow to one or more processing units of the second set of one or more processing units based, at least in part on a packet receive rate of the packets associated with the heavy flow.

16. The computer-readable medium of claim 14 , wherein

at least one processing unit of the first set of one or more processing units is to provide pointers to packets of a non-heavy flow to a second set of one or more queues of a load balancer

wherein:

a second flow comprises a non-heavy flow based on a receive rate of packets of the second flow over a period of time and a second level,

the load balancer is to allocate pointers to packets of the non-heavy flow to a third set of one or more processing units, and

the third set of one or more processing units is different than the second set of one or more processing units.

17. The computer-readable medium of claim 14 , wherein perform heavy flow detection comprises perform a Nitrosketch scheme using the network interface device and the first set of one or more processing units.

18. The computer-readable medium of claim 14 , wherein:

the second set of one or more processing units provide pointers to processed packets to a load balancer and

the load balancer is to perform re-ordering the processed packets and make the processed packets available for access by a third set of one or more processing units.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2021
From: SUN, CHENMIN; WANG, YIPENG; SHAH, RAHUL R.; WANG, REN; GOBRIEL, SAMEH; NI, HONGJUN; GANGULI, MRITTIKA; VERPLANKE, EDWIN
To: INTEL CORPORATION
Reel/Frame 058003/0490 →
Continuity (1)
Related Publication 20230082780A1 · Mar 16, 2023
References Cited (11)
US 10686763B2 · Kantecki et al. · 2020 [cited by applicant]
US 20190260686A1 · Bowers · 2019 [cited by examiner]
US 20190294570A1 · Singh · 2019 [cited by examiner]
US 20200004584A1 · Burroughs et al. · 2020 [cited by applicant]
US 20210377188A1 · Ghag · 2021 [cited by examiner]
US 20230052712A1 · Newell · 2023 [cited by examiner]
Vakili et al., “Hierarchical Heavy Hitter Detection Under Unknown Models”, Apr. 2018, IEEE, pp. 6917-6921. (Year: 2018). [cited by examiner]
Huang, Muhuan, et al., “A Scalable, High-Performance Customized Priority Queue”, Hewlett Packard Labs, Sep. 3, 2014, 4 pages. [cited by applicant]
Liu, Zaoxing, et al., “NitroSketch: Robust and General Sketch-based Monitoring in Software Switches”, In SIGCOMM 19: 2019 Conference of the ACM Special Interest Group on Data Communication, Aug. 19-23, 2019, Beijing, Ch… [cited by applicant]
Wang, Yipeng, et al., “Dynamic Sketch: Efficient and Adjustable Heavy Hitter Detection for Software Packet Processing”, Authorized licensed use limited to: Peking University. Downloaded on Aug. 26, 2022 at 01:25:59 UTC … [cited by applicant]
Yang, Tong, et al., “Elastic Sketch: Adaptive and Fast Network-wide Measurements”, SIGCOMM '18, Aug. 20-25, 2018, Budapest, Hungary, 15 pages. [cited by applicant]