Amarisoft

Out of the Box Test - LTE Connection

 

The purpose of this tutorial is to show you how to do basic connectivity test between a UE and Amari Callbox. It is assumed that you don't have any previous experience with Amari callbox.  If you just a new box delivered to you or if you are completely new to the callbox operation, this tutorial would be the good place to start.

The configuration being used in this tutorial is LTE band 7. I think most of the commerical UEs that you can purchase from almost any shops would support LTE band 7 by default. So if you placed Amarisoft default USIM in the phone, I expect it to camp on the the callbox (eNB) without any problem.

As mentioned above, most of the commercial UE would support band 7, but I am not 100% sure if they support all the possible LTE bandwidth. As far as I personally experienced, most of the commercial UE would support all the bandwidth, but some UE may have some bandwidth restrictions (for example, some UE has difficulties with 1.4 Mhz BW).  If your UE has any limitation about LTE bandwidth, you can change it by setting N_RB_DL parameter in the configuration file.  

#define TDD                                0 // Values: 0 (FDD), 1(TDD)

#define N_RB_DL                      25 // Values: 6 (1.4 MHz), 15 (3MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)

#define N_ANTENNA_DL        1 // Values: 1 (SISO), 2 (MIMO 2x2)

#define N_ANTENNA_UL        1 // Values: 1, 2

#define CHANNEL_SIM            0 // Values: 0 (channel simulator disabled), 1 (channel simulator enabled)

#define NG_ENB                        0 // 1 for ng-eNB

 

Following is the topics to be covered in this tutorial. Basically Amarisoft Callbox operation is just repetition of the process explained in this tutorial. So if you are new to Amarisoft Callbox, try to repeat this process several times until your finger get used to the process and your mind gets enough confidence with the operation.

 

 

Table of Contents

 

 

Test Setup

 

Test setup for this tutorial is as shown below.

TestSetup Callbox UE 1sdr 01

 

 

Configuration

 

Go to the directory /root/enb/config and make a symbolic link as follows. (NOTE : If you are doing the test right out of the box you may not need to do this since this is the default configuration of Amari Callbox, but it is no harm to do this again).

OutOfBox Lte Config 01

Now you should see the enb.cfg file linked to enb.default.cfg as follows.

OutOfBox Lte Config 02

Now go to the directory /root/mme/config. You should see the configuration files as below.

OutOfBox Lte Config 03

If ims.cfg and mme.cfg is not linked to the files as shown above, you may run following commands to make proper link.

OutOfBox Lte Config 04

 

 

Check if LTE service is Running

 

Whatever you want to test, the first thing you need to do is that call box program (LTE Service) is running. You can check on the execution status of the call box program by running following command and you should get the result as shown below

LteServiceStatus 01

NOTE : Getting this result is pre-requisite for Call Box Operation, but this result itself does not guarantee the normal operation. If you see some unexpected issues. You may restart the call box with following command

 

 

Perform the Test

 

If it is confirmed that the lte service is running, go to screen mode by running 'screen -r' and follow through the steps as shown below. The steps shown here is the procedure that you would use for almost every test and it is highly recommended to get familiar with these steps. For further commands you can use in this screen mode, refer to the tutorial : Command Line Command

screen r 01

You will get the screen as shown below. This screen shows all the network components installed in the callbox. In this tutorial, it indicates MME, ENB, IMS, MBMSGW are installed in the callbox.

You would see a number before each component name. With Ctrl+A and the number before the component name, you can switch to command line window for the specific component. For example, if you press Ctrl+A+1, the command line window switches to ENB and if you press Ctrl+A+0, the command line window switches to MME and so on.

Screen mode switch 01

When you switches to [ENB] there are some important information provided without running any specific command. It provides RF information showing the sample_rate, dl_freq, ul_freq, band, dl_ant, ul_ant that gives you very fundamental RF information. Check out the details of these info and see if the RF is configured as you intended.

OutOfBox Lte Run 01

Run 't' command to start log display.  You can run this command any time during the test, but it is always good idea to run this command before you power on UE to get the log from very beginning of initial attach.

OutOfBox Lte Run 02

Power on UE. If UE detect the cell and perform attach, you would see a traces. If you started 't' command before you powe on UE, you will get the traces for PRACH attempt. The presence of PRACH trace can be a good troubleshooting indicator for initial attach problem.  If PRACH is properly received and the entire RACH process is completed, it is highly likely that the initial attach gets completed and start getting traffic log. Regarding the details on the meaning of each column of this log and how to use the information for troubleshoot, refer to this tutorial.

OutOfBox Lte Run 03

Press any key to stop trace and go back to prompt.

OutOfBox Lte Run 04

Check if UE has any IP address assigned to it.

Switch to (mme) window and Run the command [ue] in (mme) and it will show whether UE is assigned with any IP and what are those IPs. The IPs assigned to the UE is configured in mme.cfg file as indicated below.

NOTE : You should have at least the first IP. You may not get the second set of IP (one IPv4 + one IPv6) if you haven't enabled 'ims' APN on your phone. But it is OK if you don't get it for this tutorial.

