---+ How to Connect OAI eNB (USRP B210) with OAI UE (USRP B210) without S1 Interface
# How to Connect OAI eNB (USRP B210) with OAI UE (USRP B210) without S1 Interface
This tutorial is intended to setup the OAI eNB and OAI UE without the S1 interface and allowed the UE to connect to eNB. You need 2 Ubuntu machine and svn version r7753 of OAI for this tutorial.
This tutorial is intended to setup the OAI eNB and OAI UE without the S1 interface and allowed the UE to connect to eNB. You need 2 Ubuntu machine and svn version r7753 of OAI for this tutorial.
The procedures includes the following:
The procedures includes the following:
1 Build the eNB without S1 interface in 1st Ubuntu machine.
1. Build the eNB without S1 interface in 1st Ubuntu machine.
1 Build the UE without S1 interface in 2nd Ubuntu machine.
1. Build the UE without S1 interface in 2nd Ubuntu machine.
1 Bring up the OAI Interface.
1. Bring up the OAI Interface.
1 Run the eNB.
1. Run the eNB.
1 Run the UE.
1. Run the UE.
1 Once UE attched to eNB, do some throughput test or ping.
1. Once UE attched to eNB, do some throughput test or ping.
%TOC%
---++ 1. Installing, Building and Running the OAI eNB and the OAI UE without S1 Interface
## 1. Installing, Building and Running the OAI eNB and the OAI UE without S1 Interface
Checklist prior to OAI installation:
Checklist prior to OAI installation:
* Ubuntu 14.04 LTS (32-bit or 64-bit)
* Ubuntu 14.04 LTS (32-bit or 64-bit)
*[[OpenAirKernelMainSetup][Kernel setup ]]
*[Kernel setup](OpenAirKernelMainSetup)
* Disable C-states from BIOS (or from GRUB)
* Disable C-states from BIOS (or from GRUB)
* Disable CPU freq. scaling
* Disable CPU freq. scaling
* Install low-latency kernel
* Install low-latency kernel
* Install _subversion_ with the command:
* Install _subversion_ with the command:
*__sudo apt-get install subversion__ for SVN version
*`sudo apt-get install subversion` for SVN version
* Install _git_ with the command:
* Install _git_ with the command:
*__sudo apt-get install git__ for GIT version.
*`sudo apt-get install git` for GIT version.
* Install UHD driver for USRP Hardware B210 using the following commands:
* Install UHD driver for USRP Hardware B210 using the following commands:
* __Run Autobuild for installing missing packages:__
sudo apt-get update
*<em>The insructions are here,</em><spanstyle="color: #7a4707; font-size: 10px; background-color: transparent;"><ahref="AutoBuild"title="https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/AutoBuild">https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/AutoBuild</a></span>
```
Note: UHD related information can be found at<em>: </em>http://files.ettus.com/manual/page_install.html#install_linux
* Run Autobuild for installing missing packages: the instructions are at [AutoBuild](AutoBuild)
---+++ 1.1 Installation eNB on 1st Ubuntu Machine
---++++ Step 1: Check out the GIT trunk version of OAI
Note: UHD related information can be found at: http://files.ettus.com/manual/page_install.html#install_linux
### 1.1 Installation eNB on 1st Ubuntu Machine
#### Step 1: Check out the GIT trunk version of OAI
Download the source codes using gitlab:
Download the source codes using gitlab:
<pre>mkdir -p ~/openairinterface5g
</pre><pre><spanstyle="color: #000000; font-size: small; white-space: normal;">The instruction can be found at:</span></pre><pre><ahref="GetSources"title="https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/GetSources">https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/GetSources</a></pre>
```shell
mkdir-p ~/openairinterface5g
```
The instruction can be found at: [GetSources](GetSources).
---++++ Step 2: Run Automated Build Script for eNB without S1 Interface
#### Step 2: Run Automated Build Script for eNB without S1 Interface
Build the eNB supporting B210:
Build the eNB supporting B210:
<pre>cd ~/openairinterface5g/
source oaienv</pre><pre>cd cmake_targets
./build_oai -w USRP --eNB --noS1 -x</pre>
This should starts the building process in ~/openairinterface4g/cmake_targets/lte_noS1_build_oai.
```shell
cd ~/openairinterface5g/
source oaienv
cd cmake_targets
./build_oai -w USRP --eNB--noS1-x
```
This should starts the building process in `~/openairinterface4g/cmake_targets/lte_noS1_build_oai`.
Please refer to [AutoBuild](AutoBuild) if you run into problems.
* Please refer the AutoBuild if you run into problem, here:
#### Step 1: Check out the GIT trunk version of OAI
---++++ Step 1: Check out the GIT trunk version of OAI
Download the source codes using gitlab:
Download the source codes using gitlab:
<pre>mkdir -p ~/openairinterface5g</pre><pre><spanstyle="color: #000000; font-size: small; white-space: normal;">The instruction can be found at:</span></pre><pre>https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/GetSources</pre>
---++++ Step 2: Run Automated Build Script for UE without S1 Interface
```shell
mkdir-p ~/openairinterface5g
```
The instruction can be found at: [GetSources](GetSources).
#### Step 2: Run Automated Build Script for UE without S1 Interface
Build the UE supporting B210:
Build the UE supporting B210:
<pre>cd ~/openairinterface5g
```shell
cd ~/openairinterface5g
source oaienv
source oaienv
cd cmake_targets
cd cmake_targets
./build_oai -w USRP --UE --noS1 -x</pre>
./build_oai -w USRP --UE--noS1-x
```
This should starts the building process in `~/openairinterface4g/cmake_targets/lte_noS1_build_oai`.
Please refer to [AutoBuild](AutoBuild) if you run into problems.
## 2. Running OAI eNB and OAI UE without S1 Interface
This should starts the building process in ~/openairinterface4g/cmake_targets/lte_noS1_build_oai.
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 5 (DL: 875MHz, UL: 830MHz).
* Please refer the AutoBuild if you run into problem, here:
---++ 2. Running OAI eNB and OAI UE without S1 Interface
#### Step 1: Loading the `nasmesh` Kernel Module and Setup the OAI Interface
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 5 (DL: 875MHz, UL: 830MHz).
Loading the `nasmesh.ko` to setup the radio bearer and providing the IP connectivity between eNB and attached UE.
---+++ 2.1 Run eNB on 1st Ubuntu Machine
---++++ Step 1: Loading the _nasmesh_ Kernel Module and Setup the OAI Interface
Loading the nasmesh.ko to setup the radio bearer and providing the IP connectivity between eNB and attached UE.
```shell
<pre>cd ~/openairinterface5g/
cd ~/openairinterface5g/
source oaienv
source oaienv
source ./cmake_targets/tools/init_nas_nos1 eNB
source ./cmake_targets/tools/init_nas_nos1 eNB
</pre>
```
You should now have the _oai0_ interface with IP address 10.0.1.1 netmask 255.255.255.0.
You should now have the `oai0` interface with IP address 10.0.1.1 netmask 255.255.255.0.
<strong>Note: </strong>In case that you are not able to load the nasmesh.ko, please make sure that OPENAIR_DIR is correctly set in the script.
**Note:** In case that you are not able to load the `nasmesh.ko`, please make sure that `OPENAIR_DIR` is correctly set in the script.
---++++ Step 2: Running the eNB
#### Step 2: Running the eNB
The command of running the eNB should be as follow:
The command of running the eNB should be as follow:
By running eNB with pipes "tee ENB.log", allow you to record the ENB logging to be used for further investigation.
```shell
cd cmake_targets
sudo-E ./lte_noS1_build_oai/build/lte-softmodem-nos1 -d-O$OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf 2>&1 | tee ENB.log
```
By running eNB with pipes `tee ENB.log`, allow you to record the ENB logging to be used for further investigation.
**Note:** We have put a duplexer in the eNB to avoid background noise closed to
saturating the receiver. You should get the noise floor similar to the diagram as shown below:
<strong>Note: </strong>We have put a duplexer in the eNB to avoid background noise closed to saturating the receiver. You should get the noise floor similar to the diagram as shown below:
sudo-E ./lte_noS1_build_oai/build/lte-softmodem-nos1 -U-C2680000000-r25--ue-scan-carrier--ue-txgain 70 --ue-rxgain 80 -d>&1 | tee UE.log
```
</pre>
By running UE with pipes `tee UE.log`, allow you to record the UE logging to be used for further investigation.
By running UE with pipes "tee UE.log", allow you to record the UE logging to be used for further investigation.
For the UE to able to sync with eNB, the timing advance needs to set 0 in FDD
Band 5. (openair_daq_vars.timing_advance = 0). That patch can be found at [\[1\]][1] and use `-A 0` for setting timing advance to 0.
For the UE to able to sync with eNB, the timing advance needs to set 0 in FDD Band 5. (openair_daq_vars.timing_advance = 0). That patch can be found at [1] and use "-A 0" for setting timing advance to 0.
### 2.3 Results of Successful UE attached to eNB
---+++ 2.3 Results of Successful UE attached to eNB
If the user is successfully attached to the eNB, you should observe the RRCConnectionReconfigurationComplete message sent by the UE and the UE state is RRC_RECONFIGURED. The example of the UE log file can be found at [[%ATTACHURL%/UE.log][UE.log]].
If the user is successfully attached to the eNB, you should observe the
RRCConnectionReconfigurationComplete message sent by the UE and the UE
state is RRC_RECONFIGURED. The example of the UE log file can be found
at [UE.log](HowToConnectOAIENBWithOAIUEWithoutS1Interface/UE.log).
The eNB will also indicate that the receiving of RRCConnectionReconfigurationComplete message from the UE and the UE state is moved to RRC_RECONFIGURED. The example of the eNB log file with OAI UE successfully attached can be found at [[%ATTACHURL%/ENB.log][ENB.log]].
The eNB will also indicate that the receiving of RRCConnectionReconfigurationComplete
message from the UE and the UE state is moved to RRC_RECONFIGURED. The example of
the eNB log file with OAI UE successfully attached can be found
at [ENB.log](HowToConnectOAIENBWithOAIUEWithoutS1Interface/ENB.log).
When there is traffic going on between the UE and the eNB, the following stats, L2 stats and LTE UL Scope can be observed:
When there is traffic going on between the UE and the eNB, the following stats, L2 stats and LTE UL Scope can be observed:
---++ 3. Network Testing between OAI eNB and OAI UE without S1 Interface
## 3. Network Testing between OAI eNB and OAI UE without S1 Interface
Once the UE is attached to the eNB, you should able to do simple ping test or iperf test.
Once the UE is attached to the eNB, you should able to do simple ping test or iperf test.
---+++ 3.1 Ping Test
---++++ Step 1: Ping from UE to eNB
Open the terminal and type the "ping 10.0.1.1 -c 10". This means sending 10 ICMP echo request packets from UE to eNB and expecting ICMP echo reply packets from eNB to UE.
### 3.1 Ping Test
#### Step 1: Ping from UE to eNB
Open the terminal and type the `ping 10.0.1.1 -c 10`. This means sending
10 ICMP echo request packets from UE to eNB and expecting ICMP echo reply packets from eNB to UE.
Open the terminal and type the "ping 10.0.1.9 -c 10". This means sending 10 ICMP echo request packets from eNB to UE and expecting ICMP echo reply packets from UE to eNB.
#### Step 2: Ping from eNB to UE
Open the terminal and type the `ping 10.0.1.9 -c 10`. This means sending
10 ICMP echo request packets from eNB to UE and expecting ICMP echo reply packets from UE to eNB.
This is due to the <spanstyle="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;">machine doesn't support avx2 [2] and generates illegal instructions. EURECOM will soon </span><spanstyle="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;">introduce some new SIMD code which exploits the AVX2.</span>
This is due to the <spanstyle="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;">machine doesn't support avx2 [2] and generates illegal instructions. EURECOM will soon </span><spanstyle="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;">introduce some new SIMD code which exploits the AVX2.</span>