Update l2 nfapi simulator w S1 same machine authored by Raphael Defosseux's avatar Raphael Defosseux
......@@ -24,6 +24,10 @@
6. [Bring Up a second loopback interface](#6-bring-up-a-second-loopback-interface)
7. [Build the eNB](#7-build-the-enb)
8. [Build the UE](#8-build-the-ue)
9. [Initialize the NAS UE Layer](#9-initialize-the-nas-ue-layer)
10. [Start the eNB](#10-start-the-enb)
11. [Start the UE](#11-start-the-ue)
12. [Limitations](#12-limitations)
# 1. Environment #
......@@ -49,7 +53,7 @@ If you are using OAI-EPC ([see on GitHub](https://github.com/OPENAIRINTERFACE/op
The eNB and the UE executables will compiled into 2 separate folders on the same machine `B`.
```bash
$ ssh sudousername@machineA
$ ssh sudousername@machineB
$ git clone https://gitlab.eurecom.fr/oai/openairinterface5g/ enb_folder
$ cd enb_folder
$ git checkout -f v1.0.0
......@@ -60,7 +64,7 @@ $ cp -Rf enb_folder ue_folder
# 4. Setup of the USIM information in UE folder #
```bash
$ ssh sudousername@machineA
$ ssh sudousername@machineB
$ cd ue_folder
# Edit openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf with your preferred editor
```
......@@ -120,7 +124,7 @@ You can repeat the operation for as many users you want to test with.
## 5.1. The eNB Configuration file ##
```bash
$ ssh sudousername@machineA
$ ssh sudousername@machineB
$ cd enb_folder
# Edit ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf with your preferred editor
```
......@@ -189,7 +193,7 @@ Last, the S1 interface shall be properly set.
## 5.2. The UE Configuration file ##
```bash
$ ssh sudousername@machineA
$ ssh sudousername@machineB
$ cd ue_folder
# Edit ci-scripts/conf_files/ue.nfapi.conf with your preferred editor
```
......@@ -217,7 +221,7 @@ L1s = (
A second loopback interface is used to connect the eNB and the UEs.
```bash
$ ssh sudousername@machineA
$ ssh sudousername@machineB
$ sudo ifconfig lo: 127.0.0.2 netmask 255.0.0.0 up
```
......@@ -231,9 +235,9 @@ $ cd enb_folder
$ source oaienv
$ cd cmake_targets
# If you test less than 16 UEs, type below command.
$ sudo -E ./build_oai --eNB -t ETHERNET -c
$ ./build_oai --eNB -t ETHERNET -c
# If you test more than 16 UEs, type below command and this command also can be used in case of less than 16 UEs.
$ sudo -E ./build_oai --eNB -t ETHERNET -c --mu
$ ./build_oai --eNB -t ETHERNET -c --mu
```
# 8. Build the UE #
......@@ -241,20 +245,20 @@ $ sudo -E ./build_oai --eNB -t ETHERNET -c --mu
Open a second terminal:
```bash
$ ssh sudousername@machineA
$ ssh sudousername@machineB
$ cd ue_folder
$ source oaienv
$ cd cmake_targets
# If you test less than 16 UEs, type below command.
$ sudo -E ./build_oai --UE -t ETHERNET -c
$ ./build_oai --UE -t ETHERNET -c
# If you test more than 16 UEs, type below command and this command also can be used in case of less than 16 UEs.
$ sudo -E ./build_oai --UE -x -t ETHERNET -c --musim
$ ./build_oai --UE -x -t ETHERNET -c --musim
```
After finishing building UE(s), some files are generated in ue_folder/targets/bin/ and these files are necessary in cmake_targets.
```bash
$ ssh sudousername@machineA
$ ssh sudousername@machineB
$ cd ue_folder/targets/bin/
$ cp .u* ../../cmake_targets/
$ cp usim ../../cmake_targets/
......@@ -266,8 +270,62 @@ $ cp nvram ../../cmake_targets/
In the 2nd terminal:
```bash
$ ssh sudousername@machineA
$ ssh sudousername@machineB
$ cd ue_folder/cmake_targets/tools
$ source init_nas_s1 UE
```
And start the EPC on machine `A`.
```bash
$ ssh sudousername@machineA
# Start the EPC
```
# 10. Start the eNB #
In the first terminal (the one you used to build the eNB):
```bash
$ ssh sudousername@machineB
$ cd enb_folder/cmake_targets
$ sudo -E ./lte_build_oai/build/lte-softmodem -O ../ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf > enb.log 2>&1
```
If you don't use redirection, you can test but many logs are printed on the console and this may affect performance of the L2-nFAPI simulator.
We do recommend the redirection in steady mode once your setup is correct.
# 11. Start the UE #
In the second terminal (the one you used to build the UE):
```bash
$ ssh sudousername@machineB
$ cd ue_folder/cmake_targets
# Test 64 UEs, 64 threads in FDD mode
$ sudo -E ./lte_build_oai/build/lte-uesoftmodem -O ../ci-scripts/conf_files/ue.nfapi.conf --L2-emul 3 --num-ues 64 --nums-ue-thread 64 > ue.log 2>&1
# Test 64 UEs, 64 threads in TDD mode
$ sudo -E ./lte_build_oai/build/lte-uesoftmodem -O ../ci-scripts/conf_files/ue.nfapi.conf --L2-emul 3 --num-ues 64 --nums-ue-thread 64 -T 1 > ue.log 2>&1
# The "-T 1" option means TDD config
```
- The number of UEs can set by using `--num-ues` option and the maximum UE number is 255 (with the `--mu*` options, otherwise 16).
- The umber of threads can set with the `--nums-ue-thread`. This number **SHALL NOT** be greater than the number of UEs.
- How many UE that can be tested depends on hardware (server , PC, etc) performance in your environment.
# 12. Test with ping #
In a third terminal, after around 10 seconds, the UE(s) shall be connected to the eNB:
```bash
$ ssh sudousername@machineA
# Ping UE0 IP address based on the EPC pool used: in this example:
$ ping -c 20 192.168.200.2
# Ping UE1 IP address based on the EPC pool used: in this example:
$ ping -c 20 192.168.200.4
```
# 13. Limitations #
Testing on the CI process is currently limited at time of writing. Improvements will be made soon.