IP Library Granted Patent US 11,432,194
Granted Patent B2
US 11,432,194 · App. 16/544,194 · Granted Aug 30, 2022

Load measurement and load balancing for packet processing in a long term evolution evolved node B

Inventors: Vagish Srinivasamurthy (Bangalore, IN); Veeresh Salankimatt (Bengaluru, IN)
Assignee: CommScope Technologies LLC
H04W28/08H04L43/0882H04L43/16H04L47/125H04L67/1008H04W28/0215H04W36/0016H04W36/00835H04W36/22
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 11,432,194
App. No.
16/544,194
Granted
Aug 30, 2022
Kind
B2
Abstract

A controller that processes signals in a baseband frequency band is described. The controller includes a plurality of processing engines (PEs). The controller also includes a distributor/load balancer that includes at least one processor or processing core. The at least one processor or processing core is configured to (1) enter a first mode in which each new UE session is assigned to a PE that is currently processing a fewest number of UE sessions; (2) determine whether a processing load differential between a least loaded PE and a highest loaded PE exceed a first threshold for at least a time threshold; and (3) in response to the processing load differential between the least loaded PE and the highest loaded PE exceeding the first threshold for at least the time threshold, enter a second mode in which each new UE session is assigned to the least loaded PE.

Claims (92)

1. A controller that processes signals in a baseband frequency band, the controller comprising:

a plurality of processing engines (PEs), each PE implemented in a respective processing core or processing thread; and

a distributor/load balancer that comprises at least one processor or processing core, wherein the at least one processor or processing core is configured to:

enter a first mode in which each new UE session is assigned to a PE that is currently processing a fewest number of UE sessions;

determine whether a processing load differential between a least loaded PE and a highest loaded PE has exceeded a first threshold for at least a predetermined amount of time; and

in response to determining that the processing load differential between the least loaded PE and the highest loaded PE has exceeded the first threshold for at least the predetermined amount of time, enter a second mode in which each new UE session is assigned to the least loaded PE.

2. The controller of claim 1 , wherein the at least one processor or processing core is further configured to:

determine whether the processing load differential between the least loaded PE and the highest loaded PE falls below the first threshold;

when the processing load differential between the least loaded PE and the highest loaded PE falls below the first threshold, re-enter the first mode; and

when the processing load differential between the least loaded PE and the highest loaded PE remains above the first threshold, remain in the second mode.

3. The controller of claim 1 , wherein the at least one processor or processing core is further configured to determine the least loaded PE and the highest loaded PE.

4. The controller of claim 3 , wherein, in order to determine the least loaded PE and the highest loaded PE, the at least one processor or processing core is further configured to:

for each PE in the controller,

measure a packet rate for each of at least a first type of packets, a second type of packets, and a third type of packets that are processed by a processing engine;

determine an equivalent packet rate of the second and third types of packets, in terms of the first type of packets;

sum the measured packet rate of the first type of packets, a weighted equivalent packet rate of the second type of packets, and a weighted equivalent packet rate of the third type of packets to determine an equivalent aggregate packet rate; and

determine an aggregate load percentage for the processing engine based on the equivalent aggregate packet rate.

5. The controller of claim 4 , wherein the at least one processor or processing core is further configured to:

determine that the PE with a lowest aggregate load percentage is the least loaded PE; and

determine that the PE with a highest aggregate load percentage is the highest loaded PE.

6. The controller of claim 3 , wherein the at least one processor or processing core is further configured to trigger redirection of a UE session from a source PE to a destination PE in response to determining that the processing load differential between the least loaded PE and the highest loaded PE has exceeded the first threshold for at least the predetermined amount of time.

7. The controller of claim 6 , wherein, in response to redirection being triggered, the at least one processor or processing core is further configured to redirect the UE session from the source PE to the destination PE.

8. The controller of claim 7 , wherein, in order to redirect the UE session from the source PE to the destination PE, the at least one processor or processing core is further configured to:

update a lookup table entry for a UE being redirected to point to a queue ID of a UE redirection queue for the destination PE;

insert a UE movement ready message into a primary queue of the source PE; and

place all packets pertaining to the UE session in the UE redirection queue of the destination PE.

9. The controller of claim 8 , wherein, in order to redirect the UE session from the source PE to the destination PE:

in response to processing the UE movement ready message, the source PE sets a status flag of the UE redirection queue for the destination PE to true;

in response to detecting that the status flag of the UE redirection queue for the destination PE is true, the destination PE updates a lookup table entry for the UE being redirected to point to the queue ID of the primary queue for the destination PE; and

the destination PE processes all remaining packets in the UE redirection queue for the destination PE before processing packets in the primary queue for the destination PE.

10. The controller of claim 3 , wherein, in order to determine a suitable set of UEs to redirect from a source PE to a destination PE in response to determining that the processing load differential between the least loaded PE and the highest loaded PE has exceeded the first threshold for at least the predetermined amount of time, the at least one processor or processing core is further configured to:

for each UE in the controller,

measuring a packet rate for each of at least a first type of packets, a second type of packets, and a third type of packets that are processed by a serving PE;

determining an equivalent packet rate of the second and third types of packets, in terms of the first type of packets;

summing the measured packet rate of the first type of packets, a weighted equivalent packet rate of the second type of packets, and a weighted equivalent packet rate of the third type of packets to determine an equivalent aggregate packet rate; and

determining an aggregate load percentage for the serving PE based on the equivalent aggregate packet rate contributed by the respective UE; and

based on the determined aggregate load percentage of each UE, placing the respective UE in a lookup table with a suitable number of bins where each bin represents a particular range or interval.

11. The controller of claim 3 , wherein the at least one processor or processing core is further configured to determine a set of UEs with UE sessions to be redirected by:

determining a processing load differential between the least loaded PE and the highest loaded PE;

determining an amount of load to be transferred by dividing the processing load differential by two and rounding to a nearest integer;

determining an index for a lookup table based on the processing load differential and a number of bins in the lookup table, wherein the lookup table groups each UE served by the controller according to a processing load range of the respective UE on a respective PE;

when the lookup table includes at least one UE at the index, selecting a number of the at least one UE for redirection; and

when the lookup table does not include at least one UE at the index, search for other UEs for redirection at a next lowest index of the lookup table.

12. The controller of claim 1 , wherein each PE in the controller is one of multiple cores in a processor.

13. The controller of claim 1 , wherein the controller is in a centralized radio access network (C-RAN) implementing a Long Term Evolution (LTE) Evolved Node B (eNB) that also comprises a plurality of radio points configured to exchange radio frequency (RF) signals with a plurality of user equipment (UEs), wherein the controller is located in a location that is physically remote from the plurality of radio points.

14. The method of claim 1 , wherein the at least one processor or processing core is further configured to determine the least loaded PE and the highest loaded PE by, for each PE in the controller:

measuring a packet rate for each of at least a first type of packets, a second type of packets, and a third type of packets that are processed by a processing engine;

determining an aggregate load percentage for the processing engine based on the measured packet rate of the first type of packets, the second type of packets, and the third type of packets.

15. The method of claim 1 , wherein each PE implemented in a respective processing core or processing thread in the controller, which is implemented as a single physical device.

16. A method performed by a controller that includes a plurality of processing engines (PEs), each PE implemented in a respective processing core or processing thread, and a distributor/load balancer, the method comprising:

entering a first mode in which each new UE session is assigned to a PE that is currently processing a fewest number of UE sessions;

determining whether a processing load differential between a least loaded PE and a highest loaded PE has exceeded a first threshold for at least a predetermined amount of time; and

in response to determining that the processing load differential between the least loaded PE and the highest loaded PE has exceeded the first threshold for at least the predetermined amount of time, entering a second mode in which each new UE session is assigned to the least loaded PE.

17. The method of claim 16 , further comprising:

determining whether the processing load differential between the least loaded PE and the highest loaded PE falls below the first threshold;

when the processing load differential between the least loaded PE and the highest loaded PE falls below the first threshold, re-entering the first mode; and

when the processing load differential between the least loaded PE and the highest loaded PE remains above the first threshold, remaining in the second mode.

18. The method of claim 16 , wherein further comprising determining the least loaded PE and the highest loaded PE.

19. The method of claim 18 , further comprising:

for each PE in the controller,

measuring a packet rate for each of at least a first type of packets, a second type of packets, and a third type of packets that are processed by a processing engine;

determining an equivalent packet rate of the second and third types of packets, in terms of the first type of packets;

summing the measured packet rate of the first type of packets, a weighted equivalent packet rate of the second type of packets, and a weighted equivalent packet rate of the third type of packets to determine an equivalent aggregate packet rate; and

determining an aggregate load percentage for the processing engine based on the equivalent aggregate packet rate.

20. The method of claim 19 , further comprising:

determining that the PE with a lowest aggregate load percentage is the least loaded PE; and

determining that the PE with a highest aggregate load percentage is the highest loaded PE.

21. The method of claim 18 , further comprising triggering redirection of a UE session from a source PE to a destination PE in response to determining that the processing load differential between the least loaded PE and the highest loaded PE has exceeded the first threshold for at least the predetermined amount of time.

22. The method of claim 21 , further comprising, in response to redirection being triggered, redirecting the UE session from the source PE to the destination PE.

23. The method of claim 22 , further comprising:

