6.1.9) Cellular Modem Experiment
1) Experiment Overview
This experiment aims to establish a complete end-to-end 5G SA network using an OAI gNB, Open5GS core network, and a Telit 5G module as the UE. The setup involves two virtual AERPAW Nodes (Machine #1 and #2) to test the connection between the OAI gNB and the Telit UE.
Experiment Goals: Provide a functional 5G SA network setup, focusing on TESTBED mode with Ping and iPerf tests.
Required Dependencies:
libqmi-utils (for qmicli)
busybox (for udhcpc)
Most Common Configuration Parameters:
USRP Tx Gain (sets the gain of variable PA in the USRP in the range of 0 to 89 for B series, 0 to 30 for X310): default is 0 dBFS which has been determined for the external Tx RF front end.
USRP Rx Gain (sets the gain of variable PA in the USRP in the range of 0 to 76 for B series, 0 to 30 for X310): default is 0 dBFS which has been determined for the external Rx RF front end and Tx/Rx isolation.
att_tx: Attenuation applied to the transmitted signal.
att_rx: Attenuation applied to the received signal.
max_rxgain: Maximum receiver gain.
2) Modifying the Experiment Configuration Parameters:
Open5GS Core Network configuration:
To modify an Open5GS database, you can add users with default values or specify the IMSI key and OPc using the command syntax. This is essential for authenticating the UE and obtaining an IP address.
To add a user:
$ /opt/open5gs/build/misc/db/open5gs-dbctl add [imsi] [key] [opc]
To remove a user:
$ /opt/open5gs/build/misc/db/open5gs-dbctl remove [imsi]
OAI gNB configuration:
Use any text editor of your choice to edit parameters in
AHN/E-VM/Profile_software/ProfileScripts/Radio/Helpers/gnb.sa.band78.fr1.51PRB.usrpb210.conf. Parameters of interest are att_tx, att_rx, and max_rxgain.
User Equipment configuration:
Use any text editor of your choice to edit the Telit starter script to change APN of your choice.
$ sudo qmicli -p -d "$device" --device-open-net='net-raw-ip|net-no-qos-header' --wds-start-network="apn=[APN_HERE],ip-type=4" --client-no-release-cid
3) Performing the Experiment
Machine #1 (Core Network and gNB):
Login to the fixed node E-VM and navigate to the folder containing all the radio scripts. Then, start Open5GS with its config file under /opt/openg5gs directory:
$ cd /root/Profiles/ProfileScripts/Radio/Samples
$ ./startOpen5GS.sh /opt/open5gs/build/configs/open5gs_nr_core_oai.yaml
Add UE subscription parameters:
$ /opt/open5gs/build/misc/db/open5gs-dbctl add [imsi] [key] [opc]
Copy the start experiment script from the current directory as startRadio.sh:
$ cd /root/Profiles/ProfileScripts/Radio
$ cp Samples/start_OAI_gNB.sh startRadio.sh
Use an editor to uncomment the line /Radio/startRadio.sh in /root/startexperiment.sh and run:
$ /root/startexperiment.sh
Machine #2 (UE with Telit Module):
Login to the E-VM for the portable node(s) running the UE and navigate to the folder containing all the radio scripts:
$ cd ~/Profiles/ProfileScripts/Radio/
Copy the Telit starter script as startRadio.sh:
$ cp Samples/start_telit.sh startRadio.sh
Use an editor to uncomment the line /Radio/startRadio.sh in /root/startexperiment.sh and run:
$ /root/startexperiment.sh
IP Address Assignment:
The start_telit.sh script automates the Telit FN990A40 module configuration. This is how it works:
Identifies the QMI device and WWAN interface
Sets up the connection:
Sets the device to low-power mode, then online mode
Sets WWAN interface to raw IP mode
Starts network connection with the specified APN ('internet' in our case)
Checks connection status and retrieves network settings
Uses udhcpc to obtain an IP address
The script will attempt to connect and obtain an IP address. If unsuccessful, it will reset the module and try again. Remember that any changes to the script must be compatible with your OAI gNB setup for proper communication between the UE and the network.