1) Experiment Overview
The minimal representative working environment for this experiment is with LW1 as one AFRN, LW2 as a second AFRN, and any APRN1, which starts at LW1. At the end of the experiment, the user can view logs and test results. The main goal of this experiment is to provide a complete end-to-end LTE network, with simulated eNB travel to the middle of two UEs. This will test traffic throughput between two UEs and an aerial eNB. This experiment can be run in EMULATION or TESTBED modes. This manual specifically concerns EMULATION mode.
This mode sets up the evolved packet core (EPC) and eNodeB (eNB) on one aerial node and two user equipments (UEs), each on separate ground nodes. A connection will be established between each UE and the eNB. If the default configuration settings are used, the radios will operate within the 3.3 - 3.55 GHz spectrum (Band 22) at 5 MHz bandwidth (25 Resource Blocks) using frequency division duplexing (FDD).
This experiment optionally supports ping, iPerf, and MGEN as traffic scripts.
Ubuntu version 22.04
srsLTE version 23.04
UHD version 4.3
EARFCN (center frequency): this sets the center frequency of the downlink transmission for 3GPP supported bands. The uplink center frequency is automatically set, and it depends on whether the band is TDD (same uplink and downlink frequency) or FDD (uplink and downlink offset by the channel spacing).
LTE system bandwidth, configured as resource blocks (RBs): supported values are 6 RBs for 1.4 MHz channel bandwidth, 15 RBs for 3 MHz, 25 RBs for 5 MHz, 50 RBs for 10 MHz, 75 RBs for 15 MHz and 100 RBs for 20 MHz.
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 the Tx/Rx isolation.
An experimenter must run the eNB on a portable node. Login to the E-VM corresponding to the portable node. Navigate to the folder containing all the radio scripts:
$ cd /root/Profiles/ProfileScripts/Radio
Copy the srsRAN SISO script as startRadio.sh:
$ cp Samples/startSRSRAN-SISO-EPCandENB.sh startRadio.sh
Use an editor to uncomment the line ./Radio/startRadio.sh in /root/startexperiment.sh.
Navigate to the Vehicle directory:
$ cd /root/Profiles/ProfileScripts/Vehicle
Copy preplanned trajectory to startVehicle.sh:
$ cp ./Samples/startPreplannedTrajectory.sh ./startVehicle.sh
Change the following line in ./startVehicle.sh in your chosen text editor:
from: export MISSION=$PROFILE_DIR"/vehicle_control/PreplannedTrajectory/Missions/default.plan"
to: export MISSION=$PROFILE_DIR"/vehicle_control/PreplannedTrajectory/Missions/lw1-to-lw2.plan"
Both UEs must run on a fixed node. Login to the E-VM corresponding to the fixed nodes. Navigate to the folder containing all the Radio scripts:
$ cd /root/Profiles/ProfileScripts/Radio
Copy the srsRAN SISO script as startRadio.sh:
$ cp Samples/startSRSRAN-SISO-UE.sh startRadio.sh
Use an editor to uncomment the line ./Radio/startRadio.sh in /root/startexperiment.sh.
Perform the above steps for each of the nodes intended as UEs
The experiment can be started from the OEO Console.
The shell script /root/Profiles/ProfileScripts/Samples/startSRSRAN-SISO-EPCandENB.sh calls two scripts /root/Profiles/ProfileScripts/Radio/Helpers/startEPC.sh and /root/Profiles/ProfileScripts/Radio/Helpers/startENB.sh which can be edited by the experimenter to modify the parameters of the core network and base station.
tx_gain (in dB) controls the gain of the USRP transmitter. Reducing the value will reduce the strength of the radio signal (and correspondingly the transmission range). Increasing it may lead to distortions (see results section below).
rx_gain (in dB) controls the gain of the USRP receiver. Similar to the tx_gain, significant changes can lead to reduced range or distortions on the received signal.
dl_freq and ul_freq are the downlink and uplink frequencies respectively. Changes at the eNB frequencies must be coordinated with changes at the UE frequencies (or they will never find each other).
n_prb controls the number of resource blocks
The shell script /root/Profiles/ProfileScripts/Samples/startSRSRAN-SISO-UE.sh calls the script /root/Profiles/ProfileScripts/Radio/Helpers/startUE.sh which can be edited by the experimenter to modify the parameters of the UE:
tx_gain (in dB) controls the gain of the USRP transmitter. Reducing the value will reduce the strength of the radio signal (and correspondingly the transmission range). Increasing it may lead to distortions (see results section below).
rx_gain (in dB) controls the gain of the USRP receiver. Similar to the tx_gain, significant changes can lead to reduced range or distortions on the received signal.
dl_freq and ul_freq are the downlink and uplink frequencies respectively. Changes at the UE frequencies must be coordinated with changes at the eNB frequencies (or they will never find each other).
imsi is setup to values that correspond to the eNB setup in the user_db.csv. By default, the imsi value setup the script /root/Profiles/ProfileScripts/Radio/Helpers/startUE.sh, which defaults to 1010123456700 + $node_num, meaning 10101234567xy where xy is the node number (e.g., xy=03 for node 3). This imsi number is then used by the eNB to assign an IP address to the UE (upon connecting to the eNB), by looking up the imsi in the file user_db.csv as described in section 4.1.1) SRSRan Experiments. Note that changes in the imsi values without a corresponding change in user_db.csv will likely lead to random IP assignments for the UEs.
The bash script startUE.sh assigns unique international mobile subscriber identities (IMSIs) to UEs based on their node numbers. The mapping between the IMSI and the IP address is defined in a file /root/.config/srsran/user_db.csv on the EPC side. Based on this mapping the network elements are assigned the following IP addresses:
eNB is assigned 172.16.0.1
UE at node number 1 is assigned 172.16.0.100
UE at node number 2 is assigned 172.16.0.2
UE at node number 3 is assigned 172.16.0.3
...
UE at node number 99 is assigned 172.16.0.99
For advanced users, the IP address of the UEs can be controlled as documented in section 4.1.1) SRSRan Experiments.
Description: Ping measures the round trip time it takes for a small data packet to be transmitted from a source node to another node and back. The ping time is measured in milliseconds (ms).
The IP assignment process is described in the IP Address Assignment subsection (above).
The procedure of generating ping traffic is given here. No special setup is required at the target node.
Description: iPerf has client and server functionality and can create data streams to measure the throughput and packet loss between two nodes.
The IP assignment process is described in the IP Address Assignment subsection (above).
Note: This experiment requires using a specialized iPerf script to allow for multiple clients to the eNB
How to run:
Enter the Traffic directory:
$ cd /root/Profiles/ProfileScripts/Traffic
Copy the necessary scripts for the eNB and UE:
$ cp ./Samples/startIperf.sh ./startTraffic.sh
Then modify the start_experiment.sh script and add the following line:
on the eNB
./startTraffic.sh server ogstun
on the UE
./startTraffic.sh client tun_srsue
These commands pass the iperf process type (client or server) alongside the net interface name
Description: Multiple Generator sends packets over a channel and uses the traffic flow to generate reports. This report provides a variety of channel quality metrics such as bandwidth and latency. It can be used to simulate both TCP and UDP traffic with various distributions and quantities.
Example MGEN configs are included in the traffic directory, additional documentation on creating MGEN configs can be found in the official documentation
How to run:
Enter the Traffic directory:
$ cd /root/Profiles/ProfileScripts/Traffic
Copy the necessary scripts for the eNB:
$ cp ./Samples/startMgenRx.sh ./startTraffic.sh
Copy the necessary scripts for the UE:
$ cp ./Samples/startMgenTx.sh ./startTraffic.sh
Both in emulation and testbed, the results are automatically saved in files /root/Results/ of each node that has the running radios or traffic scripts. Furthermore, in emulation mode the results can be seen live by switching the corresponding screens.
The logging/ trace data for the eNodeB, shown in Figures 1 and 2, and for the EPC, shown in Figure 3, will be printed to the /root/Results folder.
The trace shows typical radio parameters, specific to the protocol. In this case, the protocol is LTE, and the following uplink and downlink specific parameters are provided by srsran:
Radio Network Temporary Identity (RNTI) is related to the network ID.
Channel quality indicator (CQI) is a value between 1 and 15 indicating the quality of the channel.
Rank indicator (RI) relates to the rank used for multi-antenna/ MIMO configurations.
Modulation and coding scheme (MCS) refers to adaptive modulation and coding that LTE supports to adjust the bit loading to the given channel conditions.
OK/NOK are positive and negative acknowledgements.
BLER (%) is the percentage of dropped blocks. It should be below 10% for the system to function according to the specifications.
PUSCH and PUCCH refer to the physical uplink shared and control channels and here measure their SNRs.
PHR is the power headroom.
The bitrate (brate) is the throughput in bits per second (k for kilo, M for Mega).
Fig. 1. srsENB.log with trace data for 2 UEs
Fig. 2. Logging at the eNodeB (srsENB.log)
Fig. 3. Logging at the EPC (srsEPC.log)
Fig. 4. iPerf results for UE1 (port 5001)
Fig. 5. iPerf results for UE2 (port 5002)
Achieved throughput in Mbps plotted as blue scattered (left Y-axis) and distance from LW1 in meters plotted as red line (right Y-axis) over time (X-axis)
Achieved throughput in Mbps plotted as blue scattered (left Y-axis) and distance from LW1 in meters plotted as red line (right Y-axis) over time (X-axis)
Achieved throughput in Mbps plotted as blue scattered (left Y-axis) and distance from LW1 in meters plotted as red line (right Y-axis) over time (X-axis)
Measured pingtime plotted as blue scattered in ms (left Y-axis) and distance from LW1 in meters plotted as red line (right Y-axis) over time (X-axis)
Measured pingtime plotted as blue scattered in ms (left Y-axis) and distance from LW1 in meters plotted as red line (right Y-axis) over time (X-axis)