Amarisoft

NR/NSA-FR2

 

The purpose of this tutorial is to show you how to perform the test NR NSA in FR2 frequency range. In terms of protocol , it is basically same as ordinary NSA test(NSA in FR1) as shown in this tutorial. The key difference between FR1 test and FR2 test is hardware setup. Obviously the setup is much more complicated in FR2 test and the main purpose of this tutorial is to introduce our hardware setup for FR2 test.

 

Table of Contents

 

Test Setup

Test setup for this tutorial is as shown below. The image below shows the setup with three different perspective.

Setup A

[A] shows the entire hardware setup for the test which includes Callbox, UDC(Up/Down Converter), RF Combiner and part of antenna setup.

[B] shows the antenna setup (horn antenna) and a DUT from the top.

[C] shows the atenna and DUT setup from the side so that you can get the idea of where the horn antenna pointing at and distance between UE and antenna,

NOTE : There are manythings that is out of the scope for this tutorial especially for cable connection diagram and UDC details. For this information, refer to this document.  I understand the document would look intimidating but spend some time reading it whenever you have chance and try to get familiar with the details.

 

Setup B

 

Key Configuration Parameters

 

 

Test 1 : FR2 - 2CC NSA

This test is to show how to configure a carrier aggregation between two LTE cells with different frequencies. In this test, carrier aggregation will be forced without any measurement report from UE.

This test configures 3 cells as follows.

It performs following procedure

 

Configuration

In this test, I used gnb-nsa-fr2-lte-1cc-nr-2cc.cfg and drb_nsa_option3a.cfg / udc-auto-cfg.sh will be included in enb configuration file.

LTE CA Test 1 Config 01

I used the mme-ims-bitrate.cfg and ue_db-ims-bitrate.cfg will be included into mme configuration.

LTE CA Test 1 Config 02

The configuration in gnb-nsa-fr2-lte-1cc-nr-2cc.cfg is as shown below.  

The first thing to do is to set some of constants you need to set. You would notice a little bit of longer list than in other FR1 test. Some of the parameters are for FR2 specific related to UDC(Up/Down Converter, e.g, UDC_TYPE, IF_ATTENUATION). Some of the constants are added for optimization purpose for the test (e.g, NR_THREAD_DL, NR_THREAD_UL, NR_THREAD_PRACH) and others are common for every test.

LTE CA Test 1 Config 03

Make it sure that you configured enough enumber of sdrs required for your test (args parameter).  I/Q format configuration (sample_hw_fmt) is optional. You may need to tweak this when you have any throttling issues for PCIe traffic.

You can set a specific max number of thread for prach processing (prach_nb_threads). This is optional setting as well. You may see any performance issues, this can be a candidate (one of the many candidates) to tweak

Set the communication channel and configure UDC(Up/Down Converter) accordingly to the settings of FR2 frequency.

NOTE : Actually it is pretty complicated process to configure UDC and requires a lot of optimization. But you don't need to it manually, the shell script that you assigned to cmd parameter (udc-auto-cfg.sh in this case) would do it for you. The only thing you need to pay attention to is to specify the correct ports to which your UDC is connected.

Now set some parameters for optimization. there wouldn't be many things to do with udc_port unless you change the cable connections, but other parameters (e.g, rx_to_tx_latency, tx_power_offset, nb_threads_dl and nb_threads_ul) are those that can be tweaked depending on the situation.

NOTE : It is always good idea to try first with the default values and then start tweaking only when you exactly understand what each of these parameters are for.

Same things as explained above, but this part is not applicable for this test. This part will be used when the number of carriers of FR2 is greater than 2.

Now configure LTE anchor cell and set the cell ID for the first NRcell to be added in NSA (i.e, PCC of NR cell) in end_dc_scg_cell_list.

Now set the measurement configuration (meas_config_desc). In this tutorial, this is mainly to make it sure that UE is properly detected (measured) the NR cell before gNB try to add NR cell for establishing NSA.

NOTE : This is an optional setting, but once you configure this setting, you need to make it sure that UE send proper measurement report to trigger NSA establishment.

Now let's start configuration of NR cells. Here you see two NR cells are configured for rf_port 1 and 2. The cell mapped to rf_port 1 will be the first NR cell (PCC of SCG) and the cell mapped to rf_port 2 will be the second cell (SCC) of NR cell for NR carrier aggregation.

This block is not used for this tutorial. this block will be used for NR carrier aggregation of more than 2CC.

This block is to set up the default configurations for all nr cells. Obviously you need to set subcarrier_spacing to 120 for FR2. And setup tdd_ul_dl_config for whatever is allowed for FR2.

There are several different deployment options for NSA. You can change the options via a parameter specified in drb.cfg. In this test, the configuration is set in drb_nsa_option3a.cfg which are specified for drb_config.

NOTE : Refer to RP-161266 for the details of various options for NR deployment.

This is the contents of drb_nsa_option3a.cfg which is configured for option3a. You just disable end_dc_split parameter.

 

In mme-ims-bitrate.cfg , only the file name of the ue_db is changed as follows.

 

In ue_db-ims-bitrate.cfg , the explicit bitrate is specified as below

 

Perform the Test

Check out the result of "cell phy" command and make it sure that the number of cells and other cell parameters (e.g, BAND, BW, ARFCN etc) are configured as expected.

LTE CA Test 1 Run 01

