# OAI CU & DU # ONF's OAI CU & DU are O-RAN compliant disaggregated baseband units based on on [OpenAirInterface](http://www.openairinterface.org). 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: ```shell $ 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: ```shell $ 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* ```shell $ 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. * [OAI License Model](http://www.openairinterface.org/?page_id=101) * [OAI License v1.1 on our website](http://www.openairinterface.org/?page_id=698) It is distributed under **OAI Public License V1.1**. The license information is distributed under [LICENSE](LICENSE) file in the same directory. Please see [NOTICE](NOTICE.md) file for third party software that is included in the sources. ### Where to Start ### * [The implemented features](./doc/FEATURE_SET.md) * [How to build](./doc/BUILD.md) * [How to run the modems](./doc/RUNMODEM.md) ### 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.