IP Library Granted Patent US 11,606,699
Granted Patent B2
US 11,606,699 · App. 17/222,365 · Granted Mar 14, 2023

Scalable evolved packet core

Inventors: Wenxing Zheng (Andover, MA); Gibson Ang (Andover, MA)
Assignee: Casa Systems, Inc.
H04W16/02G06F9/45558G06F9/5005G06F2009/4557G06F2009/45595H04W84/042
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,606,699
App. No.
17/222,365
Granted
Mar 14, 2023
Kind
B2
Abstract

The techniques described herein relate to methods, apparatus, and computer readable media configured to provide a distributed core framework for a voice and data network. A control plane comprising a set of control plane components is executed using a set of virtual machines running on a set of computing devices. The control plane comprises a first network interface to the voice and data network that is shared by the set of control plane components. A data plane comprising a set of data plane components is executed using a set of virtual machines running on a set of computing devices. The data plane comprises a second network interface to the voice and data network that is shared by the set of data plane components. Upon receipt of a session request from a remote device, a selected data plane component is selected to handle a corresponding session, such that the selected data plane component can directly communicate with the remote device using the second network interface to handle the session.

Claims (91)

1. A computerized method for providing a distributed core framework for a voice and data network, the method comprising:

executing a control plane comprising a set of control plane components associated with the control plane, comprising:

executing the set of control plane components using a set of virtual machines running on a set of computing devices; and

providing a first network interface for the control plane to the voice and data network, wherein the first network interface is shared by the set of control plane components;

executing a data plane comprising a set of data plane components associated with the data plane, comprising:

executing the set of data plane components using a set of virtual machines running on the set of computing devices; and

providing a second network interface for the data plane to the voice and data network, wherein the second network interface is shared by the set of data plane components;

executing a network function virtualization orchestration layer to coordinate execution of the set of control plane components and the set of data plane components;

receiving, via the first network interface, a session request from a remote device;

processing, using a first control plane component from the set of control plane components, the session request to configure a selected data plane component from the set of data plane components to handle a session created for the session request, such that the selected data plane component is in direct communication with the remote device using the second network interface to handle the session.

2. The method of claim 1 , wherein configuring the selected data plane component comprises:

performing policy-based routing to select the selected data plane component from the set of data plane components;

forwarding, by the first control plane component, the session request to the selected data plane component;

performing, by the selected data plane component, session management functions to create the session;

sending, by the selected data plane component, a create session response to the first control plane component to establish a data path for the session with the selected data plane component through the second network interface.

3. The method of claim 1 , further comprising:

determining a load of the set of control plane components is above a threshold; and

instantiating a new control plane component for the control plane to increase a capacity of the control plane.

4. The method of claim 1 , further comprising:

determining a load of the set of data plane components is above a threshold; and

instantiating a new data plane component for the data plane to increase a capacity of the data plane.

5. The method of claim 1 , further comprising:

determining a load of the set of control plane components is below a threshold; and

removing a control plane component from the set of control plane components to reduce a capacity of the control plane.

6. The method of claim 1 , further comprising:

determining a load of the set of data plane components is below a threshold; and

removing a data plane component from the set of data plane components to reduce a capacity of the data plane.

7. The method of claim 1 , further comprising configuring the data plane to run a high availability configuration, comprising:

executing a first set of the data plane components in an active mode, such that the first set of data plane components can be selected to process sessions; and

executing a second set of the data plane components in a standby mode, such that one or more of the second set of data plane components can be switched to the active mode in response to unavailability of one or more of the first set of data plane components, such that sessions can be maintained by the second set of data plane components.

8. The method of claim 1 , wherein processing the session request to configure the selected data plane component from the set of data plane components to handle the session created for the session request further comprises configuring the selected data plane component to bypass the network function virtualization orchestration layer.

9. The method of claim 1 , wherein executing the control plane and executing a data plane comprises:

executing the set of control plane components using a set of virtual machines running on a first set of computing devices at a network edge; and

executing the set of data plane components using a set of virtual machines running on a second set of computing devices at the network edge.

10. The method of claim 1 , wherein executing a network function virtualization orchestration layer to coordinate execution of the set of control plane components and the set of data plane components comprises:

instantiating the set of virtual machines running on a first set of computing devices, comprising instantiating a first set of active virtual machines and a first set of standby virtual machines;

instantiating the set of virtual machines running on a second set of computing devices, comprising instantiating a second set of active virtual machines and a second set of standby virtual machines;

monitoring reported application statistics from the first and second sets of active virtual machines, wherein the application statistics comprise a measure of utilization of the first and second sets of active virtual machines to execute the set of control plane components and the set of data plane components;

determining, based on the reported application statistics, the first set of active virtual machines, the second set of active virtual machines, or both, are above a threshold; and

activating a standby virtual machine from the first set of standby virtual machines, the second set of standby virtual machines, or both, to decrease utilization of active virtual machines.

11. An apparatus configured to provide a distributed core framework for a voice and data network, the apparatus comprising a processor in communication with memory and a set of additional processing resources, the processor being configured to execute instructions stored in the memory that cause the processor to:

execute a control plane comprising a set of control plane components associated with the control plane, comprising:

executing the set of control plane components using a set of virtual machines running on a first portion of the set of processing resources; and

