=== OAI Remote Radio Head (RRH) === [[TOC(noheading, Tutorials/g0WmLTE*, depth=3)]] ==== Objective ==== In this tutorial, we demonstrate the operation of a split eNB, with one node managing a RF device, and sending I/Q samples to another node for baeband processing. We will use the following resources: * node18-2.grid.orbit-lab.org as the RRH * node18-1.grid.orbit-lab.org as the eNB * node19-3.grid.orbit.lab.org as a client ==== Basic Setup ==== 1. Execute the following commands on the grid console, from separate ssh sessions (They can be done at the same time) 1. {{{ omf load -t node18-2,node18-1 -i oai-rrh.ndz }}} 1. {{{ omf load -t node19-3 }}} 1. After they are imaged, turn the nodes on 1. {{{ omf tell -a on -t node18-2,node18-1,node19-3 }}} 1. Open a separate ssh session to each device (i.e. three ssh windows): 1. {{{ ssh root@node18-2.grid.orbit-lab.org }}} 1. {{{ ssh root@node18-1.grid.orbit-lab.org }}} 1. {{{ ssh root@node19-3.grid.orbit-lab.org }}} 1. On node18-2 1. Run script {{{ ./quickbuild_rrh.sh }}} 1. Run script {{{ ./run_rrh.sh }}} 1. On node18-1 1. Run script {{{ ./quickbuild_enb.sh }}} 1. Run script {{{ ./run_enb.sh }}} 1. If you have trouble running or connecting to the MME, examine the following: 1. on the eNB, open the relevant file in the conf folder. 1. ensure the lines {{{ENB_IPV4_ADDRESS_FOR_S1_MME}}} and {{{ENB_IPV4_ADDRESS_FOR_S1U}}} match the node's interface address. 1. Enter the IP of an available MME for {{{ mme_ip_address = ( { ipv4 = "10.3.0.250"}}} , you may need to modify this if you aren't using the default ORBIT MME. 1. After executing both run scripts, you should see the RRH node load a USRP image, and the eNB node start printing log messages. 1. On node19-3 1. Follow the instructions from the [wiki:Tutorials/g0WmLTE/Tutorial3 COTS UE tutorial] to connect the Netgear LTE device with the basestation. ==== Modify Transport We will use node18-3 as a bridge between the eNB and the RRH to experiment with fronthaul transport requirements. However, the latency added by linux software bridging puts us right on the edge of workability for a simple I/Q transport based RRH split. NGFI or other splits may be more workable. See [https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/how-to-connect-cots-ue-to-oai-enb-via-ngfi-rru OAI NGFI RRU] for more information. 1. Image and configure node 1. {{{ omf load -t node18-3 }}} 1. {{{ ssh root@node18-3.grid.orbit-lab.org }}} 1. {{{ apt-get update }}} 1. {{{ apt-get install vlan bridge-utils }}} 1. Modify the file {{{ /etc/network/interfaces }}} 1. Add the lines {{{ auto br0 iface br0 inet manual bridge_ports eth0.1001 eth0.1002 bridge_stp off bridge_waitport 0 bridge_fd 0 }}} 1. run the command {{{ ifup br0 }}} 1. Configure vlans 1. ? Delay without bridge ~ 0.168ms Delay with bridge ~ 0.66ms ==== Generalizing To run this on other machines, you will need 3 devices. * One with a USRP B210 * One with sufficient processing power * And one to act as client. To run this on nodes 1-1,1-2, and 2-1 on Sandbox 1, you would need to make the following changes: 1. Load the rrh image onto nodes 1-1 and 1-2. 1. execute the rrh scripts on node1-1 1. on node1-2, edit the file ~/conf/enb.band25.tm1.rrh.usrpb210.conf 1. change the lines {{{ENB_IPV4_ADDRESS_FOR_S1_MME}}} and {{{ ENB_IPV4_ADDRESS_FOR_S1U}}} to {{{10.11.1.2}}}, or the interface that will send traffic to the MME 1. If you want to change the RRH interface or IP, you must change it in both run scripts, as well as the lines {{{local_if_name}}}, {{{remote_address}}}, and {{{local_address}}} in the eNB config. Further instructions are available at the OAI wiki at https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/HowtoconnectCOTSUEtoOAIeNBviaRRHGW