The FlexRAN platform is made up of two main components: the FlexRAN Service and Control Plane and FlexRAN Application plane. The FlexRAN service and control plane follows a hierarchical design and is composed of a Real-time Controller (RTC) that is connected to a number of underlying RAN runtime, one for each RAN module (e.g. one for monolithic 4G eNB, or multiple for a disaggregated 4G and 5G). The control and data plane separation is provided by RAN runtime environment which acts as an abstraction layer with RAN module on one side and RTC and control apps on the other side. The FlexRAN protocol facilitates the communication between the real-time controller and the RAN agent embedded in runtime environment. RAN control applications can be developed both on the top of the RAN runtime and RTC SDK allowing to monitor, control and coordinate the state of RAN infrastructure. Such applications could vary from soft real-time application including monitoring that obtain statistics reporting to more sophisticated distributed applications that modify the state of the RAN in real-time (e.g. MAC scheduler). All the produced RAN data and APIs are open to be consumed by 3rd parties.
FlexRAN decouples the RAN control and data plane with several benefits, including: reducing the complexity of developing new control solutions; promoting openness and innovation by allowing operators to open their RAN service environment to authorized third-parties to rapidly deploy innovative applications and services for mobile subscribers, enterprises and vertical segments.
FlexRAN consolidates the control plane into a single logically centralized controller, enabling easier coordination among base stations, effectively simplifying the development of more sophisticated control applications. Moreover, FlexRAN has been designed in a way that enables support for the deployment of real-time control applications, like MAC schedulers, with very stringent time constraints.
FlexRAN allows the flexible and programmable control of the underlying RAN infrastructure through the introduction of RAN API and virtualized control functions that have a modular structure and well-defined interfaces and are responsible for performing the various control operations of the base station. This allows part of the system’s logic, like the mobility manager or the MAC scheduler, to be easily upgraded by replacing or extending the corresponding function without affecting the rest of the system.
The virtualized control functions of FlexRAN are exploited through a set of mechanisms designed to allow the delegation of control functions, like schedulers and mobility managers, from the master controller to the base stations at runtime and the reconfiguration of their behavior and parameters on-the-fly in a simple and seamless manner. This feature makes the system very flexible and adaptable to the underlying networking conditions and to the specific requirements of the network operator.
RAN Data Mining and Analytics
Data-driven RAN Control
QoS-aware RAN Sharing and Slicing
Block Chained resource counting
Spectrum Sharing and management
Coordinated Scheduling and RRM
Dynamic function split
RAN-aware video optimization
Content-aware UP programmability
Traffic and Service Profiling
Spectrum Management and Sharing
Managed Services and SLA
Slice/Service Access Control
Dynamic Slice Pricing
The FlexRAN real-time (aka Master) controller was built from scratch using C++ and currently supports x64 Linux systems. The implementation supports both hard real-time and soft real-time mode of operation to cater for different time criticalness of the deployed applications and the requirements of the network operators and service providers. The software is released under MIT License.
A prototype of the FlexRAN Runtime (aka Agent) was developed in C on top of the open source LTE/LTE-A software platform of OpenAirInterface (OAI) and has already been integrated to the project's current development version. It was extended to support execution environment for local RAN control apps. The software is released under OAI Public License V1.0
|Get config||eNB, UE, logical channel||Controller->RAN||
|Get Stats||eNB, UE, logical channel||Controller->RAN||
|Commands||eNB, UE, logical channel||Controller->RAN||
|Event Trigger||eNB, UE, logical channel||RAN->Controller||
|Control Delegation||eNB and Slice||Controller->RAN||