providing a first network interface for the control plane to the voice and data network, wherein the first network interface is shared by the set of control plane components;

execute a data plane comprising a set of data plane components associated with the data plane, comprising:

executing the set of data plane components using a set of virtual machines running on a second portion of the set of processing resources; and

providing a second network interface for the data plane to the voice and data network, wherein the second network interface is shared by the set of data plane components;

executing a network function virtualization orchestration layer to coordinate execution of the set of control plane components and the set of data plane components;

receive, via the first network interface, a session request from a remote device;

process, using a first control plane component from the set of control plane components, the session request to configure a selected data plane component from the set of data plane components to handle a session created for the session request, such that the selected data plane component is in direct communication with the remote device using the second network interface to handle the session.

12. The apparatus of claim 11 , wherein the instructions are further configured to cause the apparatus to:

perform policy-based routing to select the selected data plane component from the set of data plane components;

forward, by the first control plane component, the session request to the selected data plane component;

perform, by the selected data plane component, session management functions to create the session;

send, by the selected data plane component, a create session response to the first control plane component to establish a data path for the session with the selected data plane component through the second network interface.

13. The apparatus of claim 11 , wherein the instructions are further configured to cause the apparatus to:

determine a load of the set of data plane components is above a threshold; and

instantiate a new data plane component for the data plane to increase a capacity of the data plane.

14. The apparatus of claim 11 , wherein the instructions are further configured to cause the apparatus to:

determine a load of the set of data plane components is below a threshold; and

remove a data plane component from the set of data plane components to reduce a capacity of the data plane.

15. The apparatus of claim 11 , wherein the instructions are further configured to cause the apparatus to configure the data plane to run a high availability configuration, comprising:

executing a first set of the data plane components in an active mode, such that the first set of data plane components can be selected to process sessions; and

executing a second set of the data plane components in a standby mode, such that one or more of the second set of data plane components can be switched to the active mode in response to unavailability of one or more of the first set of data plane components, such that sessions can be maintained by the second set of data plane components in the event of unavailability of one or more of the first set of data plane components.

16. At least one non-transitory computer-readable storage medium encoded with a plurality of computer-executable instructions that, when executed, perform a method comprising:

executing a control plane comprising a set of control plane components associated with the control plane, comprising:

executing the control plane components using a set of virtual machines running on a first set of computing devices; and

providing a first network interface for the control plane to a voice and data network, wherein the first network interface is shared by the set of control plane components;

executing a data plane comprising a set of data plane components associated with the data plane, comprising:

executing the data plane components using a set of virtual machines running on a second set of computing devices; and

providing a second network interface for the data plane to the voice and data network, wherein the second network interface is shared by the set of data plane components;

executing a network function virtualization orchestration layer to coordinate execution of the set of control plane components and the set of data plane components;

receiving, via the first network interface, a session request from a remote device;

processing, using a first control plane component from the set of control plane components, the session request to configure a selected data plane component from the set of data plane components to handle a session created for the session request, such that the selected data plane component is in direct communication with the remote device using the second network interface to handle the session.

17. The non-transitory computer-readable storage medium of claim 16 , wherein configuring the selected data plane component comprises:

performing policy-based routing to select the selected data plane component from the set of data plane components;

forwarding, by the first control plane component, the session request to the selected data plane component;

performing, by the selected data plane component, session management functions to create the session;

sending, by the selected data plane component, a create session response to the first control plane component to establish a data path for the session with the selected data plane component through the second network interface.

18. The non-transitory computer-readable storage medium of claim 16 , the method further comprising:

determining a load of the set of data plane components is above a threshold; and

instantiating a new data plane component for the data plane to increase a capacity of the data plane.

19. The non-transitory computer-readable storage medium of claim 16 , the method further comprising:

determining a load of the set of control plane components is below a threshold; and

removing a control plane component from the set of control plane components to reduce a capacity of the control plane.

20. The non-transitory computer-readable storage medium of claim 16 , the method further comprising:

determining a load of the set of data plane components is below a threshold; and

removing a data plane component from the set of data plane components to reduce a capacity of the data plane.

21. The non-transitory computer-readable storage medium of claim 16 , the method further comprising configuring the data plane to run a high availability configuration, comprising:

executing a first set of the data plane components in an active mode, such that the first set of data plane components can be selected to process sessions; and

executing a second set of the data plane components in a standby mode, such that one or more of the second set of data plane components can be switched to the active mode in response to unavailability of one or more of the first set of data plane components, such that sessions can be maintained by the second set of data plane components.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2025
From: CASA SYSTEMS, INC.
To: LUMINE GROUP US HOLDCO INC.
Reel/Frame 070046/0945 →
PATENT SECURITY AGREEMENT Recorded Jun 15, 2023
From: CASA SYSTEMS, INC
To: DELAWARE TRUST COMPANY
Reel/Frame 064122/0193 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2021
From: ZHENG, WENXING; ANG, GIBSON
To: CASA SYSTEMS, INC.
Reel/Frame 057087/0556 →
Continuity (3)
Continuation 15932354 · Feb 16, 2018
Provisional Application 62459750 · Feb 16, 2017
Related Publication 20210329465A1 · Oct 21, 2021