Amarisoft

NR SA PHY Throughput

 

This tutorial shows you how to force Callbox to schedule physical channel (PDSCH / PUSCH) without any data coming from higher layer (IP data). This can be useful to check/troubleshoot radio link problems or to identify whether a low throughput issue is based on higher layer issue or phyical layer issue.

NOTE : you can do the same test with RemoteAPI instead of changing the configuration file. If you want to change these low layer parameters while you are running a test (e.g, for troubleshooting purpose), it would be better to use RemoteAPI rather than setting those parameters in configuration file. Check out this tutorial for the test with Remote API.

 

 

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.

 

 

 

Test 1 : NR SA - BW 20 Mhz

The purpose of this test is to show how to configure the gNB to generate physical layer data in both uplink and downlink without any higher layer data. The channel bandwidth is configured to be 20Mhz. I will configure max (near max) for downlink and configure continuous scheduling for uplink but not necessarily max throughput. Uplink throughput will be varying depending gNB scheduling.

 

Configuration

I have used gnb-sa-phyTp.cfg which is copied and modified from gnb-sa.cfg.

NR SA PhyTp Test 1 Config 01

In gnb-sa-phyTp.cfg, I configured parameters as follows. In this test, TDD is applied but you can configure it to FDD if you like. You can select any specific tdd pattern with the parameter NR_TDD_CONFIG.   I set NR_TDD_CONFIG to 2 which is one of default sample configuration provided by Amarisoft sample configuration.  Channel bandwidth is set to 20Mhz by NR_BANDWIDTH.

NR SA PhyTp Test 1 Config 02

Followings are the key parameters for this tutorial. You should be careful so that pdsch_fixed_rb_start + pdsch_fxied_l_crb should not go over the maximum RBs for the channel bandwidth you specified. In addition, be careful about setting pdsch_mcs. If you put too high value for this parameter when radio link condition is not good enough, call drop may happen.

force_dl_scheduler : true is to force the gNB to schedule every DL slot. pdsch_fixed_rb_start:0 and pdsch_fixed_l_crb:51 is to configure the full RB allocation for the channel bandwidth 20Mhz. pdsch_mcs:27 is to set MCS to 27 for every PDSCH transmission.

force_full_bsr: true is to force gNB to schedule every possible UL slot. The number of RB and mcs will be set automatically by gNB in this test since I haven't set any pusch RB and mcs parameter setting here.

NR SA PhyTp Test 1 Config 03

 

 

Perform the Test

Power on UE and let it attach. You would see high data rate without generating IP throughput (e.g, no iperf, no LteSimserver)

NR SA PhyTp Test 1 Run 01

If you are not achieving high enough throughput(brate), you may try followings:

 

 

Test 2 : NR SA - BW 100 Mhz

The purpose of this test is to show how to configure the gNB to generate physical layer data in both uplink and downlink without any higher layer data. The channel bandwidth is configured to be 100Mhz. I will configure max (near max) for downlink and configure continuous scheduling for uplink but not necessarily max throughput. Uplink throughput will be varying depending gNB scheduling.

 

Configuration

I have used gnb-sa-phyTp.cfg  which is copied and modified from gnb-sa.cfg.  

NR SA PhyTp Test 1 Config 01

In gnb-sa-phyTp.cfg, I configured parameters as follows.   In this test, TDD is applied but you can configure it to FDD if you like. You can select any specific tdd pattern with the parameter NR_TDD_CONFIG.   I set NR_TDD_CONFIG to 2 which is one of default sample configuration provided by Amarisoft sample configuration.  Channel bandwidth is set to 100Mhz by NR_BANDWIDTH.

NR SA PhyTp Test 2 Config 02

Followings are the key parameters for this tutorial. You should be careful so that pdsch_fixed_rb_start + pdsch_fxied_l_crb should not go over the maximum RBs for the channel bandwidth you specified. In addition, be careful about setting pdsch_mcs. If you put too high value for this parameter when radio link condition is not good enough, call drop may happen.

force_dl_scheduler : true is to force the gNB to schedule every DL slot. pdsch_fixed_rb_start:0 and pdsch_fixed_l_crb:273 is to configure the full RB allocation for the channel bandwidth 100Mhz. pdsch_mcs:27 is to set MCS to 27 for every PDSCH transmission.

force_full_bsr: true is to force gNB to schedule every possible UL slot. The number of RB and mcs will be set automatically by gNB in this test since I haven't set any pusch RB and mcs parameter setting here.

NR SA PhyTp Test 2 Config 03

 

Perform the Test

Power on UE and let it attach. You would see high data rate without generating IP throughput (e.g, no iperf, no LteSimserver)

NR SA PhyTp Test 2 Run 01

If you are not achieving high enough throughput(brate), you may try followings:

 

Additional Information

It is observed that ping delay improves much (delay being shortened) comparing to default scheduling. It appears that UL timing (ping reply) would be improved since SR/BSR procedure (one of the possible delay factor) would not be necessary and UE can transmit PUSCH as soon as it has data to send

NR SA PhyTp AdditionalInfo 01

You can confirm that all the possible k1 and k2 set in RRC are used in PHY layer traffic implying that all possible DL and UL slots are scheduled.

NR SA PhyTp AdditionalInfo 02