Files

Open Air Interface Docker Image

oai is a docker image to run Open Air Interface as a container.

Usage

This docker image must be run with a command (docker run -ti gradiant/oai CMD)

example of commands:

  • /opt/oai/bin/lte-softmodem.Rel15 -O /oai.conf
  • /opt/oai/bin/nr-softmodem.Rel15 -O /oai.conf
  • /opt/oai/bin/nr-uesoftmodem.Rel15 -O /oai.conf
  • /bin/bash

The entrypoint generates a /oai.conf file from a template replacing '@VAR@' placeholders with environment variable values. This image provides predefined config templates. To choose a template, set CONFIG_TEMPLATE variable to:

  • gnb_nsa_tdd_mono
  • gnb_sa_tdd_mono
  • enb_fdd_cu
  • enb_fdd_du
  • enb_fdd_mono
  • enb_tdd_mono
  • enb_fdd_fapi_rcc
  • enb_fdd_if4p5_rcc
  • enb_tdd_if4p5_rcc
  • enb_fdd_rru
  • enb_tdd_rru
  • nr_ue You can also mount your own template and provide the path with CONFIG_TEMPLATE_PATH environment variable.

The entrypoint does also some magic to deal with hostnames, interface names and IPs:

  • It gets the IPs of the interfaces *_IF_NAME environment variables and generates corresponding *_IP_ADDRESS environment variables. For example, if GNB_NG_IF_NAME=eth0, the IP of the eth0 is extracted and assigned to GNB_NG_IP_ADDRESS variable.

  • It resolves the IPs of the names *_HOSTNAME environment variables and generates corresponding *_IP_ADDRESS environment variables. For example, if MME_S1C_HOSTNAME=mme.gradiant.org, the entrypoints resolves the IP and assigns it to MME_S1C_IP_ADDRESS variable.

Set USE_B2XX, USE_X3XX or USE_N3XX to load the USRP binaries.

Example 1: enodeb

docker run --rm -ti --privileged \
  -v /dev/bus/usb/:/dev/bus/usb/ \
  -v $PWD/examples/enb.fdd.conf:/opt/oai/etc/enb.fdd.conf \
  --env-file $PWD/examples/enb-fdd.env \
  --privileged \
  gradiant/oai:2021.w36 opt/oai/bin/lte-softmodem.Rel15 -O /oai.conf

Example 2: gnodeb standalone

docker run --rm -ti --privileged \
  -v /dev/bus/usb/:/dev/bus/usb/ \
  -v $PWD/examples/gnb.sa.tdd.conf:/opt/oai/etc/gnb.sa.tdd.conf \
  --env-file $PWD/examples/gnb-sa.env \
  --privileged \
  gradiant/oai:2021.w36 opt/oai/bin/nr-softmodem.Rel15 -E --sa -O /oai.conf

Example 3: nr-UE

docker run --rm -ti --privileged \
  -v /dev/bus/usb/:/dev/bus/usb/ \
  -v $PWD/examples/nr-ue-sim.conf:/opt/oai/etc/nr-ue-sim.conf \
  --env-file $PWD/examples/nr_ue.env \
  --privileged \
  gradiant/oai:2021.w36 /opt/oai/bin/nr-uesoftmodem.Rel15 -E --sa -O /oai.conf