DATA IO AND SERVICE ON DIFFERENT PODS OF A RIC
To provide a low latency near RT RIC, some embodiments separate the RIC's functions into several different components that operate on different machines (e.g., execute on VMs or Pods) operating on the same host computer or different host computers. Some embodiments also provide high speed interfaces between these machines. Some or all of these interfaces operate in non-blocking, lockless manner in order to ensure that critical near RT RIC operations (e.g., datapath processes) are not delayed due to multiple requests causing one or more components to stall. In addition, each of these RIC components also has an internal architecture that is designed to operate in a non-blocking manner so that no one process of a component can block the operation of another process of the component. All of these low latency features allow the near RT RIC to serve as a high speed IO between the E2 nodes and the xApps.
1 . A method of implementing a RAN (Radio Access Network) Intelligent Controller (RIC), the method comprising
in a cloud datacenter:
deploying a first set of one or more machines to forward data messages between a set of base station components and a set of applications that interact with the RIC;
deploying a second set of one or more machines to provide a set of storage services to the set of applications.
2 . The method of claim 1 , wherein
deploying the first set of machines comprises deploying the first set of machines to execute a set of datapath processing nodes that allow data messages to be exchanged between the set of base station components and the set of applications;
deploying the second set of machines comprises deploying the second set of machines to execute a set of storage nodes that provide the set of storage services to the applications.
3 . The method of claim 1 , wherein the first set machines have different compute and memory allocations than the second set machines due to the different nature of operations that each set of machines performs for the applications.
4 . The method of claim 3 , wherein the compute allocation for the first set of machines includes processor pinning to improve compute performance.
5 . The method of claim 4 further comprising configuring a set of one or more network acceleration features for the first set of machines but not the second set of machines.
4 . The method of claim 1 , wherein the second set of machines provides a shared data layer (SDL) that is used by the set of applications.
5 . The method of claim 1 , wherein separating the first and second sets of machines allows for separate lifecycle management of each set of machines, which allows each set of machines to be updated and scaled differently.
6 . The method of claim 1 , wherein separating the first and second sets of machines allows for separate HA (high availability) management of each set of machines.
7 . The method of claim 6 , wherein
the HA management of the second set of machines comprises specifying active and standby shared data layer (SDL) storages, reading and writing data to the active SDL storage, and synchronizing the written data with the standby SDL storage, and
the HA management of the first set of machines comprises specifying active and standby datapaths for forwarding data messages, and establishing first and second connection sessions between each application and the active and standby datapaths respectively.
8 . The method of claim 7 , wherein the HA management of the first set of machines further comprises establishing first and second connection sessions between at least one base station component and the active and standby datapaths respectively.
9 . The method of claim 1 , wherein separating the first and second sets of machines allows for separate auto-scaling of each set of machines.
9 . The method of claim 1 , wherein a second-set machine communicates with a first-set machine through non-blocking data interface.
11 . The method of claim 1 , wherein a first-set machine communicates with a second-set machine through a shared memory when the two machines execute on the same host computer.
12 . The method of claim 1 , wherein a first-set machine communicates with a second-set machine through Streaming Control Transport Protocol (SCTP) when the two machines execute on two different host computers.
13 . The method of claim 1 , wherein the data messages comprise subscription requests from the set of applications to the set of base station components, and data reports responsive to the subscription requests.
14 . The method of claim 1 , wherein the first set of machines performs datapath services including conflict management, statistics generation, and log generation.
15 . The method of claim 1 , wherein at least one machine in the first set and one machine in the second set execute on the same host computer.
16 . The method of claim 1 , wherein the first and second sets of machines execute on a plurality of host computers, with at least one first-set machine and at least one second-set machine executing on each of at least two host computers.
17 . The method of claim 1 , wherein the second set machines execute on different set of host computers than the first set machines.
18 . The method of claim 1 , wherein the first and second set of machines comprise first and second sets of Pods with no first-set machine executing on a host computer with a second-set machine.
19 . The method of claim 1 , wherein the first and second set of machines comprise first and second sets of VMs.