NR SA Band Change
The purpose of this tutorial is to show you how to change carrier band/frequency in NR SA. It is simple in terms of setting parameters in terms of syntax, but it would be tricky to figure out proper band/frequency that is applicable to your DUT. It is assumed that you don't have any previous experience with Amari callbox.
In most cases, Amarisoft can support the most of the band defined in 3GPP but there would be some restrictions to support some of FR2 frequency as listed below.
- FR1 : Amarisoft callbox support any band defined in 3GPP (Same applies to Amarisoft UEsim)
- FR2 : Amarisoft callbox support n257, n258, n260, n261, but does not support n262, n263 as of now. (As of now, Amarisoft UEsim does not support FR2)
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
- NR SA Band Change
Test Setup
Test setup for this tutorial is as shown below.
- SIM Card used in this tutorial is the one delivered with the system as it is.
- If you want to change the configuration, The tutorial Configuration Guide would help
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
- 38.101-1 Table 5.2-1, Table 5.3.5-1
- 38.104 - Table 5.4.3.3-1
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-N41-20Mhz, Automatic SSB Position
In this test, I will show you how SSB Position is determined and configured by default (i.e, set automatically by Amarisoft gNB software). If user does not specify SSB position in the configuration file, Amarisoft gNB automatically determine the SSB position. Usually it puts the SSB near to lower end of channel frequency spectrum to let the coreset 0 positioned at the lowest possible frequency of the channel. The exact default position the SSB varies depending on the band, frequency and bandwidth you set in the configuration file.
Configuration
I used the configuration file gnb-sa-n41-20M.cfg which is copied from gnb-sa.cfg and modified.
Configuration in gnb-sa-n41-20M.cfg is as shown below. In this configuration, I set NR_BANDWIDTH to 20 Mhz. I configured band, dl_nr_arfcn but I didn't explicitely configured gscn (ssb position) to let gNB automatically determine the position.
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. Note that SSB ARFCN is the ssb position automatically set by gNB software.
Power on UE and let it complete the attach
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. (
- ssb_arfcn indicates the center frequency in arfcn. If you want to convert this to Mhz or to GSCN, you can convert in https://www.sqimway.com/nr_band.php and https://www.sqimway.com/nr_raster.php
- ssb_prb indicates the position of ssb in PRB
- k_ssb indicates the k_ssb position (i.e, offset in subcarrier unit from the lowest PRB of ssb_prb)
- coreset0_prb indicates the position of CORESET0 in PRB unit
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.
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.
Test 2 : NR/SA-N41-20Mhz, Manual configuration of SSB Position
In this test, I will show you how you can set the position of SSB on your own instead of letting gNB specify the position automatically. Usually this kind of manual configuration is not recommended since it is not an easy task to determined the position without making any mistake since the allowable SSB position varies depending on various factors like channel bandwidth, subcarrier spacing, CORESET0 position etc.
Determine Band / ARFCN
Determine (pick) a GSCN and check if it is valid for the band/SCS that you try.
The tool at the following site would help : https://www.sqimway.com/nr_raster.php . In this tutorial, I decided to try with n41 and picked a frequency as follows.
Check if the GSCN frequency you picked is valid ARFCN.
Following site would help you with this : https://www.sqimway.com/nr_band.php
Configuration
I used the configuration file gnb-sa-n41-20M-gscn.cfg which is copied from gnb-sa.cfg and modified.
Configured as shown below. I only added gscn parameter to the configuration used in Test 1 Be careful to set the value of gscn. Make it sure that the value is valid in the band, bandwidth, subcarrier spacing etc.
Perform the Test
Run LTE service and check cell configuration in (enb) screen as shown below. Confirm that the Bandwidth, band and SSB position are configured as intended. Note that SSB position is printed in ARFCN unit, not in GSCN. If you want to convert this to Mhz or to GSCN, you can convert in https://www.sqimway.com/nr_band.php and https://www.sqimway.com/nr_raster.php
Power on UE and let it complete the attach
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. (
- ssb_arfcn indicates the center frequency in arfcn. If you want to convert this to Mhz or to GSCN, you can convert in https://www.sqimway.com/nr_band.php and https://www.sqimway.com/nr_raster.php
- ssb_prb indicates the position of ssb in PRB
- k_ssb indicates the k_ssb position (i.e, offset in subcarrier unit from the lowest PRB of ssb_prb)
- coreset0_prb indicates the position of CORESET0 in PRB unit
In the WebGUI log, you can easily check the bandwidth related configurations as shown below.
RRC / NAS Signaling
SIB1 (SA)
: This is the SIB1 message sent by gNB to configure NR SA. (
{
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. (
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
},
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.
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.