Changes between Initial Version and Version 1 of Tutorials/g0WmLTE/Tutorial5


Ignore:
Timestamp:
Oct 20, 2015, 8:24:26 PM (9 years ago)
Author:
stojadin
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/g0WmLTE/Tutorial5

    v1 v1  
     1== !OpenAirInterface LTE ==
     2
     3[[Include(Documentation/Short/Prereq)]]
     4
     5This tutorial also assumes basic familiarity with [http://en.wikipedia.org/wiki/LTE_%28telecommunication%29 LTE standard]. It uses [http://www.openairinterface.org/ OpenAirInterface] open source software implementation of LTE basestation (eNodeB or eNB) and modem (user equipment or UE) developed at [http://www.eurecom.fr/en Eurecom]. The tutorial given here is based on the [https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/HowToConnectOAIENBWithOAIUEWithoutS1Interface] tutorial.
     6
     7The image used for this experiment is oai-nos1.ndz. Image uses Ubunutu 14.04 and has low-latency 3.13 kernel install and UHD drivers needed for B210/X310 USRPs (UHD 3.8.2)) as well as the !OpenAirInteface source code installed in /root/openairinterface5g/. More details on various build options are available on [https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/AutoBuild OpenAirInterface build page].
     8
     9In this tutorial we will use nodes equipped with USRP B210 and have the basestation on node1-1 and modem on node1-2 on sandbox 1.
     10
     11=== Prepare the nodes ===
     12
     13 1. Load the image with the !OpenAirInterface code on the nodes. After imaging the nodes are '''turned off automatically'''. [[CollapsibleStart(omf load -i oai-nos1.ndz -t all)]] [[Include(Documentation/Short/LoadImage)]][[CollapsibleEnd]]
     14 1. Turn ON the nodes that successfully imaged (give them some time and check their status with '''omf stat''' before proceeding). [[CollapsibleStart(omf tell -a on -t all)]][[Include(Documentation/Short/TellOn)]][[CollapsibleEnd]]
     15
     16=== Execute the experiment ===
     17
     18Primary objective is to establish the LTE connection between the UE and eNB.
     19  1. '''ssh into nodes:''' Open the two ssh sessions from the console to the two nodes
     20|| [[Image(node1-1.png, width=200)]] || [[Image(node1-2.png, width=200)]] ||
     21  2. '''Prepare configuration files:''' The configuration file used for eNB is 'enb.band5.tm1.usrpb210.conf':
     22     i. Operating frequency band parameters:
     23          a. E-UTRA band
     24          b. Corresponding duplex mode (e.g. FDD/TDD),
     25          c. Downlink frequency [Hz], uplink frequency offset [Hz] (which is given in reference to the downlink frequency).
     26          d. LTE bandwidth: N_RB_DL = {6,15,25,50,75,100} corresponding to bandwidth = {1.4,3,5,10,15,20} MHz
     27          For example:
     28          {{{
     29    ////////// Physical parameters:
     30    component_carriers = (
     31                         {
     32                           frame_type                                         = "FDD";
     33                           eutra_band                                         = 7;
     34                           downlink_frequency                                 = 2660000000L;
     35                           uplink_frequency_offset                            = -120000000;
     36                           N_RB_DL                                            = 25; #N_RB_DL choice: 6,15,25,50,75,100
     37                         }
     38                         );
     39          }}}
     40          In this example, LTE operates in E-UTRA band 7 which allows the FDD mode. LTE operates at 5 MHz bandwidth around downlink and uplink center frequencies which are at 2660 MHz and 2540 MHz, respectively.
     41
     42          Parameters in oai.conf can be varied as long as they are within predefined set of values which can be found in file ~/rel_0.1_26.10.2014/openair2/ENB_APP/enb_config.c or ~/trunk/openair2/ENB_APP/enb_config.c
     43
     44     ii. Make sure to have correct IP address configuration for parameters "ENB_IPV4_ADDRESS_FOR_S1_MME" and "ENB_IPV4_ADDRESS_FOR_S1U" to match node numbers.   For example, for nodeX-Y, these IP address parameters become as "10.10.X.Y/16". So for our basestation node the relevant sections in the oai.conf file in /root directory on the nodes we should look like (we don't want MME support and have to adjust the ip addresses to match what we have on the control interface of the node):
     45     {{{
     46    ////////// MME parameters:
     47    mme_ip_address      = ( { ipv4       = "10.10.0.100";
     48                              ipv6       = "10:10:0::100";
     49                              active     = "no";
     50                              preference = "ipv4";
     51                            }
     52                          );
     53
     54    NETWORK_INTERFACES :
     55    {
     56        ENB_INTERFACE_NAME_FOR_S1_MME            = "eth1";
     57        ENB_IPV4_ADDRESS_FOR_S1_MME              = "10.10.9.1/24";
     58
     59        ENB_INTERFACE_NAME_FOR_S1U               = "eth1";
     60        ENB_IPV4_ADDRESS_FOR_S1U                 = "10.10.9.1/24";
     61        ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
     62    };
     63     }}}
     64  3. '''Run the lte-softmodem:''' Depending on whether you want to run it with or without mme, execute lte-softmodem on corresponding nodes:
     65
     66 || || On the eNB node (node9-1) || On the UE node (node6-20)  ||
     67 || w/o MME || {{{ lte-softmodem-nomme -Ooai.conf -V}}} || {{{ lte-softmodem -U -Ooai.conf -C 2660000000 -V}}} ||
     68 || w MME || {{{ lte-softmodem -Ooai.conf -V}}} || {{{ lte-softmodem -U -Ooai.conf -C 2660000000 -V}}} ||
     69
     70If the above commands are executed with the "-d" flag and if X11 forwarding is enabled for the current ssh session, the signal tracer will pop out as shown in Figure 1 (not that this requires relatively high bandwidth).
     71[[Image(Scope.png, width=300)]] ||
     72
     73[[CollapsibleStart(The output on both consoles should look something like this:)]]
     74{{{
     75[RRC][I][eNB 0] Init (UE State = RRC_IDLE)...
     76[RRC][I][eNB 0] Checking release
     77[RRC][I][eNB 0] Rel8 RRC
     78[RRC][I][eNB 0] Configuration SIB2/3
     79[MAC][I][rrc_mac_config_req] [CONFIG][eNB 0] Configuring MAC/PHY
     80[MAC][I][rrc_mac_config_req] [CONFIG]SIB2/3 Contents (partial)
     81[MAC][I][rrc_mac_config_req] [CONFIG]pusch_config_common.n_SB = 1
     82[MAC][I][rrc_mac_config_req] [CONFIG]pusch_config_common.hoppingMode = 0
     83[MAC][I][rrc_mac_config_req] [CONFIG]pusch_config_common.pusch_HoppingOffset = 0
     84[MAC][I][rrc_mac_config_req] [CONFIG]pusch_config_common.enable64QAM = 0
     85[MAC][I][rrc_mac_config_req] [CONFIG]pusch_config_common.groupHoppingEnabled = 1
     86[MAC][I][rrc_mac_config_req] [CONFIG]pusch_config_common.groupAssignmentPUSCH = 0
     87[MAC][I][rrc_mac_config_req] [CONFIG]pusch_config_common.sequenceHoppingEnabled = 0
     88[MAC][I][rrc_mac_config_req] [CONFIG]pusch_config_common.cyclicShift  = 1
     89[RRC][I][eNB 0] OPENAIR RRC IN....
     90[SCTP][I][sctp_handle_new_association_req] Setsockopt SOL_SOCKET socket bound to : eth1
     91[SCTP][I][sctp_handle_new_association_req] Converted ipv4 address 10.10.0.100 to network type
     92[SCTP][I][sctp_handle_new_association_req] connectx assoc_id  1 in progress..., used 1 addresses
     93[SCTP][I][sctp_handle_new_association_req] Inserted new descriptor for sd 56 in list, nb elements 1, assoc_id 1
     94[SCTP][I][sctp_eNB_flush_sockets] Found data for descriptor 56
     95[SCTP][I][sctp_eNB_read_from_socket] Received notification for sd 56, type 32769
     96[SCTP][I][sctp_eNB_read_from_socket] Client association changed: 0
     97[SCTP][I][sctp_get_peeraddresses] ----------------------
     98[SCTP][I][sctp_get_peeraddresses] Peer addresses:
     99[SCTP][I][sctp_get_peeraddresses]     - [10.10.0.100]
     100[SCTP][I][sctp_get_peeraddresses] ----------------------
     101[SCTP][I][sctp_get_sockinfo] ----------------------
     102[SCTP][I][sctp_get_sockinfo] SCTP Status:
     103[SCTP][I][sctp_get_sockinfo] assoc id .....: 1
     104[SCTP][I][sctp_get_sockinfo] state ........: 3
     105[SCTP][I][sctp_get_sockinfo] instrms ......: 8
     106[SCTP][I][sctp_get_sockinfo] outstrms .....: 64
     107[SCTP][I][sctp_get_sockinfo] fragmentation : 1452
     108[SCTP][I][sctp_get_sockinfo] pending data .: 0
     109[SCTP][I][sctp_get_sockinfo] unack data ...: 0
     110[SCTP][I][sctp_get_sockinfo] rwnd .........: 106496
     111[SCTP][I][sctp_get_sockinfo] peer info     :
     112[SCTP][I][sctp_get_sockinfo]     state ....: 2
     113[SCTP][I][sctp_get_sockinfo]     cwnd .....: 4380
     114[SCTP][I][sctp_get_sockinfo]     srtt .....: 0
     115[SCTP][I][sctp_get_sockinfo]     rto ......: 3000
     116[SCTP][I][sctp_get_sockinfo]     mtu ......: 1500
     117[SCTP][I][sctp_get_sockinfo] ----------------------
     118[SCTP][I][sctp_eNB_read_from_socket] Comm up notified for sd 56, assigned assoc_id 1
     119[S1AP][I][s1ap_eNB_generate_s1_setup_request] 3584 -> 00e000
     120[SCTP][I][sctp_send_data] Successfully sent 53 bytes on stream 0 for assoc_id 1
     121[SCTP][I][sctp_eNB_flush_sockets] Found data for descriptor 56
     122[SCTP][I][sctp_eNB_read_from_socket] Received notification for sd 56, type 32777
     123[SCTP][I][sctp_eNB_flush_sockets] Found data for descriptor 56
     124[SCTP][I][sctp_eNB_read_from_socket] [1][56] Msg of length 27 received from port 36412, on stream 0, PPID 18
     125[S1AP][I][s1ap_decode_s1ap_s1setupresponseies] Decoding message S1ap_S1SetupResponseIEs (/root/trunk/targets/RT/USER/objs/openair-cn/S1AP/s1ap_decoder.c:3544)
     126[ENB_APP][I][eNB_app_task] [eNB 0] Received S1AP_REGISTER_ENB_CNF: associated MME 1
     127Waiting for eNB application to be ready
     128[HW][I][SCHED] eNB TX thread 0 started on CPU 5
     129[HW][I][SCHED][eNB] eNB RX thread 0 started on CPU 0
     130[HW][I][SCHED] eNB TX thread 1 started on CPU 0
     131[HW][I][SCHED][eNB] eNB RX thread 1 started on CPU 5
     132[HW][I][SCHED] eNB TX thread 2 started on CPU 2
     133[HW][I][SCHED][eNB] eNB RX thread 2 started on CPU 0
     134[HW][I][SCHED] eNB TX thread 3 started on CPU 5
     135[HW][I][SCHED][eNB] eNB RX thread 3 started on CPU 5
     136[HW][I][SCHED] eNB TX thread 4 started on CPU 4
     137[HW][I][SCHED][eNB] eNB RX thread 4 started on CPU 1
     138[HW][I][SCHED] eNB TX thread 5 started on CPU 4
     139[HW][I][SCHED][eNB] eNB RX thread 5 started on CPU 4
     140[HW][I][SCHED] eNB TX thread 6 started on CPU 0
     141[HW][I][SCHED][eNB] eNB RX thread 6 started on CPU 1
     142[HW][I][SCHED] eNB TX thread 7 started on CPU 1
     143[HW][I][SCHED][eNB] eNB RX thread 7 started on CPU 0
     144[HW][I][SCHED] eNB TX thread 8 started on CPU 1
     145[HW][I][SCHED][eNB] eNB RX thread 8 started on CPU 0
     146[HW][I][SCHED] eNB TX thread 9 started on CPU 0
     147[HW][I][SCHED][eNB] eNB RX thread 9 started on CPU 1
     148Creating main eNB_thread
     149[SCHED][eNB] Started eNB main thread on CPU 4
     150eNB_thread: mlockall in ...
     151eNB_thread: mlockall out ...
     152waiting for sync (eNB_thread)
     153TYPE <CTRL-C> TO TERMINATE
     154Entering ITTI signals handler
     155
     156}}}
     157[[CollapsibleEnd]]
     158
     159
     160=== The command line parameters of lte-softmodem ===
     161Relevant (i.e. for USRP command line parameters for the lte-softmodem command are:
     162 * -O file: eNB configuration file (this is the preferred way to pass basic parameters and there are several examples in $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE_EPC/CONF/
     163 * -g LEVEL: set the level of debug for the log generation (-g7 is quite high and useful to trace bugs in the procedures/protocols, -g9 even dumps packets at all levels of the protocol stack)
     164 * -d: enables xforms signal tracer
     165 * -U: start as UE (default: eNB)
     166 * -C freq: set carrier frequency to f0 for all chains (extension to independent frequencies trivial)
     167 * -V: enables the VCD debugging tool (this is a temporal event tracer, which is useful for real-time debugging using GTKWave)
     168 * -K file: ITTI logfile. ITTI is an intertask tracing utility which helps debugging with an EPC. It can traces all exchanges between RRC<->S1AP, RRC<->PDCP, PDCP<->S1
     169 * -S: do not exit for the missing slots, instead increment the counter.
     170 * --debug-ue-prach: only send prach but do not connect
     171 * --no-L2-connect: only runs rx, does not send prach
     172
     173More details on running lte-softmodem are available on [https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/OpenAirLXRT OpenAirInterface real-time LTE softmodem page].