The following steps are adapted for the Iris Testbed from the following OAI URL: https://gitlab.eurecom.fr/oai/openairinterface5g/-/wikis/HowToConnectOAIENBWithOAIUEWithoutS1Interface
To prepare the Base Ubuntu 18.04 (low-latency) Image instantiated in this jfed experiment at the Iris testbed, we followed the instructions on the following URL from ETTUS Research: https://kb.ettus.com/Getting_Started_with_4G_LTE_using_Eurecom_OpenAirInterface_(OAI)_on_the_USRP_2974
Step 1 (for new experimenters): Download and install jFed software
Instructions here: https://jfed.ilabt.imec.be/get_started/
Step 2 (for new experimenters): Request A Fed4FIRE+ Account
If you do not have a jfed account, please register at the following URL.
https://doc.fed4fire.eu/getanaccount.html
This information from IMEC should also be useful: https://doc.ilabt.imec.be/ilabt/virtualwall/getting_started.html#getting-an-account
Step 3: OAI 5G RSPEC for 2 VM instance at the Iris testbed
Copy and paste this rspec into jfed. This rspec supports the instantiation of two VM instances at the Iris testbed
<?xml version='1.0'?>
<rspec xmlns="http://www.geni.net/resources/rspec/3" type="request" generated_by="jFed RSpec Editor" generated="2020-07-10T13:24:25.756+01:00" xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1" xmlns:delay="http://www.protogeni.net/resources/rspec/ext/delay/1" xmlns:jfed-command="http://jfed.iminds.be/rspec/ext/jfed-command/1" xmlns:client="http://www.protogeni.net/resources/rspec/ext/client/1" xmlns:jfed-ssh-keys="http://jfed.iminds.be/rspec/ext/jfed-ssh-keys/1" xmlns:jfed="http://jfed.iminds.be/rspec/ext/jfed/1" xmlns:sharedvlan="http://www.protogeni.net/resources/rspec/ext/shared-vlan/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/request.xsd ">
<node client_id="eNB" exclusive="false" component_manager_id="urn:publicid:IDN+iris-open-testbed.connectcentre.ie+authority+am">
<sliver_type name="vm">
<disk_image name="urn:publicid:IDN+iris-open-testbed.connectcentre.ie+image+oai5g_ubuntu-18.04-5.3.0-62-lowlatency-oai-latest-07-07-2020"/>
<flavor_type xmlns="http://iris-testbed.connectcentre.ie/rspec/ext/openstack/1" name="m1.oai.performance.7cpu.25gb-ram"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="210.0" y="100.5"/>
</node>
<node client_id="UE" exclusive="false" component_manager_id="urn:publicid:IDN+iris-open-testbed.connectcentre.ie+authority+am">
<sliver_type name="vm">
<disk_image name="urn:publicid:IDN+iris-open-testbed.connectcentre.ie+image+oai5g_ubuntu-18.04-5.3.0-62-lowlatency-oai-latest-07-07-2020"/>
<flavor_type xmlns="http://iris-testbed.connectcentre.ie/rspec/ext/openstack/1" name="m1.oai.performance.7cpu.25gb-ram-b210"/>
</sliver_type>
<location xmlns="http://jfed.iminds.be/rspec/ext/jfed/1" x="212.0" y="193.5"/>
</node>
</rspec>
Step 4: Download and install the latest OAI5G code [NOTE: always get the latest code]
To compile the latest code from OAI5G eNB, follow these instructions.
1. Build the eNB supporting B210:
git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
cd ~/openairinterface5g/
cd openairinterface5g source oaienv
cd cmake_targets
# no need to specify noS1 as build option
./build_oai -w USRP --eNB
This should start the building process in ~/openairinterface4g/cmake_targets/lte_build_oai
.
Step 5: On the UE - Download and install the latest srsLTE code
git clone https://github.com/srsLTE/srsLTE.git
cd srsLTE
mkdir build
cd build
cmake ../
make
sudo make install
srslte_install_configs.sh user
Edit the ue.conf file
Make sure the following parameters are set.
vi /home/iristest/.config/srslte/ue.conf
dl_earfcn = 3400
[usim]
mode = soft
algo = milenage
opc = 63bfa50ee6523365ff14c1f45f88737d
k = 00112233445566778899aabbccddeeff
imsi = 001010123456780
imei = 353490069873319
Step 6: Start the OAI eNodeB (precompiled on the git version).
The setup should be started with running the OAI eNB first before running the OAI UE. Both OAI eNB and OAI UE are running on LTE FDD Band 7 (DL: 2680MHz, UL: 2560MHz).
Open the ssh terminal in jFed on the eNB node and execute the following instructions:
cd ~/openairinterface5g
source oaienv
cd ~/openairinterface5g/ci-scripts/conf_files
cp enb.band7.tm1.25PRB.usrpb210.conf my-enb.band7.tm1.25PRB.usrpb210.conf
# edit the conf file by replacing all `CI_*IP_ADDR` pattern with valid IP addresses for Magma EPC and OAI ENB
vi my-enb.band7.tm1.25PRB.usrpb210.conf
iristest@enb:~/openairinterface5g/ci-scripts/conf_files$ diff enb.band7.tm1.25PRB.usrpb210.conf my-enb.band7.tm1.25PRB.usrpb210.conf
17c17
< plmn_list = ( { mcc = 208; mnc = 92; mnc_length = 2; } );
---
> plmn_list = ( { mcc = 001; mnc = 01; mnc_length = 2; } );
36c36
< downlink_frequency = 2680000000L;
---
> downlink_frequency = 2685000000L;
177c177
< mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
---
> mme_ip_address = ( { ipv4 = "10.154.50.75";
194c194
< ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
---
> ENB_IPV4_ADDRESS_FOR_S1_MME = "10.154.50.69";
196c196
< ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
---
> ENB_IPV4_ADDRESS_FOR_S1U = "10.154.50.69";
198c198
< ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDR";
---
> ENB_IPV4_ADDRESS_FOR_X2C = "10.154.50.69";
250c250
< FLEXRAN_IPV4_ADDRESS = "CI_MME_IP_ADDR";
---
> FLEXRAN_IPV4_ADDRESS = "10.154.50.75";
iristest@enb:~/openairinterface5g/ci-scripts/conf_files$
# ensure no LTE session already running
sudo kill -9 `ps aux | grep -ie lte | awk '{print $2}' `
cd ~/openairinterface5g/cmake_targets
sudo -E ./lte_build_oai/build/lte-softmodem -O ~/openairinterface5g/ci-scripts/conf_files/my-enb.band7.tm1.25PRB.usrpb210.conf --eNBs.[0].rrc_inactivity_threshold 0 2>&1 | tee ENB.log
By running eNB with pipes tee ENB.log
, it allows you to record the ENB logging to be used for further investigation.
By setting rrc_inactivity_threshold
to 0, it disables the RRC Inactivity timers. This is mandatory with this configuration file.
Step 7: Start the srsLTE UE (precompiled on the git version)
Open the ssh terminal in jFed on the UE node and execute the following instructions:
Start srsUE
On machine 2 (x310ue), run srsUE as follows:
sudo srsue
On UE run the following command. This will ping the SPGW gateway:
ping 172.16.0.1
Troubleshooting Issues
Reboot USB device
Example Error:
[INFO] [B200] Loading firmware image: /usr/share/uhd/images/usrp_b200_fw.hex...
[ERROR] [UHD] Device discovery error: EnvironmentError: IOError: Could not load firmware:
EnvironmentError: IOError: ihex_reader::read(): record hander returned failure code
Error opening UHD: code 11
/home/srslte/srsLTE/lib/src/phy/rf/rf_imp.c.130: No compatible RF frontend found
/home/srslte/srsLTE/lib/src/radio/radio.cc.36: Error opening RF device
Example Solution:
iristest@enb:~/openairinterface5g/cmake_targets/lte_build_oai/build$ dmesg | grep USRP
[ 2.467667] usb 3-1: Product: USRP B200
echo '3-1' |sudo tee /sys/bus/usb/drivers/usb/unbind
echo '3-1' |sudo tee /sys/bus/usb/drivers/usb/bind
Benchmark Test USRP device [send results to ]
cd /usr/local/lib/uhd/examples/
./benchmark_rate --rx_rate 10e6 --tx_rate 10e6 --duration 300