# 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) & Uplink (UL) RAN Slicing functionality 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.