The O-RAN Software Community (SC) Documentation.
Welcome to O-RAN SC Cherry Documentation Home¶
O-RAN Alliance (https://www.o-ran.org/) members and contributors have committed to evolving Radio Access Networks (RAN) around the world. Future RANs will be built on a foundation of virtualized network elements, white-box hardware and standardized interfaces that fully embrace O-RAN’s core principles of intelligence and openness. An ecosystem of innovative new products is already emerging that will form the underpinnings of the multi-vendor, interoperable, autonomous RAN, envisioned by many in the past, but only now enabled by the global industry-wide vision, commitment and leadership of O-RAN Alliance members and contributors.
O-RAN SC is partnering with the O-RAN Alliance and Linux Foundation to support the software development for an open RAN solution that is available to everyone. The community will align with the architecture and specifications that are created in the O-RAN Alliance working groups to create a working software solution to enable an open and intelligent 5G RAN.
Cheery release introduction:
Near-Real-time RIC X-APPs (RICAPP)¶
Traffic steering use case: Integrate KPIMON (by Samsung) in the use case. KPIMON uses E2 (KPM SM) to collect data about cells and UEs - the E2SM will be initially implemented by the E2 SIM using data generated by Viavi RAN simulator. Enhance QP xApp with a real ML model trained with Viavi data (AT&T, HCL). Enhance TS xApp to send E2 Control message to trigger handover - E2 message will be handled by the E2 SIM.
New xApps: Anomaly Detection (AD by HCL) uses ML model to detect anomalies in data collected by KPIMON. Load Predictor (LD by China Mobile) uses ML model to predict the load of a cell (using data collected by KPIMON) Signal Storm Protection (SSP by Samsung) implements the initial steps towards a realization of the Signal Storm Protection use case (WG-1). Code coverage and updates to use xApp SDK for existing xApps.
Near-Real-time RAN Intelligent Controller Platform (E2 Interface) (RICPLT)¶
More manageability of the RIC platform, including platform alarms, platform stats from E2 and A1 and support for direct RMR-to-VES event conversion for VES stats, Support operator-initiated health-check via E2 and E2 connection state, E2 can reject new connection setup requests. REST interface for E2 subscriptions, further xApp framework APIs.
Non-Real-time RIC (A1 Interface) (NONRTRIC)¶
A1 Policies: A1 Policy Management Service (hosted in ONAP CCSDK) A1 Policy Controller Adapter (hosted in ONAP CCSDK) A1 Simulator / test stub (SIM project) A1 Policy Control-Panel (PORTAL project) Support A1-AP v2.0.
A1 Enrichment Information: Initial version of A1 EI Job coordination function/service Deployment/Integration Docker-based & OSC Kubernetes deployment & ONAP OOM Kubernetes deployment (Overlaps with SMO project)
rApps: Very simple hello-world rApp TrafficSteering usecase Healthcheck usecase
rApp support: Initial rApp catalogue/inventory Initial approach with rApp packaging (overlaps with “common App” usecase, & SMO project) Requirement gathering & initial test/integration with ML supporting functions in NONRTRIC/SMO Requirement gathering & initial test/integration with data collection & coordination functions in NONRTRIC/SMO Requirement gathering & initial test/integration with CMDB (if progressed in ONAP), Topology & Inventory functions in SMO
OAM (O1 Interface)¶
Switch to Java11 Switch to OpenDaylight version Sodium (O1 termination NetConf) https only support for VES-Collector (O1 termination VES) full IPv6 support
O-RAN Central Unit (OCU)¶
RRC: support Broadcast of system information£ support RRC connection control
NG: support PDU Session Management Procedures support UE Context Management Procedures support Transport of NAS Messages Procedures support Interface Management Procedures
E1: support Interface Management procedures support Bearer Context Management procedures
F1: support Interface Management procedures support UE Context Management procedures support RRC Message Transfer procedures support System Information Procedures
O-DU High¶
Implement UE attach procedure with basic scheduling on FDD, mu=0, BW=20 MHz Implement single UE DL and UL data path and bench-marking Add support for 64QAM modulation scheme in DL and 16QAM in UL Add support for all short PRACH formats Integrate O-DU High with O-DU Low Integrate with Viavi sim/O-CU Explore O1 interface Establish Netconf session for O1 interface for CM Support Health Check use-case
O-DU Low¶
O-DU Low and O-DU High integration according to RSAC and INT project alignment features and scope. O-DU Low and O-RU/RRU emulator integration according to RSAC and INT project alignment features and scope. E2E integration according to RSAC and INT project alignment features and scope O-DU Low integrated with thirty party commercial SW to verify the UE attachment and traffic, update the O-DU Low version according.
Simulators (SIM)¶
1 Simulator enhancements Upgrade NETCONF Server framework E2 Simulator enhancements Implement more message types Assess if E2 Simulator can be used for benchmarking Maintain alignment with latest YANG models
Infrastructure (INF)¶
2 servers. 2 AIO servers with HA (high availability), the controller functionality and storage functionality will be deployed at the 2 servers with standby-active mode managed by “service management”. If one server or one service in one server has error, it will be switched from active to standby one to maintain the service availability. 2 AIO servers with additional worker node.
Integration and Test (INT)¶
Automated CLM and SonarQube Scanning CI Jobs Improve CI for OSC projects Validate and and Test platform and use cases
Service Management and Orchestration (SMO)¶
SMO entered the Cherry release in the middle of third sprint of code development. As such its scope is fairly modest. They are validation of application packages, assuming that we can agree on the format of the package, on boarding of applications and storing them in a package catalog which also has to be agreed upon, and as a stretch goal, setting up an environment where YANG modules that will be used by O-RAN, whether they are from 3GPP, and O-RAN itself can be used by vendors developing RIC, CU, DU and the RU to test a MVP configuration.
Please find some guidance here on the content of O-RAN SC documentation.
O-RAN Architecture Overview¶
O-RAN SC architecture follows O-RAN Alliance defined architecture.
Figure 1: O-RAN architecture overview
In the O-RAN architecture, the radio side includes Near-RT RIC, O-CU-CP, O-CU-UP, O-DU, and O-RU. The management side includes Service Management and Orchestration Framework that contains a Non-RT-RIC function.
Components Definition¶
For the purposes of the present document, the terms and definitions given in 3GPP TR 21.905 [1] and the following apply. A term defined in the present document takes precedence over the definition of the same term, if any, in 3GPP TR 21.905 [1].
near-RT RIC: O-RAN near-real-time RAN Intelligent Controller: a logical function that enables near-real-time control and optimization of O-RAN elements and resources via fine-grained data collection and actions over E2 interface.
non-RT RIC: O-RAN non-real-time RAN Intelligent Controller: a logical function that enables non-real-time control and optimization of RAN elements and resources, AI/ML workflow including model training and updates, and policy-based guidance of applications/features in near-RT RIC.
NMS: A Network Management System
O-CU: O-RAN Central Unit: a logical node hosting RRC, SDAP and PDCP protocols
O-CU-CP: O-RAN Central Unit – Control Plane: a logical node hosting the RRC and the control plane part of the PDCP protocol
O-CU-UP: O-RAN Central Unit – User Plane: a logical node hosting the user plane part of the PDCP protocol and the SDAP protocol
O-DU: O-RAN Distributed Unit: a logical node hosting RLC/MAC/High-PHY layers based on a lower layer functional split.
O-RU: O-RAN Radio Unit: a logical node hosting Low-PHY layer and RF processing based on a lower layer functional split. This is similar to 3GPP’s “TRP” or “RRH” but more specific in including the Low-PHY layer (FFT/iFFT, PRACH extraction).
O1: Interface between management entities in Service Management and Orchestration Framework and O-RAN managed elements, for operation and management, by which FCAPS management, Software management, File management shall be achieved.
O1*: Interface between Service Management and Orchestration Framework and Infrastructure Management Framework supporting O-RAN virtual network functions.
xAPP: Independent software plug-in to the Near-RT RIC platform to provide functional extensibility to the RAN by third parties.
O-RAN SC license¶
The O-RAN Software initiatives are focused on aligning a software reference implementation with the O-RAN Alliance’s open architecture and specifications. The aim is to achieve a solution that can be utilised to unify and accelerate the evolution and deployment in the RAN. The community has been setup to promote open source but also to address wireless technology support for essential patents. more infomation can be found at https://www.o-ran.org/software.
Apache 2.0 License¶
The O-RAN Software Community is a Linux Foundation project supported and funded by O-RAN to lead the implementation of the O-RAN specifications in Open Source. The project leverages the Apache Version 2 License.
O-RAN Software License¶
The O-RAN Specification Code Project is an O-RAN Alliance project. Its objective is to allow contributions that will acknowledge essential patents. The project leverages the O-RAN Software License.
Creative Commons Attribution 4.0 International License¶
All documentation in O-RAN SC will be received and made available by the Specification,Code Project under the Creative Commons Attribution 4.0 International License.
Release-Notes¶
This document provides the release notes for O-RAN SC.
Version history¶
Date |
Ver. |
Author |
Comment |
2019-11-31 |
Amber |
CMCC |
Amber Release |
2020-06-21 |
Bronze |
CMCC |
Bronze Release |
Release Summary¶
RAN Intelligent Controller Applications (RICAPP) features¶
The AC xAPP, which supports full closed loop control as well as report mode operation for admission control of SgNB Addition requests, reporting of metrics over VES, and configuration of single instance policies via the A1-Interface.
GS-lite, which is an open-source, real-time, low-latency, high-throughput stream processing engine. It is a fork of cask/tigon (https://github.com/cdapio/tigon) maintained to serve the needs of RIC applications (currently MC xApp).
The HelloWorld(HW) xAPP repository contains open-source code for a prototype xAPP for near real-time RAN Intelligent Controller.
The KPI Mon xAPP, which supports full closed loop control for CuCpResourceStatusReport from multiple gNBs and stores the metrics in Redis DB.
QoE Predictor (QP) is an Xapp in the Traffic Steering O-RAN use case.
The Acumos xAPP adapter, which contains the code needed to use an existing Acumos microservice as an O-RAN xAPP, by providing “glue” that listens and speaks RMR protocol and translates these into calls to the Acumos microservice, which is co-deployed in the same pod as the adapter.
The MC xAPP, which supports calculation of a number of metrics and KPIs based on X2 messages received from UEEC.
Near Realtime RAN Intelligent Controller (RIC) features¶
The RAN Intelligent Controller (RIC) Platform’s A1 Mediator component listens for policy type and policy instance requests sent via HTTP (the “northbound” interface), and publishes those requests to running xApps via RMR messages (the “southbound” interface).
Asn1-documents, which contains a description of the E2 used in the near-RT RIC implementation under O-RAN-SC.
DBAAS, which is the needed elements to deploy database as a service (Dbaas) to kubernetes. Dbaas service is realized with a single container running Redis database. The database is configured to be non-persistent and non-redundant.
Golang, which is an implementation of a structured logging library with Mapped Diagnostics Context (MDC) support.
Jaegeradapter, which contains jaeger configuration files. This first version only supports configuration for a jaeger-all-in-one deployment.
LOG, which is a thread-safe logging C API library with Mapped Diagnostics Context (MDC) support.
PYLOG, which implements a structured logging library with Mapped Diagnostic Context (MDC).
Shared Data Layer, which provides a lightweight, high-speed interface for accessing shared data storage. The purpose is to enable utilizing clients to become stateless, conforming with, e.g., the requirements of the fifth generation mobile networks.
Shared Data Layer, which provides a lightweight, high-speed interface for accessing shared data storage. The purpose is to enable utilizing clients to become stateless, conforming with, e.g., the requirements of the fifth generation mobile networks.
Streaming Protobufs, which provides a Protobuf schema for selected set of X2 Application Protocol messages.
Tracelibcpp library, which implements a function for creating a configured tracer instance. It hides the underlaying tracer implementation from the application. The library currently supports only Jaeger (https://www.jaegertracing.io/) C++ client (https://github.com/jaegertracing/jaeger-client-cpp) tracer implementation.
Tracelibgo library, which implements a function for creating a configured tracer instance. It hides the underlaying tracer implementation from the application. The trace library currently supports only Jaeger (https://www.jaegertracing.io/) golang client (https://github.com/jaegertracing/jaeger-client-go) tracer implementation.
The VESPA manager ,which uses the VES Agent (https://github.com/nokia/ONAP-VESPA) to adapt near-RT RIC internal statistics’ collection using Prometheus (xApps and platform containers) to ONAP’s VES (VNF event streaming).
xapp-frame is a simple framework for rapid development of RIC xapps, and supports various services essential for RIC xapps such as RESTful APIs, RMR (RIC Message Routing), database backend services and watching and populating config-map changes in K8S environment
Non-RealTime RAN Intelligent Controller (NONRTRIC) features¶
In Bronze release, Non-RT RIC containes Policy Agent, Control Panel and A1 Simulator.
Operations and Maintenance (OAM) features¶
OAM which provides reference implementation according to the O-RAN OAM (WG1) documents.
The O-RAN SC RIC Dashboard provides administrative and operator functions for a radio access network (RAN) controller. The web app is built as a single-page app using an Angular (version 8) front end and a Java (version 11) Spring-Boot (version 2.1) back end.
O-RAN Central Unit (OCU) features¶
5G NR which is a RAN Software Reference Design for a 5G protocol stack
O-RAN Distributed Unit High Layers (ODUHIGH) features¶
O-DU Layer 2, which is O-DU layer intilaizations and exchange of F1 Setup Request, F1 Setup Response, GNB DU Config Update and GNB DU Config Update ACK between the ODU and CU STUB.
O-RAN Distributed Unit Low Layers (ODULOW) features¶
O-DU Layer 1, which is the O-RAN FHI Lib built on top of DPDK to perform U-plane and C-plane functions according to the ORAN Fronthaul Interface specification between O-DU and O-RU. S-Plane support requires PTP for Linux version 2.0 or later The management plane is outside of the scope of this library implementation.
Infrastructure (INF) features¶
Realtime Platform, which implements a real time platform to deploy the O-CU and O-DU components.
Integration and Testing (INT) features¶
IT-DEP hosts deployment and integration artifacts such as scripts, Helm charts, and other files used for deploying O-RAN SC software.
IT-DEV which integrates artifacts for developing Near Realtime RAN Intelligent Controller applications (xApps).
IT-TEST, which contains: Test automation scripts written using the robot frameworkDeployment scripts for a dev-test 1-node Kubernetes cluster. A functional simulator for the E2 protocol that acts as gNB used to test the RIC. A workload generator that is used to benchmark the RIC
IT-DEV includes the initial commit of the OTF platform code. Applications include otf-frontend, otf-service-api, otf-camunda, and several virtual test head microservices (ping, ssh, robot, ric). In addition setup documentation and installation guides are included to build docker containers and helm charts for deployment.
O-RAN SC Projects¶
RAN Intelligent Controller Applications (RICAPP)¶
RICAPP includes open source sample xAPPs and platform applications that can we used for integration, testing, and demonstrations.
More detailed function documentation can be found as follow:
Near Realtime RAN Intelligent Controller (RIC)¶
This project a initial RIC Platform to support xAPPs with limited support for O1, A1, and E2 interfaces.
More detailed function documentation can be found as follow:
Non-RealTime RAN Intelligent Controller (NONRTRIC)¶
Non-RT RIC focus on feature functionality of A1-interface (consumer and provider), and closed-loop use cases. The Non-RT RIC project will also work together with the OAM project to align activities on a case-by-case base for O1 interfaces. Project should focus on use cases supported in ONAP. The work should be sponsored in O-RAN and initial code contributions in O-RAN SC. Interoperability with ONAP should be aligned between the standards and will follow initial contributions in this project.
More detailed function documentation can be found as follow:
-
A1 Policy Management Service
A1 Controller
A1 Enrichment Information Coordinator
rApp catalogue
Operations and Maintenance (OAM)¶
The O-RAN-SC-OAM project provides reference implementation according to the O-RAN OAM (WG1) documents. In addition we provide a common MnS-Consumer for development and module test purposes. The assumption is that the projects for the ManagedElements can concentrate on the more important user-plane.
More detailed function documentation can be found as follow:
O-RAN Central Unit (OCU)¶
The OCU is target an initial software deliverable with limited functionality. Focus on aa basic E2 interface to enable initial integration testing between RIC and OCU.
More detailed function documentation can be found as follow:
O-RAN Distributed Unit High Layers (ODUHIGH)¶
Focus on initial L2 functional blocks based on seed code contributions.
More detailed function documentation can be found as follow:
O-RAN Distributed Unit Low Layers (ODULOW)¶
Focus on initial L1 functional blocks based on seed code contributions.
More detailed function documentation can be found as follow:
Infrastructure (INF)¶
Initial building blocks for infrastructure to run O-RAN NF components.
More detailed function documentation can be found as follow:
Simulations(SIM)¶
Initial simulators used for testing O-RAN NF interfaces.
More detailed function documentation can be found as follow:
Integration and Testing (INT)¶
The integration and test effort will focus on testing the requirements documented in each release. This will focus on end to end test and use case testing.
INF Testing shall primarily be done on the Akraino-REC (Radio Edge Cloud) blueprint. While Non-RT RIC and O1 interface testing will primarily use ONAP components.
More detailed function documentation can be found as follow:
O-RAN Software Community API Document¶
This is API Document of O-RAN Software Community, pleaes find more details in the following section.