updating a lookup table entry for a UE being redirected to point to a queue ID of a UE redirection queue for the destination PE;

inserting a UE movement ready message into a primary queue of the source PE; and

placing all packets pertaining to the UE session in the UE redirection queue of the destination PE.

24. The method of claim 23 , further comprising:

in response to processing the UE movement ready message, the source PE sets a status flag of the UE redirection queue for the destination PE to true;

in response to detecting that the status flag of the UE redirection queue for the destination PE is true, the destination PE updates a lookup table entry for the UE being redirected to point to the queue ID of the primary queue for the destination PE; and

the destination PE processes all remaining packets in the UE redirection queue for the destination PE before processing packets in the primary queue for the destination PE.

25. The method of claim 18 , wherein, in order to determine a suitable set of UEs to redirect from a source PE to a destination PE in response to determining that the processing load differential between the least loaded PE and the highest loaded PE has exceeded the first threshold for at least the predetermined amount of time, the method further comprises:

for each UE in the controller,

measuring a packet rate for each of at least a first type of packets, a second type of packets, and a third type of packets that are processed by a serving PE;

determining an equivalent packet rate of the second and third types of packets, in terms of the first type of packets;

summing the measured packet rate of the first type of packets, a weighted equivalent packet rate of the second type of packets, and a weighted equivalent packet rate of the third type of packets to determine an equivalent aggregate packet rate; and

determining an aggregate load percentage for the serving PE based on the equivalent aggregate packet rate contributed by the respective UE; and

based on the determined aggregate load percentage of each UE, placing the respective UE in a lookup table with a suitable number of bins where each bin represents a particular range or interval.

26. The method of claim 18 , further comprising determining a set of UE sessions for redirection by:

determining a processing load differential between the least loaded PE and the highest loaded PE;

determining an amount of load to be transferred by dividing the processing load differential by two and rounding to a nearest integer;

determining an index for a lookup table based on the processing load differential and a number of bins in the lookup table, wherein the lookup table groups each UE served by the controller according to a processing load range of the respective UE on a respective PE;

when the lookup table includes at least one UE at the index, selecting a number of the at least one UE for redirection; and

when the lookup table does not include at least one UE at the index, search for other UEs for redirection at a next lowest index of the lookup table.

27. The method of claim 16 , wherein each PE in the controller is one of multiple cores in a processor.

28. The method of claim 16 , wherein the controller is in a centralized radio access network (C-RAN) implementing a Long Term Evolution (LTE) Evolved Node B (eNB) that also comprises a plurality of radio points configured to exchange radio frequency (RF) signals with a plurality of user equipment (UEs), wherein the controller is located in a location that is physically remote from the plurality of radio points.

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2025
From: COMMSCOPE TECHNOLOGIES LLC
To: OUTDOOR WIRELESS NETWORKS LLC
Reel/Frame 071712/0070 →
PARTIAL TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded May 8, 2025
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
To: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC
Reel/Frame 071226/0923 →
PARTIAL TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT REEL 069889/FRAME 0114 Recorded May 8, 2025
From: APOLLO ADMINISTRATIVE AGENCY LLC
To: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC
Reel/Frame 071234/0055 →
PARTIAL TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 60752/0001 Recorded May 6, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC
Reel/Frame 071189/0001 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 058843/0712 Recorded May 2, 2025
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ARRIS ENTERPRISES LLC; COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC
Reel/Frame 071156/0801 →
RELEASE OF SECURITY INTEREST AT REEL/FRAME 058875/0449 Recorded Dec 19, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ARRIS ENTERPRISES LLC (F/K/A ARRIS ENTERPRISES, INC.); COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC
Reel/Frame 069743/0057 →
SECURITY INTEREST Recorded Dec 17, 2024
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE INC., OF NORTH CAROLINA; OUTDOOR WIRELESS NETWORKS LLC; RUCKUS IP HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC
Reel/Frame 069889/0114 →
SECURITY INTEREST Recorded Nov 19, 2021
From: ARRIS SOLUTIONS, INC.; ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA; RUCKUS WIRELESS, INC.
To: WILMINGTON TRUST
Reel/Frame 060752/0001 →
ABL SECURITY AGREEMENT Recorded Nov 15, 2021
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 058843/0712 →
TERM LOAN SECURITY AGREEMENT Recorded Nov 15, 2021
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 058875/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2019
From: SRINIVASAMURTHY, VAGISH; SALANKIMATT, VEERESH
To: COMMSCOPE TECHNOLOGIES LLC
Reel/Frame 050090/0733 →
Continuity (2)
Provisional Application 62748662 · Oct 22, 2018
Related Publication 20200128440A1 · Apr 23, 2020