Amarisoft

Remote API - PHY/MAC

 

This tutorial shows you how to change configurations for PHY/MAC with Remote API while the lte service is running. (NOTE : If you are new to Remote API or not familiar with it, I would suggest you to go through this tutorial first).

You can do set these configurations in configuration file, but if you use the configuration file you need to stop the lte service and change the value and run again when you want to change those parameter values. But if you are using Remote API, you can change those parameter values without stopping lte service.

I personally use this kind of tricks to figure out the root cause of BLER (low throughput) and troubleshoot the high BLER issue. Whenever I have the case where I am getting high BLER, I usually do as follows:

NOTE : For further details on the factors on High BLER/Throughput issue, I would suggest you to check this tutorial.

 

 

Table of Contents

 

 

Test Setup

Test setup for this tutorial is as shown below.  This is just for low layer testing, you may not need any complicated IP layer setup.

TestSetup Callbox UE 2sdr 01

 

 

Key Configuration Parameters

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

 

 

Configuration

In this tutorial, the default configuration (the default configuration for LTE) is used without any change. We don't need to change anything in the configuration file since we will change configuration using Remote API while the lte service is running

RemoteAPI PhyMac Configuration 01

RemoteAPI PhyMac Configuration 02

 

 

Test 1 : Changing DL PHY Configurations

In this test, I will change some parameters to change resource allocation and scheduling for LTE DL. This is just an example of changing DL PHY/MAC configuration. You don't need to do exactly as shown here. Once you get familiar with this basic operation, you may use any other parameters in any order as you like.

 

Perform the Test

Before power on UE, I extended the inactivity_timer as shown below to maitain the call connection during the whole test period.  Since I am not generating any higher layer traffic (e.g, IP traffic), if you don't extend inactivity_timer, RRC will be released soon (10 seconds by default) after the initial attach.

./ws.js enb '{"message":"config_set","cells":{"1":{"inactivity_timer":6000}}}'

RemoteAPI PhyMac Test 1 Run 01

Try changing pdsch mcs using the following command. (NOTE : This is a cell specific parameter, make it sure that you set the correct cell ID in the mssage)

./ws.js enb '{"message":"config_set","cells":{"1":{"pdsch_mcs":2}}}'

RemoteAPI PhyMac Test 1 Run 02

Check if the command is properly applied using 't' command as shown below. (NOTE : There is no straightfoward way to figure out exactly what the remoteAPI took effect in trace log(t). If you see the phy configuration that you set printed continuously, it would be a good candidates for the timing that the remoteAPI took effect)

RemoteAPI PhyMac Test 1 Run 03

Now I am trying to let eNB to schedule pdsch at every possible subframe using the command as shown below. (NOTE : This is a cell specific parameter, make it sure that you set the correct cell ID in the mssage)

./ws.js enb '{"message":"config_set","cells":{"1":{"force_dl_schedule":true}}}'

RemoteAPI PhyMac Test 1 Run 04

Then change RB ranges for every pdsch using the command as shown below. (NOTE : These are a cell specific parameters, make it sure that you set the correct cell ID in the mssage)

./ws.js enb '{"message":"config_set","cells":{"1":{"pdsch_fixed_rb_alloc":true,"pdsch_fixed_rb_start":0,"pdsch_fixed_rb_l_crb":20}}}'

RemoteAPI PhyMac Test 1 Run 05

Check if the command is properly applied using 't' command as shown below

RemoteAPI PhyMac Test 1 Run 06

 

 

Test 2 : Changing UL PHY Configurations

In this test, I will change some parameters to change resource allocation and scheduling for LTE UL. This is just an example of changing UL PHY/MAC configuration. You don't need to do exactly as shown here. Once you get familiar with this basic operation, you may use any other parameters in any order as you like.

 

Perform the Test

Before power on UE, I extended the inactivity_timer as shown below to maitain the call connection during the whole test period.

./ws.js enb '{"message":"config_set","cells":{"1":{"inactivity_timer":6000}}}'  (NOTE : This is a cell specific parameter, make it sure that you set the correct cell ID in the mssage)

RemoteAPI PhyMac Test 2 Run 01

Try changing pusch mcs using the following command.

./ws.js enb '{"message":"config_set","cells":{"1":{"pusch_mcs":2}}}' (NOTE : This is a cell specific parameter, make it sure that you set the correct cell ID in the mssage)

RemoteAPI PhyMac Test 2 Run 02

Check if the command is properly applied using 't' command as shown below.

RemoteAPI PhyMac Test 2 Run 03

Now I am trying to let eNB to schedule pdsch at every possible subframe using the command as shown below.

./ws.js enb '{"message":"config_set","cells":{"1":{"force_full_bsr":true}}}' (NOTE : This is a cell specific parameter, make it sure that you set the correct cell ID in the mssage)

RemoteAPI PhyMac Test 2 Run 04

Check if the command is properly applied using 't' command as shown below.

RemoteAPI PhyMac Test 2 Run 05