Import all content from twiki. authored by Cedric Roux's avatar Cedric Roux
This was done by copying by hand. There might be errors or missing materials.

It might be better to redo the import using source material coming directly
from the harddisk of twiki.eurecom.fr. To see with IT department.

There still remains to convert those files to MarkDown format.
---+ 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.
The procedures includes the following:
1 Build the eNB without S1 interface in 1st Ubuntu machine.
1 Build the UE without S1 interface in 2nd Ubuntu machine.
1 Bring up the OAI Interface.
1 Run the eNB.
1 Run the UE.
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
Checklist prior to OAI installation:
* Ubuntu 14.04 LTS (32-bit or 64-bit)
* [[OpenAirKernelMainSetup][Kernel setup ]]
* Disable C-states from BIOS (or from GRUB)
* Disable CPU freq. scaling
* Install low-latency kernel
* Install _subversion_ with the command:
* __sudo apt-get install subversion__ for SVN version
* Install _git_ with the command:
* __sudo apt-get install git__ for GIT version.
* Install UHD driver for USRP Hardware B210 using the following commands:
* <div id="_mcePaste"> __sudo bash -c 'echo "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/`lsb_release -cs` `lsb_release -cs` main" &gt; /etc/apt/sources.list.d/ettus.list'__ </div>
* <div id="_mcePaste"> __sudo apt-get install -t `lsb_release -cs` uhd__ </div>
* <div id="_mcePaste"> __sudo apt-get update__ </div>
* __Run Autobuild for installing missing packages:__
* <em>The insructions are here,</em><span style="color: #7a4707; font-size: 10px; background-color: transparent;"><a href="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
---+++ 1.1 Installation eNB on 1st Ubuntu Machine
---++++ Step 1: Check out the GIT trunk version of OAI
Download the source codes using gitlab:
<pre>mkdir -p ~/openairinterface5g
</pre> <pre><span style="color: #000000; font-size: small; white-space: normal;">The instruction can be found at:</span></pre> <pre><a href="GetSources" title="https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/GetSources">https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/GetSources</a></pre>
---++++ Step 2: Run Automated Build Script for eNB without S1 Interface
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.
* Please refer the AutoBuild if you run into problem, here:
<pre>https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/AutoBuild</pre>
---+++ 1.2 Installation UE on 2nd Ubuntu Machine
---++++ Step 1: Check out the GIT trunk version of OAI
Download the source codes using gitlab:
<pre>mkdir -p ~/openairinterface5g</pre> <pre><span style="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
Build the UE supporting B210:
<pre>cd ~/openairinterface5g
source oaienv
cd cmake_targets
./build_oai -w USRP --UE --noS1 -x</pre>
This should starts the building process in ~/openairinterface4g/cmake_targets/lte_noS1_build_oai.
* Please refer the AutoBuild if you run into problem, here:
<pre>https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/AutoBuild</pre>
---++ 2. Running OAI eNB and OAI UE without S1 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).
---+++ 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.
<pre>cd ~/openairinterface5g/
source oaienv
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.
<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.
---++++ Step 2: Running the eNB
The command of running the eNB should be as follow:
<pre>cd cmake_targets</pre> <pre>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&gt;&1 | tee ENB.log</pre>
By running eNB with pipes "tee ENB.log", allow you to record the ENB logging to be used for further investigation.
<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:
<pre><img alt="eNB-noise-floor-1.png" src="https://twiki.eurecom.fr/twiki/pub/Sandbox/TestTopic1/eNB-noise-floor-1.png" /></pre>
The eNB's configuration file used for the testing can be found at [[%ATTACHURL%/enb.band5.tm1.usrpb210.conf][enb.band5.tm1.usrpb210.conf]].
---+++ 2.2 Run UE on 2nd 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.
<pre>cd ~/openairinterface5g/
source ./targets/bin/init_nas_nos1 UE
</pre>
You should now have the _oai0_ interface with IP address 10.0.1.9 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.
---++++ Step 2: Running the UE
The command of running the UE should be as follow:
<pre>cd cmake_targets
sudo -E ./lte_noS1_build_oai/build/lte-softmodem-nos1 -U -C2680000000 -r25 --ue-scan-carrier --ue-txgain 70 --ue-rxgain 80 -d &gt;&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.
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
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]].
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]].
When there is traffic going on between the UE and the eNB, the following stats, L2 stats and LTE UL Scope can be observed:
LTE UL Scope eNB:
<img alt="LTEULScopeL.png" src="https://twiki.eurecom.fr/twiki/pub/OpenAirInterface/HowToConnectOAIENBWithOAIUEWithoutS1Interface/LTEULScopeL.png" />
Stats:
<img alt="LTEStats.png" src="https://twiki.eurecom.fr/twiki/pub/OpenAirInterface/HowToConnectOAIENBWithOAIUEWithoutS1Interface/LTEStats.png" />
L2 Stats:
<img alt="LTEl2Stats.png" src="https://twiki.eurecom.fr/twiki/pub/OpenAirInterface/HowToConnectOAIENBWithOAIUEWithoutS1Interface/LTEl2Stats.png" />
When there is traffic going on between the UE and the eNB, the following stats and LTE DL Scope UE can be observed:
LTE DL Scope UE:
<img alt="LTEDLScopeL.png" src="https://twiki.eurecom.fr/twiki/pub/OpenAirInterface/HowToConnectOAIENBWithOAIUEWithoutS1Interface/LTEDLScopeL.png" />
Stats:
<img alt="LTEDLStatsL.png" src="https://twiki.eurecom.fr/twiki/pub/OpenAirInterface/HowToConnectOAIENBWithOAIUEWithoutS1Interface/LTEDLStatsL.png" />
---++ 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.
---+++ 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.
You should see somethings, like that:
<img alt="PING-UE-eNB.png" src="https://twiki.eurecom.fr/twiki/pub/Sandbox/ChunYeowYeohSandbox/PING-UE-eNB.png" />
---++++ 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.
You should see somethings, like that:
<img alt="PING-eNB-UE.png" src="https://twiki.eurecom.fr/twiki/pub/Sandbox/ChunYeowYeohSandbox/PING-eNB-UE.png" />
---+++ 3.2 Iperf Test
---++++ UDP Test from UE to eNB
Open the terminal in eNB and type the "iperf -s -i 1 -u".
Next, open the terminal in UE and type the "iperf -c 10.0.1.1 -i 1 -u -t 10 -b 1M". 1M means 1Mbps UDP throughput generated from UE to eNB.
The following results can be observed:
<img alt="IPerf-ENB.png" src="https://twiki.eurecom.fr/twiki/pub/Sandbox/ChunYeowYeohSandbox/IPerf-ENB.png" />
<img alt="IPerf-UE.png" src="https://twiki.eurecom.fr/twiki/pub/Sandbox/ChunYeowYeohSandbox/IPerf-UE.png" />
---++ Duplex and Antenna:
The picture of antenna [3] used for this testing and duplexer as follow:
<img alt="USRPduplexer.png" src="https://twiki.eurecom.fr/twiki/pub/OpenAirInterface/HowToConnectOAIENBWithOAIUEWithoutS1Interface/USRPduplexer.png" />
<h2>
<span style="font-size: 19.8899993896484px; line-height: 1em;">Bugs:</span>
</h2>
[1] If you encounter the following errors reported by , please switch to the svn trunk version 7763:
<span style="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;">[PHY][I][pbch_detection] [UE0] Initial sync: starting PBCH detection (rx_offset 71032)</span><span style="color: #500050; font-family: arial, sans-serif; font-size: 12.8000001907349px;"><br />Program received signal SIGILL, Illegal instruction.<br /></span><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;">[Switching to Thread 0x7fffd7fff700 (LWP 18558)]</span><br /><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;">multadd_real_vector_complex_</span><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;">scalar (x=x@entry=0xb97bc0 &lt;filt24_0&gt;, alpha=alpha@entry=</span><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;">0x7fffd7ffe1f0,</span><br /><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;"> y=y@entry=0x354d91f0, N=N@entry=24) at /home/openairlte/openair4G/</span><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;">openair1/PHY/TOOLS/cmult_sv.c:</span><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;">94</span><br /><span style="color: #500050; font-family: arial, sans-serif; font-size: 12.8000001907349px;">94 alpha_r_128 = set1_int16(alpha[0]);</span>
This is due to the <span style="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><span style="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;">introduce some new SIMD code which exploits the AVX2.</span>
<span style="color: #222222; font-family: arial, sans-serif; font-size: 12.8000001907349px;"> </span>
---++ References:
[1] https://github.com/chunyeow/openairinterface5g/commit/72a8159c067517d7a7d42659f1c36c03840f3331
<span style="color: #000000;">[2] </span>https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2
[3] http://www.ettus.com/product/details/VERT900
---++ Acknowledgements:
__This work was supported by <a target="_blank" href="http://www.tmrnd.com.my/" title="TMRND">Telekom Research & Development Sdn. Bhd.</a>__
-- User.ChunYeowYeoh - 28 Jul 2015