Modify:
oai_db.sql (with plain text editor)
There are 3 UEs pre-configured here. To find them, search for: 001010000000001 and add or edit them as needed.
On gNB server, if you want to change the change the MCC and MNC in the gNB config file. ./targets/PROJECTS/GENERIC-NR-5GC/CONF/vnf.sa.band78.fr1.273PRB.Aerial.conf
For reference, use the following:
SIM cards – 4G and 5G reference software (open-cells.com)
Program SIM Card with Open Cells Project application “uicc-v2.6” https://open-cells.com/d5138782a8739209ec5760865b1e53b0/uicc-v2.6.tgz
Use the ADM code specific to the SIM card. If the wrong ADM is used 8 times, the SIM card is permanently locked.
sudo ./program_uicc --adm 12345678 --imsi 001010000000001 --isdn 00000001 --acc 0001 --key fec86ba6eb707ed08905757b1bb44b8f --opc C42449363BBAD02B66D16BC975D77CC1 -spn "OpenAirInterface" --authenticate
Existing values in USIM
ICCID: 89860061100000000191
WARNING: iccid luhn encoding of last digit not done
USIM IMSI: 208920100001191
USIM MSISDN: 00000191
USIM Service Provider Name: OpenCells191
Setting new values
Reading UICC values after uploading new values
ICCID: 89860061100000000191
WARNING: iccid luhn encoding of last digit not done
USIM IMSI: 001010000000001
USIM MSISDN: 00000001
USIM Service Provider Name: OpenAirInterface
Succeeded to authentify with SQN: 64
set HSS SQN value as: 96
CUE Configuration Setup
Install the “Magic IPERF” application on the UE:
To test with CUE, a test SIM card with Milenage support is required. The following has to be provisioned on the SIM and it has to match the Core Network settings: mcc, mnc, IMSI, Ki, OPc
The APN on the CUE should be configured according to Core Network settings.
Start the DNS (Core network should assign mobile IP address and DNS. If DNS is not assigned, set DNS with other Android app).
This section describes how to run end-to-end traffic from UE to the edge core network.
UE can connect as close as 2-3 meters with a range of 10-15 meters. Connection distance outside of buildings is unverified.
Start CN5G Core Network
sudo sysctl net.ipv4.conf.all.forwarding=1
sudo iptables -P FORWARD ACCEPT
cd ~/oai-cn5g
docker compose up -d
Start CN5G Edge Application
After the CN5G is started, use the oai-ext-dn container to run IPERF.
docker exec -it oai-ext-dn /bin/bash
Start NVIDIA Aerial cuBB on the gNB
# Run on host: start a docker terminal
docker exec -it $AERIAL_CUBB_CONTAINER /bin/bash
Follow the Aerial documentation for building and running the cuphycontroller. The following instructions are for building and setting up the environment for running cuphycontroller. The following commands must be run from inside cuBB container.
cd /opt/nvidia/cuBB
export cuBB_SDK=$(pwd)
mkdir build && cd build
cmake ..
time chrt -r 1 taskset -c 2-20 make -j
Configuration files for ARC-OTA can be found in the following shared Google drive.
Aerial configuration files are located in /opt/nvidia/cuBB/cuPHY-CP/cuphycontroller/config.
Before running the cuphycontroller, edit the cuphycontroller_<xyz>.yaml
configuration file to point at the
correct MAC address of the ORU and the correct PCIe address of the FH interface of the gNB.
sed -i "s/ nic:.*/ nic: 0000:b5:00.0/" ${cuBB_SDK}/cuPHY-CP/cuphycontroller/config/cuphycontroller_<xyz>.yaml
sed -i "s/ dst_mac_addr:.*/ dst_mac_addr: 6c:ad:ad:00:02:02/" ${cuBB_SDK}/cuPHY-CP/cuphycontroller/config/cuphycontroller_<xyz>.yaml
When the build is done and the configuration files are updated, exit the container. Run the following to commit the changes to a new image. The name of the image will be used later in the Docker Compose configuration.
docker commit $AERIAL_CUBB_CONTAINER cubb-build:23-4
Creating the NVIPC Source Code Package
With the latest release, NVIPC is no longer included in the OAI repository. You must copy the source package from
the Aerial container and add it to the OAI build files. Execute the following to create the nvipc_src.<data>.tar.gz
file.
docker exec -it $AERIAL_CUBB_CONTAINER ./cuPHY-CP/gt_common_libs/pack_nvipc.sh
docker cp $AERIAL_CUBB_CONTAINER::/opt/nvidia/cuBB/cuPHY-CP/gt_common_libs/nvipc_src.<date>.tar.gz ~/openairinterface5g
This will create and copy the nvipc_src.<data>.tar.gz
archive that is required to build OAI L2+ for Aerial.
Instructions can also be found in the Aerial FAPI.
Build gNB Docker Image
In ARC-OTA 1.2, the OAI image is built in two steps. Instructions can be found in the Aerial FAPI.
When building a Docker image, the files are copied from the filesystem into the image. Changes to the configuration after you build the image must also be done inside the container.
cd ~/openairinterface5g/
docker build . -f docker/Dockerfile.base.ubuntu20 --tag ran-base:latest
docker build . -f docker/Dockerfile.gNB.aerial.ubuntu20 --tag oai-gnb-aerial:latest
Running gNB with Docker Compose
ARC-OTA 1.2 includes a Docker Compose configuration for running gNB software. Refer to the OAI instructions on how to run with Docker Compose. The Docker Compose configuration is located in the following file path:
~/openairinterface5g/ci-scripts/yaml_files/sa_gnb_aerial/docker-compose.yaml
After following the instructions, you should have the following images:
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
cubb-build 23-4 be7a5a94f2d3 10 seconds ago 26GB
gitlab-master.nvidia.com:5005/gputelecom/container/cubb Aerial-cuBB-container-ubuntu22.04-23.04.0-Rel-23-4.256-x86_64 3a46cace77de 3 weeks ago 24.6GB
i_oai_aerial latest 0856b9969f42 3 weeks ago 4.88GB
ran-base latest c5d060d23529 3 weeks ago 2.42GB
Docker Compose will start containers running cuBB and OAI L2+. The Docker Compose script includes
an entry-point script for cuBB, which you need to modify before running. The script points at
the uphycontroller_xxx.yaml
configuration that you want to run. This script is located in
the following file path:
~/openairinterface5g/ci-scripts/yaml_files/sa_gnb_aerial/aerial_l1_entrypoint.sh
You can now run ARC-OTA with the below command.
docker compose up
// console of cuBB
docker logs -f nv-cubb
// console of oai
docker logs -f oai-gnb-aerial
CUE Connecting to 5G Network
Take the CUE out of airplane mode to start the UE attaching to the network. Make sure that the CUE is in airplane mode before starting OAI L2 stack.
Observe 5G Connect Status
See Preamble log in cuphycontroller console output.
Check Core Network log or CUE log to see whether NAS authentication and PDU session succeed.
Running E2E IPERF Traffic
Start ping, iperf, or other network app tests after the PDU session connects successfully.
You can install and run the “Magic IPerf” Android application on the CUE for this purpose.
Ping Test
Ping the UE from the CN:
docker exec -it oai-ext-dn ping 12.1.1.2
Ping from the UE to the CN:
ping -I 12.1.1.2 192.168.70.135
IPERF Downlink Test
UE Side:
iperf3 -s
CN5G Side:
# Test UDP DL
docker exec -it oai-ext-dn iperf3 -u -P 4 -b 100M -t 60 -c 12.1.1.2
#Test UDP bidirectional
docker exec -it oai-ext-dn iperf3 -u --bidir -P 4 -b 100M -t 60 -c 12.1.1.2
# Test TCP DL
docker exec -it oai-ext-dn iperf3 -P 4 -b 100M -t 60 -c 12.1.1.2
#Test TCP bidirectional
docker exec -it oai-ext-dn iperf3 --bidir -P 4 -b 100M -t 60 -c 12.1.1.2
IPERF Uplink Test
UE Side:
iperf3 -s
CN5G Side:
#UDP
docker exec -it oai-ext-dn iperf3 -u -R -b 60M -t 60 -c 12.1.1.2
#TCP
docker exec -it oai-ext-dn iperf3 -R -b 60M -t 60 -c 12.1.1.2
To stop the containers follow the following example:
docker stop $OAI_GNB_CONTAINER
docker rm $OAI_GNB_CONTAINER
ARC-OTA is a P5G cellular network. Specific enterprise switching/routing/firewalls/policies might need integration support to enable access to World Wide Web.