NOTE : If you don't see any of this kind of information, it may indicates there is some problems with the initial registration or IP allocation process and you need to troubleshoot until you get the result like this.

OutOfBox Ping FigureOut IP 01

Once you get the IP address properly, you may go out of the screen with [ Alt + A and D] .

OutOfBox Lte Run 05

 

 

 

Log Analysis

Sample Log

 

In most case, you may use WebGUI to analyze the log, but in this tutorial I will show you how to check out the log with text editor to give you the idea on where the log is collected and the format of the saved log. I would recommend you to check out the log in this way at least a few times when you just starts to use Amarisoft product and then WebGUI would be more handy tools for log analysis.

 

By default the log file is saved in /tmp directory (you can change the location of the log file in configuration file, but in most case most user just use the default location which is /tmp). In case of LTE test, you will find the log file named enb0.log in /tmp directory while the test is trunning. (NOTE : If you stop the test, this log is backed up in /var/log/lte directory and enb0.log gets removed)

Log enb0 01

NOTE : The part of the log that I highlight in this tutorial is focus mostly on RRC / NAS signaling from UE since those can be good indicators of certain steps. If you want to get further details, I would suggest you to open the log with WebGUI and check on the details.

Open up the log using any kind of the text editor and you will see various high level information (meta data) at the beginning of the file. This is useful high level information. Check out this tutorial to the details on this meta data.

OutOfBox Lte Log 01

Now let's look into signaling message part of the log. The first thing you may want to check is 'RRC Connection Request' and 'RRC Connection Setup'.  If you get these message, it indicates that cell search and PRACH process is properly done on UE side and UE initiates RRC Setup.

OutOfBox Lte Log 02

Next step you need to check is to see whether the eNB recieves RRC Connection Setup Complete or not. If you see this message, it mean that RrcSetup is completed on UE side.  If UE fails with RrcSetup, it usually triggers RACH procedure again and send RrcConnectionRequest.

OutOfBox Lte Log 03

Once RRC Setup Procedure is complete, eNB initiate the Authentication process. If the authentication is confirmed on UE side, UE send Authentication Response message.  If you see the Authentication Failure instead of Authentication Response, it usually implies that there is SIM parameter mismatch between USIM and eNB SIM parameter setting. In most case, K value mismatch would be the culprit of the failure. Check ue_db.cfg or ue_db-ims.cfg and make it sure it has authentication parameter that matches DUT's USIM parameter.

OutOfBox Lte Log 04

Once Authentication process is complete, ENB starts Security checkup. There are two different level of security checkup. The first one is NAS Security and the second one is RRC Security.

If you see EMM:Security mode complete message recieved, it indicates that NAS Security is complete.

OutOfBox Lte Log 05

If you see DCCH:Security mode complete message recieved, it indicates that RRC Security is complete.

OutOfBox Lte Log 06

Once Authentication and Security checkup is done, eNB initiate RRC Connection Reconfiguration.

OutOfBox Lte Log 07

Once all the required RRC and NAS Procedure for initial registration is complete, UE is supposed to send EMM:Attach Accept message.

OutOfBox Lte Log 08

Once initial attach is complete, eNB initiate the default EPS bearer setup by sending Activate default EPS bearer context request. In this message, you can confirm the UE IP and DNS Server IP that is assigned to the UE.

OutOfBox Lte Log 09

On the completion of Attach process and IP allocation, UE send Attach Complete message. This is a good indication that the entire initial attach procedure is done.

OutOfBox Lte Log 10

Now user data flows between network and UE.  If there is no more user traffic for a certain duration, eNB send RRC Release to terminate the RRC Connection.

OutOfBox Lte Log 11

 

 

 

RRC / NAS Signaling

 

: This section is to show you the overall structure of important Rrc messages and Information IE (IE) that are related to this tutorial.  It is not intended to describe the details on every RRC/NAS Information elements. With the overall structure and key IEs shown here, it hope it would be easier / clearer to go through the sample log provided in this tutorial or any logs that you captured from your own test setup or live network.

NOTE : The purpose of this section is to show you the overall structure of the related Rrc messages and some key information elements. It is not to show the every details of the IE which is too much to be covered.  I would suggest you to go through the sample log for further details of signaling flow and the contents of each message.

 

 

SIB1

: This is the SIB1 message sent by eNB  to configure LTE. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

{

  message c1: systemInformationBlockType1: {

    cellAccessRelatedInfo {

      plmn-IdentityList {

        {

          plmn-Identity {

            ...

          },

          cellReservedForOperatorUse notReserved

        }

      },

      trackingAreaCode '0001'H,

      cellIdentity '1A2D001'H,

      cellBarred notBarred,

      intraFreqReselection allowed,

      csg-Indication FALSE

    },

    cellSelectionInfo {

      q-RxLevMin -70

    },

    p-Max 10,

    freqBandIndicator 7,

    schedulingInfoList {

      ...

    },

    si-WindowLength ms40,

    systemInfoValueTag 0

  }

}

 

 

SIB2