Then you may need to adjust tx_gain and rx_gain to make it suitable for your setup. Followings are the setting that is used for the specific test in this tutorial but you may need to adjust these settings for each TX channels and RX channels. (NOTE : If you are not familiar with adjust tx and rx gain for each TX, RX chain separately, refer to tx_gain and rx_gain tutorial.  In case of rx_gain, you may try with rx_gain: -1 which indicates 'automatic adjust' if you don't have any specific values in mind).

Then power on UE(DUT) and see if the attach and connection is properly established. For the verification of initial attach, NSA establishment and Carrier Aggregation, check out the values in UE_ID, CL, C column.

 

Log Analysis

Sample Log

Check out if PLMN is set properly (to be matched to PLMN in your USIM) and freqBandIndicator are set as intended.

Check out if upperLayerIndication is set to true. In many cases, the UE shows 5G icon on the display just based on this even when NR is not really established.

Now make it sure that the UE support NSA. The easiest and surest way of checking this is to see if DCNR is set to 1 (support) in UE network capability IE of Attach request message.

Then gNB send UE capability enquiry to check if UE has all the necessary capability required for the test.

First gNB send UE capability equiry for LTE only. This is mainly for the case where UE (DUT) does not have NR capability at all.

Check out all the LTE only capability from UE capability information message.

When NSA is configured, gNB send another UE capability enquiry message for nr and lte.

UE report LTE and NR capability via UE capability information.

Instead of looking through super long UE capability Information message itself, it would be easier to check all the bandwidth combinations in tabular format by using [UE Caps] button. (NOTE : This table shows UE category and band combinations only. If you need to check other configurations (e.g, bandwidth etc) you need to look into the contents of UE capability Information)

Once it is confirmed that UE support all the necessary capability for NSA, gNB send RRC Connection Reconfiguration with measurement report configuration. The important part is for NR measurement : measuObjectNR-r15, reportConfigInterRAT.

Then the same RRC message configures specific measIdToAddModList, quantityConfig  for NR measurement.

Then the same message setup a drb for NR.

Here UE send a measurement report for NR cell. If you don't see this in the log, you first need to troubleshoot this like tweaking cell power and improve radio channel quality.

Once gNB recieves the measurement report from UE, it sends RRC Connection Reconfiguration that does several important things at once.

The first thing that this message does in this test is to add NR cell to establish NR NSA.

You may check on the details of NR cells vy checking spCellConfig and see if things are configured as intended.

Then next thing is to add another NR cell to establish 2 CC Carrier Aggregation.

Once the RRC Connection Reconfiguration is received and properly configured without error on UE side, UE perform RACH procedure to establish connection to NR cell. In practice, this RACH process is the trickies step to pass in RF2 NSA test.

NOTE : There are many of possible SCG Failures before and during the RACH process. You can refer to this note for further details.

 

 

Test 2 : FR2 - 8CC NSA

This test is to show how to configure a carrier aggregation between two LTE cells with different frequencies. In this test, carrier aggregation will be forced without any measurement report from UE.

This test configures 3 cells as follows.

It performs following procedure

 

Configuration

In this test, I used gnb-nsa-fr2-8CC.cfg and drb_nr.cfg / udc-auto-cfg.sh will be included in enb configuration file.

LTE CA Test 1 Config 01

I used the mme-ims-bitrate.cfg and ue_db-ims-bitrate.cfg will be included into mme configuration.

LTE CA Test 1 Config 02

The configuration in gnb-nsa-fr2-8CC.cfg is as shown below.  

The first thing to do is to set some of constants you need to set. You would notice a little bit of longer list than in other FR1 test. Some of the parameters are for FR2 specific related to UDC(Up/Down Converter, e.g, UDC_TYPE, IF_ATTENUATION). Some of the constants are added for optimization purpose for the test (e.g, NR_THREAD_DL, NR_THREAD_UL, NR_THREAD_PRACH) and others are common for every test.

LTE CA Test 1 Config 03

Make it sure that you configured enough enumber of sdrs required for your test (args parameter).  I/Q format configuration (sample_hw_fmt) is optional. You may need to tweak this when you have any throttling issues for PCIe traffic.

You can set a specific max number of thread for prach processing (prach_nb_threads). This is optional setting as well. You may see any performance issues, this can be a candidate (one of the many candidates) to tweak

Set the communication channel and configure UDC(Up/Down Converter) accordingly to the settings of FR2 frequency.

NOTE : Actually it is pretty complicated process to configure UDC and requires a lot of optimization. But you don't need to it manually, the shell script that you assigned to cmd parameter (udc-auto-cfg.sh in this case) would do it for you. The only thing you need to pay attention to is to specify the correct ports to which your UDC is connected.

Now set some parameters for optimization. there wouldn't be many things to do with udc_port unless you change the cable connections, but other parameters (e.g, rx_to_tx_latency, tx_power_offset, nb_threads_dl and nb_threads_ul) are those that can be tweaked depending on the situation.

NOTE : It is always good idea to try first with the default values and then start tweaking only when you exactly understand what each of these parameters are for.

Now configure LTE anchor cell and set the cell ID for the first NRcell to be added in NSA (i.e, PCC of NR cell) in end_dc_scg_cell_list.

Now set the measurement configuration (meas_config_desc). In this tutorial, this is mainly to make it sure that UE is properly detected (measured) the NR cell before gNB try to add NR cell for establishing NSA.

NOTE : This is an optional setting, but once you configure this setting, you need to make it sure that UE send proper measurement report to trigger NSA establishment.

Now let's start configuration of NR cells. Here you see 8 NR cells are configured for rf_port 1 through 8. The cell mapped to rf_port 1 will be the first NR cell (PCC of SCG) and the cell mapped to rf_port 2~8 will be the 7 SCCs of NR cell for NR carrier aggregation.

Followings are cell configurations for the 7 SCCs in NR.

This block is to set up the default configurations for all nr cells. Obviously you need to set subcarrier_spacing to 120 for FR2. And setup tdd_ul_dl_config for whatever is allowed for FR2.

 

In mme-ims-bitrate.cfg , only the file name of the ue_db is changed as follows.

 

In ue_db-ims-bitrate.cfg , the explicit bitrate is specified as below

 

Perform the Test

Check out the result of "cell phy" command and make it sure that the number of cells and other cell parameters (e.g, BAND, BW, ARFCN etc) are configured as expected.

LTE CA Test 1 Run 01

Then you may need to adjust tx_gain and rx_gain to make it suitable for your setup. Followings are the setting that is used for the specific test in this tutorial but you may need to adjust these settings for each TX channels and RX channels. (NOTE : If you are not familiar with adjust tx and rx gain for each TX, RX chain separately, refer to tx_gain and rx_gain tutorial.  In case of rx_gain, you may try with rx_gain: -1 which indicates 'automatic adjust' if you don't have any specific values in mind).

Then power on UE(DUT) and see if the attach and connection is properly established. For the verification of initial attach, NSA establishment and Carrier Aggregation, check out the values in UE_ID, CL, C column.

 

Log Analysis

Sample Log

Check out if PLMN is set properly (to be matched to PLMN in your USIM) and freqBandIndicator are set as intended.

Check out if upperLayerIndication is set to true. In many cases, the UE shows 5G icon on the display just based on this even when NR is not really established.

Now make it sure that the UE support NSA. The easiest and surest way of checking this is to see if DCNR is set to 1 (support) in UE network capability IE of Attach request message.

Then gNB send UE capability enquiry to check if UE has all the necessary capability required for the test.

First gNB send UE capability equiry for LTE only. This is mainly for the case where UE (DUT) does not have NR capability at all.

Check out all the LTE only capability from UE capability information message.

When NSA is configured, gNB send another UE capability enquiry message for nr and lte.

UE report LTE and NR capability via UE capability information.

Instead of looking through super long UE capability Information message itself, it would be easier to check all the bandwidth combinations in tabular format by using [UE Caps] button. (NOTE : This table shows UE category and band combinations only. If you need to check other configurations (e.g, bandwidth etc) you need to look into the contents of UE capability Information)

Once it is confirmed that UE support all the necessary capability for NSA, gNB send RRC Connection Reconfiguration with measurement report configuration. The important part is for NR measurement : measuObjectNR-r15, reportConfigInterRAT.

Then the same RRC message configures specific measIdToAddModList, quantityConfig  for NR measurement.

Then the same message setup a drb for NR.

Here UE send a measurement report for NR cell. If you don't see this in the log, you first need to troubleshoot this like tweaking cell power and improve radio channel quality.

Once gNB recieves the measurement report from UE, it sends RRC Connection Reconfiguration that does several important things at once.

The first thing that this message does in this test is to add NR cell to establish NR NSA.

You may check on the details of NR cells vy checking spCellConfig and see if things are configured as intended.

Then next thing is to add the7 SCC cells for NR to establish 8 CC CA.

Once the RRC Connection Reconfiguration is received and properly configured without error on UE side, UE perform RACH procedure to establish connection to NR cell. In practice, this RACH process is the trickies step to pass in RF2 NSA test.

NOTE : There are many of possible SCG Failures before and during the RACH process. You can refer to this note for further details.

 

RRC / NAS Signaling

 

RrcConnectionReconfiguration

: This is the RrcConnectionReconfigurationmessage sent by eNB  to configure NR Addition + adding NR SCC in single step. (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: {

      measConfig {

        reportConfigToRemoveList {

          1

        },

        measIdToRemoveList {

          1

        },

        measGapConfig release: NULL

      },

      radioResourceConfigDedicated {

        mac-MainConfig explicitValue: {

          timeAlignmentTimerDedicated infinity,

          phr-Config setup: {

            periodicPHR-Timer sf500,

            prohibitPHR-Timer sf200,

            dl-PathlossChange dB3

          },

          dualConnectivityPHR setup: {

            phr-ModeOtherCG-r12 real

          }

        },

        drb-ToReleaseList-r15 {

          1

        }

      },

      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 {

                              cellGroupId 1,

                              rlc-BearerToAddModList {

                                {

                                  logicalChannelIdentity 4,

                                  servedRadioBearer drb-Identity: 1,

                                  rlc-Config am: {

                                    ul-AM-RLC {

                                      sn-FieldLength size18,

                                      t-PollRetransmit ms80,

                                      pollPDU p64,

                                      pollByte kB125,

                                      maxRetxThreshold t4

                                    },

                                    dl-AM-RLC {

                                      sn-FieldLength size18,

                                      t-Reassembly ms80,

                                      t-StatusProhibit ms10

                                    }

                                  },

                                  mac-LogicalChannelConfig {

                                    ul-SpecificParameters {

                                      priority 13,

                                      prioritisedBitRate kBps8,

                                      bucketSizeDuration ms100,

                                      logicalChannelGroup 7,

                                      schedulingRequestID 0,

                                      logicalChannelSR-Mask FALSE,

                                      logicalChannelSR-DelayTimerApplied FALSE

                                    }

                                  }

                                }

                              },

                              mac-CellGroupConfig {

                                schedulingRequestConfig {

                                  schedulingRequestToAddModList {

                                    {

                                      schedulingRequestId 0,

                                      sr-TransMax n64

                                    }

                                  }

                                },

                                bsr-Config {

                                  periodicBSR-Timer sf20,

                                  retxBSR-Timer sf320

                                },

                                tag-Config {

                                  tag-ToAddModList {

                                    {

                                      tag-Id 0,

                                      timeAlignmentTimer infinity

                                    }

                                  }

                                },

                                phr-Config setup: {

                                  phr-PeriodicTimer sf500,

                                  phr-ProhibitTimer sf200,

                                  phr-Tx-PowerFactorChange dB3,

                                  multiplePHR TRUE,

                                  dummy FALSE,

                                  phr-Type2OtherCell FALSE,

                                  phr-ModeOtherCG real

                                },

                                skipUplinkTxDynamic FALSE

                              },

                              physicalCellGroupConfig {

                                pdsch-HARQ-ACK-Codebook dynamic

                              },

                              spCellConfig {

                                servCellIndex 1,

                                reconfigurationWithSync {

                                  spCellConfigCommon {

                                    physCellId 500,

                                    downlinkConfigCommon {

                                      frequencyInfoDL {

                                        absoluteFrequencySSB 2073691,

                                        frequencyBandList {

                                          261

                                        },

                                        absoluteFrequencyPointA 2073375,

                                        scs-SpecificCarrierList {

                                          {

                                            offsetToCarrier 0,

                                            subcarrierSpacing kHz120,

                                            carrierBandwidth 66

                                          }

                                        }

                                      },

                                      initialDownlinkBWP {

                                        genericParameters {

                                          locationAndBandwidth 17875,

                                          subcarrierSpacing kHz120

                                        },

                                        pdcch-ConfigCommon setup: {

                                          commonControlResourceSet {

                                            controlResourceSetId 1,

                                            frequencyDomainResources '111111111110000000000000000000000000000000000'B,

                                            duration 1,

                                            cce-REG-MappingType nonInterleaved: NULL,

                                            precoderGranularity sameAsREG-bundle

                                          },

                                          commonSearchSpaceList {

                                            {

                                              searchSpaceId 1,

                                              controlResourceSetId 1,

                                              monitoringSlotPeriodicityAndOffset sl1: NULL,

                                              monitoringSymbolsWithinSlot '10000000000000'B,

                                              nrofCandidates {

                                                aggregationLevel1 n0,

                                                aggregationLevel2 n0,

                                                aggregationLevel4 n4,

                                                aggregationLevel8 n0,

                                                aggregationLevel16 n0

                                              },

                                              searchSpaceType common: {

                                                dci-Format0-0-AndFormat1-0 {

                                                }

                                              }

                                            }

                                          },

                                          ra-SearchSpace 1

                                        },

                                        pdsch-ConfigCommon setup: {

                                          pdsch-TimeDomainAllocationList {

                                            {

                                              mappingType typeA,

                                              startSymbolAndLength 40

                                            },

                                            {

                                              mappingType typeA,

                                              startSymbolAndLength 68

                                            }

                                          }

                                        }

                                      }

                                    },

                                    uplinkConfigCommon {

                                      frequencyInfoUL {

                                        scs-SpecificCarrierList {

                                          {

                                            offsetToCarrier 0,

                                            subcarrierSpacing kHz120,

                                            carrierBandwidth 66

                                          }

                                        }

                                      },

                                      initialUplinkBWP {

                                        genericParameters {

                                          locationAndBandwidth 17875,

                                          subcarrierSpacing kHz120

                                        },

                                        rach-ConfigCommon setup: {

                                          rach-ConfigGeneric {

                                            prach-ConfigurationIndex 149,

                                            msg1-FDM one,

                                            msg1-FrequencyStart 4,

                                            zeroCorrelationZoneConfig 15,

                                            preambleReceivedTargetPower -110,

                                            preambleTransMax n7,

                                            powerRampingStep dB4,

                                            ra-ResponseWindow sl40

                                          },

                                          ssb-perRACH-OccasionAndCB-PreamblesPerSSB one: n8,

                                          ra-ContentionResolutionTimer sf64,

                                          prach-RootSequenceIndex l139: 1,

                                          msg1-SubcarrierSpacing kHz120,

                                          restrictedSetConfig unrestrictedSet

                                        },

                                        pusch-ConfigCommon setup: {

                                          pusch-TimeDomainAllocationList {

                                            {

                                              k2 4,

                                              mappingType typeA,

                                              startSymbolAndLength 27

                                            },

                                            {

                                              k2 3,

                                              mappingType typeA,

                                              startSymbolAndLength 27

                                            }

                                          },

                                          p0-NominalWithGrant -80

                                        },

                                        pucch-ConfigCommon setup: {

                                          pucch-GroupHopping neither,

                                          p0-nominal -80

                                        }

                                      },

                                      dummy ms500

                                    },

                                    ssb-PositionsInBurst longBitmap: '4000000000000000'H,

                                    ssb-periodicityServingCell ms20,

                                    dmrs-TypeA-Position pos2,

                                    ssbSubcarrierSpacing kHz120,

                                    tdd-UL-DL-ConfigurationCommon {

                                      referenceSubcarrierSpacing kHz120,

                                      pattern1 {

                                        dl-UL-TransmissionPeriodicity ms0p625,

                                        nrofDownlinkSlots 3,

                                        nrofDownlinkSymbols 12,

                                        nrofUplinkSlots 1,

                                        nrofUplinkSymbols 0

                                      }

                                    },

                                    ss-PBCH-BlockPower -39

                                  },

                                  newUE-Identity 17921,

                                  t304 ms1000

                                },

                                rlf-TimersAndConstants setup: {

                                  t310 ms1000,

                                  n310 n1,

                                  n311 n1,

                                  t311 ms30000

                                },

                                spCellConfigDedicated {

                                  initialDownlinkBWP {

                                    pdcch-Config setup: {

                                      searchSpacesToAddModList {

                                        {

                                          searchSpaceId 2,

                                          controlResourceSetId 1,

                                          monitoringSlotPeriodicityAndOffset sl1: NULL,

                                          monitoringSymbolsWithinSlot '10000000000000'B,

                                          nrofCandidates {

                                            aggregationLevel1 n0,

                                            aggregationLevel2 n4,

                                            aggregationLevel4 n0,

                                            aggregationLevel8 n0,

                                            aggregationLevel16 n0

                                          },

                                          searchSpaceType ue-Specific: {

                                            dci-Formats formats0-1-And-1-1

                                          }

                                        }

                                      }

                                    },

                                    pdsch-Config setup: {

                                      dmrs-DownlinkForPDSCH-MappingTypeA setup: {

                                        dmrs-AdditionalPosition pos1

                                      },

                                      tci-StatesToAddModList {

                                        {

                                          tci-StateId 0,

                                          qcl-Type1 {

                                            referenceSignal ssb: 1,

                                            qcl-Type typeD

                                          }

                                        }

                                      },

                                      resourceAllocation resourceAllocationType1,

                                      rbg-Size config1,

                                      prb-BundlingType staticBundling: {

                                        bundleSize wideband

                                      },

                                      zp-CSI-RS-ResourceToAddModList {

                                        {

                                          zp-CSI-RS-ResourceId 0,

                                          resourceMapping {

                                            frequencyDomainAllocation row4: '100'B,

                                            nrofPorts p4,

                                            firstOFDMSymbolInTimeDomain 4,

                                            cdm-Type fd-CDM2,

                                            density one: NULL,

                                            freqBand {

                                              startingRB 0,

                                              nrofRBs 68

                                            }

                                          },

                                          periodicityAndOffset slots80: 1

                                        }

                                      },

                                      p-ZP-CSI-RS-ResourceSet setup: {

                                        zp-CSI-RS-ResourceSetId 0,

                                        zp-CSI-RS-ResourceIdList {

                                          0

                                        }

                                      }

                                    },

                                    radioLinkMonitoringConfig setup: {

                                      failureDetectionResourcesToAddModList {

                                        {

                                          radioLinkMonitoringRS-Id 0,

                                          purpose rlf,

                                          detectionResource ssb-Index: 1

                                        }

                                      }

                                    }

                                  },

                                  firstActiveDownlinkBWP-Id 0,

                                  uplinkConfig {

                                    initialUplinkBWP {

                                      pucch-Config setup: {

                                        resourceSetToAddModList {

                                          {

                                            pucch-ResourceSetId 0,

                                            resourceList {

                                              0,

                                              1,

                                              2,

                                              3,

                                              4,

                                              5,

                                              6,

                                              7

                                            }

                                          },

                                          {

                                            pucch-ResourceSetId 1,

                                            resourceList {

                                              8,

                                              9,

                                              10,

                                              11

                                            }

                                          }

                                        },

                                        resourceToAddModList {

                                          {

                                            pucch-ResourceId 0,

                                            startingPRB 0,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 65,

                                            format format1: {

                                              initialCyclicShift 0,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0,

                                              timeDomainOCC 0

                                            }

                                          },

                                          {

                                            pucch-ResourceId 1,

                                            startingPRB 0,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 65,

                                            format format1: {

                                              initialCyclicShift 4,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0,

                                              timeDomainOCC 0

                                            }

                                          },

                                          {

                                            pucch-ResourceId 2,

                                            startingPRB 0,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 65,

                                            format format1: {

                                              initialCyclicShift 8,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0,

                                              timeDomainOCC 0

                                            }

                                          },

                                          {

                                            pucch-ResourceId 3,

                                            startingPRB 0,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 65,

                                            format format1: {

                                              initialCyclicShift 0,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0,

                                              timeDomainOCC 1

                                            }

                                          },

                                          {

                                            pucch-ResourceId 4,

                                            startingPRB 0,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 65,

                                            format format1: {

                                              initialCyclicShift 4,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0,

                                              timeDomainOCC 1

                                            }

                                          },

                                          {

                                            pucch-ResourceId 5,

                                            startingPRB 0,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 65,

                                            format format1: {

                                              initialCyclicShift 8,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0,

                                              timeDomainOCC 1

                                            }

                                          },

                                          {

                                            pucch-ResourceId 6,

                                            startingPRB 0,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 65,

                                            format format1: {

                                              initialCyclicShift 0,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0,

                                              timeDomainOCC 2

                                            }

                                          },

                                          {

                                            pucch-ResourceId 7,

                                            startingPRB 0,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 65,

                                            format format1: {

                                              initialCyclicShift 4,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0,

                                              timeDomainOCC 2

                                            }

                                          },

                                          {

                                            pucch-ResourceId 8,

                                            startingPRB 65,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 0,

                                            format format3: {

                                              nrofPRBs 1,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0

                                            }

                                          },

                                          {

                                            pucch-ResourceId 9,

                                            startingPRB 1,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 64,

                                            format format3: {

                                              nrofPRBs 1,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0

                                            }

                                          },

                                          {

                                            pucch-ResourceId 10,

                                            startingPRB 64,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 1,

                                            format format3: {

                                              nrofPRBs 1,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0

                                            }

                                          },

                                          {

                                            pucch-ResourceId 11,

                                            startingPRB 2,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 63,

                                            format format3: {

                                              nrofPRBs 1,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0

                                            }

                                          },

                                          {

                                            pucch-ResourceId 12,

                                            startingPRB 0,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 65,

                                            format format1: {

                                              initialCyclicShift 8,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0,

                                              timeDomainOCC 2

                                            }

                                          },

                                          {

                                            pucch-ResourceId 13,

                                            startingPRB 63,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 2,

                                            format format3: {

                                              nrofPRBs 1,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0

                                            }

                                          },

                                          {

                                            pucch-ResourceId 14,

                                            startingPRB 63,

                                            intraSlotFrequencyHopping enabled,

                                            secondHopPRB 2,

                                            format format3: {

                                              nrofPRBs 1,

                                              nrofSymbols 14,

                                              startingSymbolIndex 0

                                            }

                                          }

                                        },

                                        format1 setup: {

                                        },

                                        format3 setup: {

                                          maxCodeRate zeroDot25,

                                          simultaneousHARQ-ACK-CSI true

                                        },

                                        schedulingRequestResourceToAddModList {

                                          {

                                            schedulingRequestResourceId 1,

                                            schedulingRequestID 0,

                                            periodicityAndOffset sl80: 4,

                                            resource 12

                                          }

                                        },

                                        dl-DataToUL-ACK {

                                          4,

                                          8,

                                          7,

                                          6

                                        }

                                      },

                                      pusch-Config setup: {

                                        txConfig codebook,

                                        dmrs-UplinkForPUSCH-MappingTypeA setup: {

                                          dmrs-AdditionalPosition pos1,

                                          transformPrecodingDisabled {

                                          }

                                        },

                                        pusch-PowerControl {

                                          msg3-Alpha alpha1,

                                          p0-AlphaSets {

                                            {

                                              p0-PUSCH-AlphaSetId 0,

                                              p0 0,

                                              alpha alpha1

                                            }

                                          },

                                          pathlossReferenceRSToAddModList {

                                            {

                                              pusch-PathlossReferenceRS-Id 0,

                                              referenceSignal ssb-Index: 1

                                            }

                                          },

                                          sri-PUSCH-MappingToAddModList {

                                            {

                                              sri-PUSCH-PowerControlId 0,

                                              sri-PUSCH-PathlossReferenceRS-Id 0,

                                              sri-P0-PUSCH-AlphaSetId 0,

                                              sri-PUSCH-ClosedLoopIndex i0

                                            }

                                          }

                                        },

                                        resourceAllocation resourceAllocationType1,

                                        codebookSubset nonCoherent,

                                        maxRank 1,

                                        uci-OnPUSCH setup: {

                                          betaOffsets semiStatic: {

                                            betaOffsetACK-Index1 9,

                                            betaOffsetACK-Index2 9,

                                            betaOffsetACK-Index3 9,

                                            betaOffsetCSI-Part1-Index1 7,

                                            betaOffsetCSI-Part1-Index2 7,

                                            betaOffsetCSI-Part2-Index1 7,

                                            betaOffsetCSI-Part2-Index2 7

                                          },

                                          scaling f1

                                        }

                                      },

                                      srs-Config setup: {

                                        srs-ResourceSetToAddModList {

                                          {

                                            srs-ResourceSetId 0,

                                            srs-ResourceIdList {

                                              0

                                            },

                                            resourceType aperiodic: {

                                              aperiodicSRS-ResourceTrigger 1,

                                              slotOffset 7

                                            },

                                            usage codebook,

                                            p0 -80,

                                            pathlossReferenceRS ssb-Index: 1

                                          }

                                        },

                                        srs-ResourceToAddModList {

                                          {

                                            srs-ResourceId 0,

                                            nrofSRS-Ports port1,

                                            transmissionComb n2: {

                                              combOffset-n2 0,

                                              cyclicShift-n2 0

                                            },

                                            resourceMapping {

                                              startPosition 0,

                                              nrofSymbols n1,

                                              repetitionFactor n1

                                            },

                                            freqDomainPosition 0,

                                            freqDomainShift 7,

                                            freqHopping {

                                              c-SRS 14,

                                              b-SRS 3,

                                              b-hop 0

                                            },

                                            groupOrSequenceHopping neither,

                                            resourceType aperiodic: {

                                            },

                                            sequenceId 500

                                          }

                                        }

                                      }

                                    },

                                    firstActiveUplinkBWP-Id 0,

                                    pusch-ServingCellConfig setup: {

                                    }

                                  },

                                  pdcch-ServingCellConfig setup: {

                                  },

                                  pdsch-ServingCellConfig setup: {

                                    nrofHARQ-ProcessesForPDSCH n16,

                                    maxMIMO-Layers 2

                                  },

                                  csi-MeasConfig setup: {

                                    nzp-CSI-RS-ResourceToAddModList {

                                      {

                                        nzp-CSI-RS-ResourceId 0,

                                        resourceMapping {

                                          frequencyDomainAllocation other: '010000'B,

                                          nrofPorts p2,

                                          firstOFDMSymbolInTimeDomain 3,

                                          cdm-Type fd-CDM2,

                                          density one: NULL,

                                          freqBand {

                                            startingRB 0,

                                            nrofRBs 68

                                          }

                                        },

                                        powerControlOffset 0,

                                        scramblingID 500,

                                        periodicityAndOffset slots80: 1,

                                        qcl-InfoPeriodicCSI-RS 0

                                      }

                                    },

                                    nzp-CSI-RS-ResourceSetToAddModList {

                                      {

                                        nzp-CSI-ResourceSetId 0,

                                        nzp-CSI-RS-Resources {

                                          0

                                        }

                                      }

                                    },

                                    csi-IM-ResourceToAddModList {

                                      {

                                        csi-IM-ResourceId 0,

                                        csi-IM-ResourceElementPattern pattern1: {

                                          subcarrierLocation-p1 s8,

                                          symbolLocation-p1 4

                                        },

                                        freqBand {

                                          startingRB 0,

                                          nrofRBs 68

                                        },

                                        periodicityAndOffset slots80: 1

                                      }

                                    },

                                    csi-IM-ResourceSetToAddModList {

                                      {

                                        csi-IM-ResourceSetId 0,

                                        csi-IM-Resources {

                                          0

                                        }

                                      }

                                    },

                                    csi-ResourceConfigToAddModList {

                                      {

                                        csi-ResourceConfigId 0,

                                        csi-RS-ResourceSetList nzp-CSI-RS-SSB: {

                                          nzp-CSI-RS-ResourceSetList {

                                            0

                                          }

                                        },

                                        bwp-Id 0,

                                        resourceType periodic

                                      },

                                      {

                                        csi-ResourceConfigId 1,

                                        csi-RS-ResourceSetList csi-IM-ResourceSetList: {

                                          0

                                        },

                                        bwp-Id 0,

                                        resourceType periodic

                                      }

                                    },

                                    csi-ReportConfigToAddModList {

                                      {

                                        reportConfigId 0,

                                        resourcesForChannelMeasurement 0,

                                        csi-IM-ResourcesForInterference 1,

                                        reportConfigType periodic: {

                                          reportSlotConfig slots80: 9,

                                          pucch-CSI-ResourceList {

                                            {

                                              uplinkBandwidthPartId 0,

                                              pucch-Resource 13

                                            }

                                          }

                                        },

                                        reportQuantity cri-RI-PMI-CQI: NULL,

                                        reportFreqConfiguration {

                                          cqi-FormatIndicator widebandCQI,

                                          pmi-FormatIndicator widebandPMI

                                        },

                                        timeRestrictionForChannelMeasurements notConfigured,

                                        timeRestrictionForInterferenceMeasurements notConfigured,

                                        codebookConfig {

                                          codebookType type1: {

                                            subType typeI-SinglePanel: {

                                              nrOfAntennaPorts two: {

                                                twoTX-CodebookSubsetRestriction '111111'B

                                              },

                                              typeI-SinglePanel-ri-Restriction '03'H

                                            },

                                            codebookMode 1

                                          }

                                        },

                                        groupBasedBeamReporting disabled: {

                                        },

                                        cqi-Table table1,

                                        subbandSize value1

                                      },

                                      {

                                        reportConfigId 1,

                                        carrier 2,

                                        resourcesForChannelMeasurement 0,

                                        csi-IM-ResourcesForInterference 1,

                                        reportConfigType periodic: {

                                          reportSlotConfig slots80: 14,

                                          pucch-CSI-ResourceList {

                                            {

                                              uplinkBandwidthPartId 0,

                                              pucch-Resource 14

                                            }

                                          }

                                        },

                                        reportQuantity cri-RI-PMI-CQI: NULL,

                                        reportFreqConfiguration {

                                          cqi-FormatIndicator widebandCQI,

                                          pmi-FormatIndicator widebandPMI

                                        },

                                        timeRestrictionForChannelMeasurements notConfigured,

                                        timeRestrictionForInterferenceMeasurements notConfigured,

                                        codebookConfig {

                                          codebookType type1: {

                                            subType typeI-SinglePanel: {

                                              nrOfAntennaPorts two: {

                                                twoTX-CodebookSubsetRestriction '111111'B

                                              },

                                              typeI-SinglePanel-ri-Restriction '03'H

                                            },

                                            codebookMode 1

                                          }

                                        },

                                        groupBasedBeamReporting disabled: {

                                        },

                                        cqi-Table table1,

                                        subbandSize value1

                                      }

                                    }

                                  },

                                  tag-Id 0

                                }

                              },

                              sCellToAddModList {

                                {

                                  sCellIndex 2,

                                  sCellConfigCommon {

                                    physCellId 501,

                                    downlinkConfigCommon {

                                      frequencyInfoDL {

                                        absoluteFrequencySSB 2075707,

                                        frequencyBandList {

                                          261

                                        },

                                        absoluteFrequencyPointA 2075207,

                                        scs-SpecificCarrierList {

                                          {

                                            offsetToCarrier 0,

                                            subcarrierSpacing kHz120,

                                            carrierBandwidth 66

                                          }

                                        }

                                      },

                                      initialDownlinkBWP {

                                        genericParameters {

                                          locationAndBandwidth 17875,

                                          subcarrierSpacing kHz120

                                        },

                                        pdcch-ConfigCommon setup: {

                                          commonControlResourceSet {

                                            controlResourceSetId 1,

                                            frequencyDomainResources '111111111110000000000000000000000000000000000'B,

                                            duration 1,

                                            cce-REG-MappingType nonInterleaved: NULL,

                                            precoderGranularity sameAsREG-bundle

                                          },

                                          commonSearchSpaceList {

                                            {

                                              searchSpaceId 1,

                                              controlResourceSetId 1,

                                              monitoringSlotPeriodicityAndOffset sl1: NULL,

                                              monitoringSymbolsWithinSlot '10000000000000'B,

                                              nrofCandidates {

                                                aggregationLevel1 n0,

                                                aggregationLevel2 n0,

                                                aggregationLevel4 n4,

                                                aggregationLevel8 n0,

                                                aggregationLevel16 n0

                                              },

                                              searchSpaceType common: {

                                                dci-Format0-0-AndFormat1-0 {

                                                }

                                              }

                                            }

                                          },

                                          ra-SearchSpace 1

                                        },

                                        pdsch-ConfigCommon setup: {

                                          pdsch-TimeDomainAllocationList {

                                            {

                                              mappingType typeA,

                                              startSymbolAndLength 40

                                            },

                                            {

                                              mappingType typeA,

                                              startSymbolAndLength 68

                                            }

                                          }

                                        }

                                      }

                                    },

                                    ssb-PositionsInBurst longBitmap: '4000000000000000'H,

                                    ssb-periodicityServingCell ms20,

                                    dmrs-TypeA-Position pos2,

                                    ssbSubcarrierSpacing kHz120,

                                    tdd-UL-DL-ConfigurationCommon {

                                      referenceSubcarrierSpacing kHz120,

                                      pattern1 {

                                        dl-UL-TransmissionPeriodicity ms0p625,

                                        nrofDownlinkSlots 3,

                                        nrofDownlinkSymbols 12,

                                        nrofUplinkSlots 1,

                                        nrofUplinkSymbols 0

                                      }

                                    },

                                    ss-PBCH-BlockPower -39

                                  },

                                  sCellConfigDedicated {

                                    initialDownlinkBWP {

                                      pdcch-Config setup: {

                                        searchSpacesToAddModList {

                                          {

                                            searchSpaceId 2,

                                            controlResourceSetId 1,

                                            monitoringSlotPeriodicityAndOffset sl1: NULL,

                                            monitoringSymbolsWithinSlot '10000000000000'B,

                                            nrofCandidates {

                                              aggregationLevel1 n0,

                                              aggregationLevel2 n4,

                                              aggregationLevel4 n0,

                                              aggregationLevel8 n0,

                                              aggregationLevel16 n0

                                            },

                                            searchSpaceType ue-Specific: {

                                              dci-Formats formats0-1-And-1-1

                                            }

                                          }

                                        }

                                      },

                                      pdsch-Config setup: {

                                        dmrs-DownlinkForPDSCH-MappingTypeA setup: {

                                          dmrs-AdditionalPosition pos1

                                        },

                                        tci-StatesToAddModList {

                                          {

                                            tci-StateId 0,

                                            qcl-Type1 {

                                              referenceSignal ssb: 1,

                                              qcl-Type typeD

                                            }

                                          }

                                        },

                                        resourceAllocation resourceAllocationType1,

                                        rbg-Size config1,

                                        prb-BundlingType staticBundling: {

                                          bundleSize wideband

                                        },

                                        zp-CSI-RS-ResourceToAddModList {

                                          {

                                            zp-CSI-RS-ResourceId 0,

                                            resourceMapping {

                                              frequencyDomainAllocation row4: '001'B,

                                              nrofPorts p4,

                                              firstOFDMSymbolInTimeDomain 4,

                                              cdm-Type fd-CDM2,

                                              density one: NULL,

                                              freqBand {

                                                startingRB 0,

                                                nrofRBs 68

                                              }

                                            },

                                            periodicityAndOffset slots80: 1

                                          }

                                        },

                                        p-ZP-CSI-RS-ResourceSet setup: {

                                          zp-CSI-RS-ResourceSetId 0,

                                          zp-CSI-RS-ResourceIdList {

                                            0

                                          }

                                        }

                                      }

                                    },

                                    firstActiveDownlinkBWP-Id 0,

                                    pdcch-ServingCellConfig setup: {

                                    },

                                    pdsch-ServingCellConfig setup: {

                                      nrofHARQ-ProcessesForPDSCH n16,

                                      maxMIMO-Layers 2

                                    },

                                    csi-MeasConfig setup: {

                                      nzp-CSI-RS-ResourceToAddModList {

                                        {

                                          nzp-CSI-RS-ResourceId 0,

                                          resourceMapping {

                                            frequencyDomainAllocation other: '000001'B,

                                            nrofPorts p2,

                                            firstOFDMSymbolInTimeDomain 3,

                                            cdm-Type fd-CDM2,

                                            density one: NULL,

                                            freqBand {

                                              startingRB 0,

                                              nrofRBs 68

                                            }

                                          },

                                          powerControlOffset 0,

                                          scramblingID 501,

                                          periodicityAndOffset slots80: 1,

                                          qcl-InfoPeriodicCSI-RS 0

                                        }

                                      },

                                      nzp-CSI-RS-ResourceSetToAddModList {

                                        {

                                          nzp-CSI-ResourceSetId 0,

                                          nzp-CSI-RS-Resources {

                                            0

                                          }

                                        }

                                      },

                                      csi-IM-ResourceToAddModList {

                                        {

                                          csi-IM-ResourceId 0,

                                          csi-IM-ResourceElementPattern pattern1: {

                                            subcarrierLocation-p1 s0,

                                            symbolLocation-p1 4

                                          },

                                          freqBand {

                                            startingRB 0,

                                            nrofRBs 68

                                          },

                                          periodicityAndOffset slots80: 1

                                        }

                                      },

                                      csi-IM-ResourceSetToAddModList {

                                        {

                                          csi-IM-ResourceSetId 0,

                                          csi-IM-Resources {

                                            0

                                          }

                                        }

                                      },

                                      csi-ResourceConfigToAddModList {

                                        {

                                          csi-ResourceConfigId 0,

                                          csi-RS-ResourceSetList nzp-CSI-RS-SSB: {

                                            nzp-CSI-RS-ResourceSetList {

                                              0

                                            }

                                          },

                                          bwp-Id 0,

                                          resourceType periodic

                                        },

                                        {

                                          csi-ResourceConfigId 1,

                                          csi-RS-ResourceSetList csi-IM-ResourceSetList: {

                                            0

                                          },

                                          bwp-Id 0,

                                          resourceType periodic

                                        }

                                      }

                                    },

                                    tag-Id 0

                                  }

                                }

                              }

                            }

                          }

                        }

                      },

                      sk-Counter-r15 0,

                      nr-RadioBearerConfig1-r15 {

                        drb-ToAddModList {

                          {

                            drb-Identity 1,

                            reestablishPDCP true

                          }

                        },

                        securityConfig {

                          securityAlgorithmConfig {

                            cipheringAlgorithm nea0

                          },

                          keyToUse secondary

                        }

                      }

                    }

                  }

                }

              }

            }

          }

        }

      }

    }

  }

}

 

