Amarisoft

NR SA Bandwidth Change

 

The purpose of this tutorial is to show you how to change CBW(Channel Bandwidth, System BW) in Amari Callbox. The changing configuration in configuration file is very simple, but figuring out the proper bandwidth that can be applicable for the DUT can be tricky.  It is assumed that you don't have any previous experience with Amari callbox.

Up to 100 Mhz per component carrier, Amarisoft support any bandwidth specified in 3gpp for both FR1 and FR2 as of now.

Changing Band and Bandwidth change in NR is not as simple/straightforward as in LTE since it requires to change several different information elements in RRC message and figuring out those value is not so simple. But this process is simplified greatly in Amaricall box since RRC configuration is automatically set by Callbox. What you have to do is to set a few key configuration parameters set to be valid as per 3GPP specification.

 

 

Table of Contents

 

 

Test Setup

 

Test setup for this tutorial is as shown below.

TestSetup Callbox UE 1sdr 01

 

 

Check before Trying

 

1. Check following 3GPP tables and make it sure that the band/bandwidth you are trying to test is valid in terms of 3GPP

2. Check UE capability Information and make it sure that your DUT support the band and bandwidth you want to try

 

 

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-N78-SCS30Khz-40Mhz

This is to show how to modify the default configuration tile from 20Mhz channel bandwidth to 40Mhz.

 

Feasibility Check

Check if the bandwidth you want to try is allowed in terms of 3GPP spec as shown below

NR SA BW Change Test1 Feasibility 01

Check if the bandwidth you want to try is allowed in terms of UE capability. The UE that I am using support scs30 only and support 20,40,50,60,80,100 Mhz

NR SA BW Change Test1 Feasibility 02

 

 

Configuration

I used the configuration file gnb-sa-n78-40Mhz.cfg which is copied from gnb-sa.cfg and modified.

NR SA BW Change Test1 Configuration 01

Configured in gnb-sa-n78-40Mhz.cfg is as shown below. In this configuration, I changed the channel bandwidth using NR_BANDWIDTH and keep band, dl_nr_arfcn, subcarrier spacing as it is with the default configuration (gnb-sa.cfg)

NR SA BW Change Test1 Configuration 02

 

 

Perform the Test

Run LTE service and check cell configuration in (enb) screen as shown below. Confirm that the Bandwidth are configured as you intended. You can check the channel bandwidth with BW value in cell phy output. Note that SSB ARFCN would automatically change according to BW change.

NR SA BW Change Test1 RunTest 01

Power on UE and let it complete the attach

NR SA BW Change Test1 RunTest 02

 

 

Log Analysis

In this section, I would not go through the full log. I would show you just the parts that are related to the test in this tutorial.

If you open /tmp/gnb0.log file (WebGUI does not show this information), you will see the following information at the beginning. Blue and red lined part is automatically configured by AmariCall box. Red lined part is MIB configuration and it is very tricky to set proper values for these parameters manually and error prone, but these are configured automatically in Amari Callbox. (NOTE : The exact print out at this part may vary depending on the release of the callbox software (it may print out more information in the later release), but overall contents and concept would be same)

NOTE : Since 2022-06-17, MIB logging is supported (Check out this) and you can confirm the red lined part directly from MIB message.

NR SA BW Change Test1 Log 01

In the WebGUI log, you can easily check the bandwidth related configurations as shown below. The downlink band, bandwidth, subcarrier spacing can be confirmed from frequencyInfoDL and initialDownlinkBWP IE. These IEs are automatically set by gNB software based on the configuration file.

NR SA BW Change Test1 Log 02

The uplink band, bandwidth, subcarrier spacing can be confirmed from frequencyInfoUL and initialUplinkBWP IE. These IEs are automatically set by gNB software based on the configuration file.

NR SA BW Change Test1 Log 03

 

 

 

RRC / NAS Signaling

 

SIB1 (SA)

