Aerial Research Cloud Version A1.1

Part 6. Validate the Setup

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.

Copy
Copied!
            

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:

  1. 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

  2. The APN on the CUE should be configured according to Core Network settings.

  3. 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.

Note

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

Copy
Copied!
            

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.

Copy
Copied!
            

docker exec -it oai-ext-dn /bin/bash

Start NVIDIA Aerial cuBB on the gNB

Copy
Copied!
            

# 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.

Copy
Copied!
            

cd /opt/nvidia/cuBB export cuBB_SDK=$(pwd) mkdir build && cd build cmake .. time chrt -r 1 taskset -c 2-20 make -j insModScript=${cuBB_SDK}/cuPHY-CP/external/gdrcopy/ cd $insModScript && make && ./insmod.sh && cd - export LD_LIBRARY_PATH=$cuBB_SDK/gpu-dpdk/build/install/lib/x86_64-linux-gnu:$cuBB_SDK/build/cuPHY-CP/cuphydriver/src export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/mellanox/gdrcopy/src export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/mellanox/dpdk/lib/x86_64-linux-gnu:/opt/mellanox/doca/lib/x86_64-linux-gnu echo $LD_LIBRARY_PATH | sed 's/:/\n/g' | sudo tee /etc/ld.so.conf.d/aerial-dpdk.conf sudo ldconfig export GDRCOPY_PATH_L=$cuBB_SDK/cuPHY-CP/external/gdrcopy/src # Make sure MPS is running export CUDA_DEVICE_MAX_CONNECTIONS=8 export CUDA_MPS_PIPE_DIRECTORY=/var export CUDA_MPS_LOG_DIRECTORY=/var # Stop existing MPS sudo -E echo quit | sudo -E nvidia-cuda-mps-control # Start MPS sudo -E nvidia-cuda-mps-control -d sudo -E echo start_server -uid 0 | sudo -E nvidia-cuda-mps-control

Configuration files for ARC 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 configuration file (cuphycontroller_P5G_SCF_FXN.yaml) to point at the correct MAC address of the ORU and the correct PCIe address of FH interface of the gNB.

Copy
Copied!
            

sed -i "s/ nic:.*/ nic: 0000:b5:00.0/" ${cuBB_SDK}/cuPHY-CP/cuphycontroller/config/cuphycontroller_P5G_SCF_FXN.yaml sed -i "s/ dst_mac_addr:.*/ dst_mac_addr: 6c:ad:ad:00:02:02/" ${cuBB_SDK}/cuPHY-CP/cuphycontroller/config/cuphycontroller_P5G_SCF_FXN.yaml

Start the cuphycontroller and wait for L1 to start.

Copy
Copied!
            

# If you have an old phy.log you can remove or move it before starting. So you get the correct create/birth date. rm -f /tmp/phy.log # Start the cuphycontroller with the configuration from cuphycontroller_P5G_SCF_FXN.yaml $cuBB_SDK/build/cuPHY-CP/cuphycontroller/examples/cuphycontroller_scf P5G_SCF_FXN # Wait until you see a console log ====> PhyDriver initialized! 16:29:35.913840 C [NVIPC:DEBUG] ipc_debug_open: pcap enabled: fapi_type=1 fapi_tb_loc=1 16:29:36.141657 C [NVIPC:SHM] shm_ipc_open: forward_enable=0 fw_max_msg_buf_count=0 fw_max_data_buf_count=0 16:29:36.153808 C [CTL.SCF] cuPHYController configured for 1 cells 16:29:36.153816 C [CTL.SCF] ====> cuPHYController initialized, L1 is ready!


Start OAI gNB L2 Stack on the gNB

Start up the OAI container and start the OAI nr-softmodem by entering the container to run the configuration file mounted from the host.

Copy
Copied!
            

export OAI_GNB_CONTAINER=c_oai_aerial_$USER export OAI_GNB_IMAGE=i_oai_aerial:latest docker run --detach --privileged --rm \ --ipc host \ --network host --shm-size=4096m -it \ --name $OAI_GNB_CONTAINER \ -v /lib/modules:/lib/modules \ -v /dev/hugepages:/dev/hugepages \ -v /usr/src:/usr/src \ -v ~/openairinterface5g:/opt/oai/ \ -v ~/share:/opt/nvidia/cuBB/share \ -v /var/log/aerial:/var/log/aerial \ $OAI_GNB_IMAGE

Copy
Copied!
            

docker exec -it $OAI_GNB_CONTAINER bash # cd to the openairinterface directory source oaienv cd cmake_targets/ran_build/build/ ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/vnf.sa.band78.fr1.273PRB.Aerial.conf --nfapi aerial --sa | ts | tee /var/log/aerial/oai.log


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:

Copy
Copied!
            

docker exec -it oai-ext-dn ping 12.1.1.2

Ping from the UE to the CN:

Copy
Copied!
            

ping -I 12.1.1.2 192.168.70.135


IPERF Downlink Test

UE Side:

Copy
Copied!
            

iperf3 -s

CN5G Side:

Copy
Copied!
            

# 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:

Copy
Copied!
            

iperf3 -s

CN5G Side:

Copy
Copied!
            

#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:

Copy
Copied!
            

docker stop $OAI_GNB_CONTAINER docker rm $OAI_GNB_CONTAINER

Note

ARC is a P5G cellular network. Specific enterprise switching/routing/firewalls/policies might need integration support to enable access to World Wide Web.

Previous Part 5. Set up Aerial with OAI gNB and CN5G (Optional)
Next Tutorials
© Copyright 2023, NVIDIA.. Last updated on Jan 30, 2024.