: This is the SIB2 message sent by eNB  to configure LTE. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

{

  message c1: systemInformation: {

    criticalExtensions systemInformation-r8: {

      sib-TypeAndInfo {

        sib2: {

          radioResourceConfigCommon {

            rach-ConfigCommon {

              ...

            },

            bcch-Config {

              ...

            },

            pcch-Config {

              ...

            },

            prach-Config {

              ...

            },

            pdsch-ConfigCommon {

              ...

            },

            pusch-ConfigCommon {

              ...

            },

            pucch-ConfigCommon {

              ...

            },

            soundingRS-UL-ConfigCommon setup: {

              ...

            },

            uplinkPowerControlCommon {

              ...

            },

            ul-CyclicPrefixLength len1,

            pusch-ConfigCommon-v1270 {

              ...

            }

          },

          ue-TimersAndConstants {

            ...

          },

          freqInfo {

            ...

          },

          ...

        },

 

 

RrcConnectionSetup

: This is the RrcConnectionSetup message sent by eNB  (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

{

  message c1: rrcConnectionSetup: {

    rrc-TransactionIdentifier 0,

    criticalExtensions c1: rrcConnectionSetup-r8: {

      radioResourceConfigDedicated {

        srb-ToAddModList {

          ...

        },

        mac-MainConfig explicitValue: {

          ...

        },

        physicalConfigDedicated {

          pdsch-ConfigDedicated {

            ...

          },

          pucch-ConfigDedicated {

            ...

          },

          pusch-ConfigDedicated {

            ...

          },

          uplinkPowerControlDedicated {

            ...

          },

          cqi-ReportConfig {

            ...

          },

          soundingRS-UL-ConfigDedicated setup: {

            ...

          },

          schedulingRequestConfig setup: {

            ...

          }

 

 

AttachRequest

: This is the AttachRequest message sent by UE  (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

Protocol discriminator = 0x7 (EPS Mobility Management)

Security header = 0x1 (Integrity protected)

Auth code = 0x410496cc

Sequence number = 0x09

Protocol discriminator = 0x7 (EPS Mobility Management)

Security header = 0x0 (Plain NAS message, not security protected)

Message type = 0x41 (Attach request)

EPS attach type = 2 (combined EPS/IMSI attach)

NAS key set identifier:

  ...

Old GUTI or IMSI:

  ...

UE network capability:

  ...

ESM message container:

  ...

Last visited registered TAI:

  ...

DRX parameter:

  ...

MS network capability:

  ...

Old location area identification:

  ...

Mobile station classmark 2:

  ...

Mobile station classmark 3:

  ...

Supported codecs:

  ...

Voice domain preference and UE's usage setting = 0x07 (IMS PS voice preferred, CS Voice as secondary, Data centric)

Old GUTI type = 0

MS network feature support = 0x01 (MS supports the extended periodic timer in this domain)

UE additional security capability:

  ...

 

 

AttachAccept

: This is the AttachAccept message sent by Core Network  (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

 

Protocol discriminator = 0x7 (EPS Mobility Management)

Security header = 0x2 (Integrity protected and ciphered)

Auth code = 0x6bb083ed

Sequence number = 0x02

Protocol discriminator = 0x7 (EPS Mobility Management)

Security header = 0x0 (Plain NAS message, not security protected)

Message type = 0x42 (Attach accept)

EPS attach result = 2 (combined EPS/IMSI attach)

T3412 value:

  ...

TAI list:

  ...

ESM message container:

  ...

GUTI:

  ...

Location area identification:

  ...

MS identity:

  ...

Emergency number list:

  ...

EPS network feature support:

  ...

 

 

RrcConnectionReconfiguration

: This is the RrcConnectionReconfiguration message sent by eNB  (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

{

  message c1: rrcConnectionReconfiguration: {

    rrc-TransactionIdentifier 0,

    criticalExtensions c1: rrcConnectionReconfiguration-r8: {

      dedicatedInfoNASList {

        ',,,

      },

      radioResourceConfigDedicated {

        srb-ToAddModList {

          ,,,

        },

        physicalConfigDedicated {

          antennaInfo-r10 explicitValue-r10: {

            ,,,

          },

          cqi-ReportConfig-r10 {

            ,,,

          },

          pucch-ConfigDedicated-v1020 {

            ,,,

          },

          cqi-ReportConfigPCell-v1250 {

            ,,,

          }

        },

        drb-ToAddModList-r15 {

          ,,,

        }

      },

 

 

Activate default EPS bearer context request

: This is the "Activate default EPS bearer context request" message sent by Core Network  (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

Protocol discriminator = 0x7 (EPS Mobility Management)

Security header = 0x2 (Integrity protected and ciphered)

Auth code = 0x88b74077

Sequence number = 0x04

Protocol discriminator = 0x2 (EPS Session Management)

EPS bearer identity = 6

Procedure transaction identity = 9

Message type = 0xc1 (Activate default EPS bearer context request)

EPS QoS:

  ...

Access point name = "..."

PDN address:

  ...

Extended protocol configuration options:

  ...