This page describes O-DU High/Low pairwise testing procedure in Timer mode.

Demo Video

Delivery Status


Only the Integration PTL should edit the delivery status table to track the release validation progress

Deployment Artifacts

Docker Container

Dockerfiles are released, however, containers are not generated and tested.
Helm Charts

Deployment scripts

OS Image

E2E Flows

WLS interface ready

UL IQ sample request

UL IQ sample response

Config request

Config response

Start request

Slot indication

  1. Cloning O-DU High code

    mkdir odu_high
    cd odu_high
    git clone ""
  2. Cloning O-DU Low code

    mkdir odu_low
    cd odu_low
    - git clone ""
    - Download code from ""
  3. Install O-DU High pre-requisite libraries by following .
  4. Install O-DU Low by following .
  5. Compilation Preparation

    mkdir odu_high/l2/src/wls_lib
    mkdir odu_high/l2/src/dpdk_lib
    cp odu_low/phy/wls_lib/wls_lib.h odu_high/l2/src/wls_lib/
    cp odu_low/dpdk-19.11/x86_64-native-linuxapp-gcc/include/rte_* odu_high/l2/src/dpdk_lib/

    DPDK library

    O-DU low instructs to build DPDK using x86_64-native-linuxapp-icc

    O-DU high uses x86_64-native-linuxapp-gcc, or library will be missing.

  6. Compilation

    cd odu_high/l2/build/odu

    Hardcoded Library Location

    The makefile of odu assumes the required libraries is located at /opt/intel
    Modification of the makefile is needed if the libraries are located at different location.
  7. Execution - Bringing up L1 of O-DU Low

    cd odu_low/phy
    source ./
    cd odu_low/FlexRAN/l1/bin/nr5g/gnb/l1
    ./ -e
    Non BBU threads in application
    nr5g_gnb_phy2mac_api_proc_stats_thread: [PID:   8659] binding on [CPU  0] [PRIO:  0] [POLICY:  1]
    wls_rx_handler (non-rt):                [PID:   8663] binding on [CPU  0]
    PHY>welcome to application console

    Dynamic Library Path

    May need to include the paths to the following libraries in the environment variable LD_LIBRARY_PATH




  8. Execution - Bringing up FAPI Translator of O-DU Low

    cd odu_low/phy
    source ./
    cd odu_low/phy/fapi_5g/bin/
    ./oran_5g_fapi –cfg=oran_5g_fapi.cfg
  9. Assign virtual IP addresses as follows:

    ifconfig <interface name>:ODU “”
    ifconfig <interface name>:CU_STUB “”
    ifconfig <interface name>:RIC_STUB “”
  10. Execution - Running CU Stub

    cd odu_high/bin/cu_stub
  11. Execution - Running RIC Stub

    cd odu_high/bin/ric_stub
  12. Execution - Running O-DU High

    cd odu_high/bin/odu
    export LD_LIBRARY_PATH=odu_low/phy/wls_lib/lib:$LD_LIBRARY_PATH

  • No labels

1 Comment

  1. Hi Zhe Huang,

    I am attempting to deploy O-DU high and O-DU low as part of an end-to-end network consisting of O-RAN SC components. This guide is just what I need so thank you for putting it together!

    One thing I am confused about is in step 9 when assigning virtual IP addresses - I do not know what interfaces to select i.e. why do you select 'eth0' in the tutorial video? Ideally, I would like to connect O-DU to an instance of the Near RT-RIC (dawn release) - is this possible? From what I understand, I should aim to connect O-DU with the e2-termination pod in the RIC's K8s cluster, but I'm unsure how to achieve this through assigning virtual IPs.

    I look forward to hearing back from you.

    All the best,