OAI CU & DU

ONF’s OAI CU & DU are O-RAN compliant disaggregated baseband units based on on OpenAirInterface. The CU contains both CU-C & CU-U functionality and supports PDCP,GTPU,RRC & S1AP protocols along with S1, F1 & E2 interfaces. The DU has High-PHY(FAPI), MAC, RLC & RRC (for handing RRC Config messages from CU) protocols along with F1 interface support. Both CU & DU implements O-RAN’s E2AP interface with support for the below Service Models: - Key Performance Metrics (E2SM_KPM) - RAN Slicing (E2SM_RSM) This component is intended for use with OAI based RU/DU hardware or SDRAN-in-a-Box (RiaB).

RIC Agent

The RIC Agent is an ONF addition to OAI that adds support for interfacing the OAI CU & DU with a O-RAN Real-time Intelligent Controller (RIC) over the E2 interface. To build OAI with this support, enable the –build-ric-agent build option:

$ cd openairinterface5g
$ source oaienv
$ cd cmake_targets
$ ./build_oai -c -I --eNB --UE -w USRP -g --build-ric-agent

The top-level Makefile builds docker images that include the RIC Agent:

$ cd openairinterface5g
$ make images

RAN Slicing

ONF has implemented RAN Slicing service model to introduce Downlink (DL) and Uplink (UL) RAN Slicing functionalities on the CU & DU and also to communicate with RSM xApp at the RIC. To build OAI with RAN slicing functionality, enable the –build-ran-slicing build option along with –build-ric-agent

$ cd openairinterface5g
$ source oaienv
$ cd cmake_targets
$ ./build_oai -c -I --eNB --UE -w USRP -g --build-ric-agent --build-ran-slicing

OpenAirInterface

OpenAirInterface License

OpenAirInterface is under OpenAirInterface Software Alliance license.

It is distributed under OAI Public License V1.1.

The license information is distributed under LICENSE file in the same directory.

Please see NOTICE file for third party software that is included in the sources.

Where to Start

OpenAirInterface repository structure

The OpenAirInterface (OAI) software is composed of the following parts:

openairinterface5g
├── ci-scripts        : Meta-scripts used by the OSA CI process. Contains also configuration files used day-to-day by CI.
├── cmake_targets     : Build utilities to compile (simulation, emulation and real-time platforms), and generated build files.
├── common            : Some common OAI utilities, other tools can be found at openair2/UTILS.
├── doc               : Contains an up-to-date feature set list and starting tutorials.
├── executables       : Top-level executable source files.
├── LICENSE           : License file.
├── maketags          : Script to generate emacs tags.
├── nfapi             : Contains the NFAPI code. A local Readme file provides more details.
├── openair1          : 3GPP LTE Rel-10/12 PHY layer / 3GPP NR Rel-15 layer. A local Readme file provides more details.
│   ├── PHY
│   ├── SCHED
│   ├── SCHED_NBIOT
│   ├── SCHED_NR
│   ├── SCHED_NR_UE
│   ├── SCHED_UE
│   └── SIMULATION    : PHY RF simulation.
├── openair2          : 3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP + LTE Rel-14 M2AP implementation. Also 3GPP NR Rel-15 RLC/MAC/PDCP/RRC/X2AP.
│   ├── COMMON
│   ├── DOCS
│   ├── ENB_APP
│   ├── F1AP
│   ├── GNB_APP
│   ├── LAYER2/RLC/   : with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0.
│   ├── LAYER2/PDCP/PDCP_v10.1.0
│   ├── M2AP
│   ├── MCE_APP
│   ├── NETWORK_DRIVER
│   ├── NR_PHY_INTERFACE
│   ├── NR_UE_PHY_INTERFACE
│   ├── PHY_INTERFACE
│   ├── RIC_AGENT     : E2 client to interface with O-RAN compliant RIC
│   ├── RRC
│   ├── UTIL
│   └── X2AP
├── openair3          : 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
│   ├── COMMON
│   ├── DOCS
│   ├── GTPV1-U
│   ├── M3AP
│   ├── MME_APP
│   ├── NAS
│   ├── S1AP
│   ├── SCTP
│   ├── SECU
│   ├── TEST
│   ├── UDP
│   └── UTILS
└── targets           : Top-level wrappers for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW.