Amarisoft

RRC Reject

 

The purpose of this tutorial is to show you how to Reject a RRC message that you specified.  This tutorial shows two different ways of testing RRC reject : One with configuration file and the other one with Remote API. There are roughly two ways of performing RRC Reject in Amarisoft Callbox as listed below.

This tutorial shows both ways.

NOTE : In most case, when UE get the RRC Reject message the UE retries a certain number of times and then give up if every retry fails. How may times the UE retries before it gives up usually depends on the type of RRC message.

 

 

Table of Contents

 

 

Test Setup

This tutorial does not require any special test setup. Just to have one cell configuration with one UE connection is enough.

TestSetup Callbox UE 1sdr 01

 

Key Configuration Parameters

Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.

 

 

Test 1 : RRC Connection Reject (LTE)

In this test, I will configure in such a way that eNB reject every RrcConnectionRequest from every UE

 

Configuration

In this test, I created a configuration file named enb-rrcfilter-request-reject.cfg which is copied and modified from enb.default.cfg

Config enb default 01

Then configure rrc_procedure_filter in the rool location in cell_list as you like (In this test, I set the filter for rrc_connection_request for reject (i.e, rejecting RRCConnectionRequest and sending RRCConnectionReject)

 

Perform the Test

Following is the cell configuration (BAND, BW etc) but this doesn't matter. You can configure the cell in anyway as long as your DUT is compatible with it.

Then power on UE and you will see the trace log something like this. This indicates that the call establishment has failed at the very early stage. But just from this trace, it is not possible to figure out exactly at which step the call failed. You need to check out the log file for further details.

Now check out the log file on WebGUI and you can confirm that every RRC Connection Request is rejected as shown below.

Sample Log

 

Test 2 : RRC Connection Reject (LTE) with a specified retry count

In this test, I will configure in such a way that eNB reject  RrcConnectionRequest for the specified number of time and accept it after the specified number of retrial.

 

Configuration

In this test, I created a configuration file named enb-rrcfilter-request-reject-ttl.cfg which is copied and modified from enb.default.cfg

Config enb default 01

Then configure rrc_procedure_filter in the rool location in cell_list as you like (In this test, I set the filter for rrc_connection_request for reject (i.e, rejecting RRCConnectionRequest and sending RRCConnectionReject and then reject it only 4 times and accept it after that)

 

Perform the Test

Following is the cell configuration (BAND, BW etc) but this doesn't matter. You can configure the cell in anyway as long as your DUT is compatible with it.

Then power on UE and you will see the trace log something like this. This indicates that the call establishment has failed at the very early stage. But just from this trace, it is not possible to figure out exactly at which step the call failed. You need to check out the log file for further details.

Now check out the log file on WebGUI and you can confirm that every RRC Connection Request is rejected as shown below.

Sample Log

 

Test 3 : RRC Connection Reject (LTE) with Remote API

In this test, I will not change/configure anything in configuration file. Instead I will use RemoteAPI and change the configuration on the fly to reject RrcConnectionRequest and accept it as I want.

 

Configuration

In this test, I created a configuration file named enb.default.cfg without any modification.

Config enb default 01

 

Perform the Test

Following is the cell configuration (BAND, BW etc) but this doesn't matter. You can configure the cell in anyway as long as your DUT is compatible with it.

Before powering on UE, you will be at the trace log as shown below.

At this point, send a remote API command as shown below (run this command at /root/enb directory). This is to reject RRC connection request. (NOTE : The exact timing you need to send the command would vary depending on the type of the command. In this case, I sent the command before powering on because the task that I want to do is reject RRC connection Request and the RrcConnectionRequest is the first RRC message after the power on)

Following is the text version of the command that I used. This is to help you copy and paste it for your own purpose.

./ws.js enb '{"message":"config_set","cells": {"1", {"rrc_procedure_filter":{"rrc_connection_request":"reject"}}}}'

Now you see that call setup keep failing. This indicates that the call establishment has failed at the very early stage. But just from this trace, it is not possible to figure out exactly at which step the call failed. You need to check out the log file for further details.

Now let's send another remote API command to accept the RRC Connection Request as shown below.

Following is the text version of the command so that you can copy and paste.

./ws.js enb '{"message":"config_set","cells": {"1", {"rrc_procedure_filter":{"rrc_connection_request":"treat"}}}}'

And then you see that the call setup gets completed as shown below.

Now check out the log file on WebGUI and you can confirm that every RRC Connection Request is rejected when you send the "rrc_connection_frequest":"reject" and get accepted when you send the "rrc_connection_frequest":"treat".