: This is the SIB1 message sent by gNB  to configure NR SA. (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: {

    ...

    servingCellConfigCommon {

      downlinkConfigCommon {

        frequencyInfoDL {

          frequencyBandList {

            {

              freqBandIndicatorNR 78

            }

          },

        ...

        },

        initialDownlinkBWP {

          genericParameters {

            locationAndBandwidth 13750,

            subcarrierSpacing kHz30

          },

          

      },

      uplinkConfigCommon {

        frequencyInfoUL {

          scs-SpecificCarrierList {

            {

              offsetToCarrier 0,

              subcarrierSpacing kHz30,

              carrierBandwidth 51

            }

          },

          p-Max 10

        },

        initialUplinkBWP {

          genericParameters {

            locationAndBandwidth 13750,

            subcarrierSpacing kHz30

          },

          

}

 

 

rrcConnectionReconfiguration for NR Addition (NSA)

: This is the RRC message sent by eNB (LTE) to add NR. (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: {

    ....

      nonCriticalExtension {

        nonCriticalExtension {

          nonCriticalExtension {

            nonCriticalExtension {

              nonCriticalExtension {

                nonCriticalExtension {

                  nonCriticalExtension {

                    nonCriticalExtension {

                      nr-Config-r15 setup: {

                        endc-ReleaseAndAdd-r15 FALSE,

                        nr-SecondaryCellGroupConfig-r15 {

                          rrc-TransactionIdentifier 0,

                          criticalExtensions rrcReconfiguration: {

                            secondaryCellGroup {

                              ...

                              spCellConfig {

                                servCellIndex 1,

                                reconfigurationWithSync {

                                  spCellConfigCommon {

                                    physCellId 500,

                                    downlinkConfigCommon {

                                      frequencyInfoDL {

                                        absoluteFrequencySSB 632256,

                                        frequencyBandList {

                                          78

                                        },

                                        absoluteFrequencyPointA 632016,

                                        scs-SpecificCarrierList {

                                          {

                                            offsetToCarrier 0,

                                            subcarrierSpacing kHz30,

                                            carrierBandwidth 51

                                          }

                                        }

                                      },

                                      initialDownlinkBWP {

                                        genericParameters {

                                          locationAndBandwidth 13750,

                                          subcarrierSpacing kHz30

                                        },

                                    ...

                                    },

                                    uplinkConfigCommon {

                                      frequencyInfoUL {

                                        scs-SpecificCarrierList {

                                          {

                                            offsetToCarrier 0,

                                            subcarrierSpacing kHz30,

                                            carrierBandwidth 51

                                          }

                                        }

                                      },

                                      initialUplinkBWP {

                                        genericParameters {

                                          locationAndBandwidth 13750,

                                          subcarrierSpacing kHz30

                                        },

 

 

 

Tips

 

Changing BW to 5 Mhz

In many cases, BW change would work just by changing Bandwidth parameters and selecting TDD/FDD according to 3GPP table and UE capability. But you may need extra cautions when you try to change BW to 5Mhz since it support only 15Khz not only for SSB but also other physical channels. Also there is another restriction on Amari callbox limiting ra_window_size to 10ms max. You may refer to this example configuration that I verified working with Amari Callbox and Amari UEsim : gnb-sa-5Mhz.cfg and ue-nr-sa-5Mhz.cfg .

 

 

Setting different BW to each cell

In most of the default configuration samples provided by the installation package, bandwidth parameter is set in cell_default : {  } or in nr_cell_default: {} meaning that the same bandwidth is used for all cells. But there would be some cases where you want to configure different bandwidth for each cell. In this case, you can change the configuration as follows.

 

Follwing is an example ;

Step 1 :

  nr_cell_default: {

#if NR_TDD == 1

    subcarrier_spacing: 30, /* kHz */

#else

    subcarrier_spacing: 15, /* kHz */

#endif

    //bandwidth: NR_BANDWIDTH, /* MHz */   <== Comment out

    n_antenna_dl: N_ANTENNA_DL,

    n_antenna_ul: N_ANTENNA_UL,

 

Step 2 :

  nr_cell_list: [

  {

    rf_port: 0,

    cell_id: 0x01,

    n_id_cell: 500,

    ncell_list : [

      {cell_id: 2},

    ],

 

#if NR_TDD == 1

    band: 78,

    dl_nr_arfcn: 632628,

#else

    band: 7,

    dl_nr_arfcn: 526000,

#endif

    bandwidth: NR_BANDWIDTH_1,  <==  Add bandwidth config for the first cell. it is assumed that you defined NR_BANDWIDTH_1 at the beginning of the configuration file.

  },

  {

    rf_port: 1,

    cell_id: 0x02,

    n_id_cell: 501,

    ncell_list : [

      {cell_id: 1},

    ],

 

#if NR_TDD == 1

    band: 41,

    dl_nr_arfcn: 510006,

#else

    band: 7,

    dl_nr_arfcn: 532000,

#endif

    bandwidth: NR_BANDWIDTH_2,  <==  Add bandwidth config for the second cell. it is assumed that you defined NR_BANDWIDTH_2 at the beginning of the configuration file.

  },

  ], /* nr_cell_list */

 

NOTE :  If you want to configure differntly not only for Bandwidth but also for TDD/FDD or TDD_ConfigPatterns, the configuration change would get a little bit complicated. Check out this tutorial.

 

 

Frequent Errors

Followings are some of the frequent errors (common errors) you may encounter when you try to set your own band, frequency (arfcn) and bandwidth

 

the DL frequency must be a multiple of XXX kHz

You would get this error when you set arfcn which is not divisible by the raster frequency specified for each band in 3GPP as shown below.

NR SA Band Change CommonError Raster 01

 

cell bandwidth does not fit in band definition

You would get this error when you set arfcn too low or too high so that the configured bandwidth gets out of lower or upper boundary of the band as illustrated below.

NR SA Band Change CommonError OutOfBand 01

 

Could not find a SSB frequency compatible with the channel bandwidth and the CoReSet 0 parameters

This error occurs mostly when you configured the coreset 0 to be wider than the channel bandwidth you configured or a part of Coreset 0 gets out of the channel band. Check out this tutorial for further details.