Tips

Configuration Parameter Tweak

FR2 requires very intensitive signal processing since the PHY/MAC layer has to process maximum 8 slots in every 1 ms (1 subframe). It requires a lot of computing power to fully utilize the physical resources (i.e, maximizing the resource allocation). But too much push towards higher scheduling can cause underflow/overflow issue. Trying to push towards as high resource allocation as possible, you may need to carefully tweak a few configuration parameters

rx_to_tx_latency

rx_to_tx_latency specifies minimum k2 value (gap between UL Grant and PUSCH in slots). Default value is 4 and the minimum value that our callbox support is 2. If we put higher values the impact is that the scheduling is not fast enough to fill all the FR2 DL slots, so the throughput will decrease because of empty slots. In this test, you can change this setting by chaning the global constant LAT in the configuration file.

nb_thread_xxxx

this parameter is to limit the max number of signal processing thread for various types of data (i.e, DL, UL or RACH). Because we use such a low rx_to_tx_latency which consumes too much computational resources, we set the limit on the number of threads UL/DL. Especially when we add so many CC it is better to use this thread configuration to prevent TRX discontinutity / Undeflows /Overflows

You can control this configuration with global constant in the configuration file as shown below. You may need to tweak these values depending the callbox hardware model (e.g, Ultimate, Extreme etc) and other factors (e.g, number of CC, channel bandwidth for each carrier etc)

#define NB_THREAD_DL         3

#define NB_THREAD_UL         1

#define NB_THREAD_PRACH      5