Amarisoft

NR SA HO(Handover)

 

This tutorial shows how to test NR SA to NR SA Handover in Inter Frequency. This tutorial also shows how to configure Measurement Report and how to trigger measurement report.  Handover is a procedure of cell change during the connected mode and usually occurs as described below.

NOTE In live network, all of these steps would happen, but in lab test environement there are cases where we skip step 1,2 and just perform Step 3 directly. The case where step 1,2,3 are involved is called 'measurement based  handover' and the case where Step 1,2 are skipped and step 3 is directly performed is called Blind handover. Amarisoft callbox support both measurement based handover and blind handover.

In terms of frequencies of current cell and target/destination cell, the handover can be categorized into two types as below

 

Table of Contents

 

Test Setup

Test setup for this tutorial is as shown below.  

< Setup A >

TestSetup Callbox UE 2sdr 01

< Setup B >

 

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 : SA Inter Frequency Handover - with Cell Power Change

In this test, I will show on a very simple scenario to trigger an handover between two NR SA cells which is triggered by the direct power change of the cell and the corresponding measurement report from UE.

 

Configuration

I used the gnb-sa-ho.cfg which is copied and modified from gnb-sa.cfg

LTE HO Inter Config 01

I also used mme-ims.cfg as it is.

LTE HO Intra Config 02

I used the ue-nr-sa-ho.cfg which is copied and modified from ue-nr-sa.cfg

Configure enb-2cell-ho-inter.cfg as below.

You can configure this part in any way you like. In this test, I used TDD (NR_TDD 1), 2x2 MIMO(N_ANTENNA_DL 2) and bandwidth 40 Mhz (NR_BANDWIDTH 40).

LTE HO Intra Config 03

Make it sure that you have enough number of sdr cards for this test in rf_driver. In this test, I am using only 2 cell with 2x2 MIMO, so dev0, dev1 would be good enough.

I added neighbour cell list(ncell_list) to the configuration of the first cell and add the second cell(n_id_cell:2) as the neighbour cell. As you see, the camping cell (the first cell in this case) and the target cell(the second cell in this case) has different frequency(different dl_earfcn) because this test is for Inter cell Handover.

LTE HO Inter Config 04

I added neighbour cell list(ncell_list) to the configuration of the second cell and add the first cell(n_id_cell:1) as the neighbour cell. As you see, the camping cell (the second cell in this case) and the target cell(the first cell in this case) has different frequency(different dl_earfcn) because this test is for Inter cell Handover.

LTE HO Inter Config 05

Then added measurement criterial before triggering Handover via the parameter meas_config_desc. Once this is configured, UE should report appropriate meausrement report for gNB to trigger handover. (NOTE : If you are using a commercial UE instead of UEsim, I would strongly suggest you to extend inactivity_timer to large value (e.g, 600000 = 10 min) otherwise gNB will release RRC before reaching the point of handover trigger. You can prevent such a early RRC release by generating IP traffic (e.g, continuous ping from callbox to UE or watching a YouTube from UE, but just extending inactivity_timer value would be simpler).

LTE HO Inter Config 06

NOTE : Even if various events are explicitely configured in meas_config_desc, whether they are applied to RRC Reconfiguration or not is determined by various factors. Read carefully on the description of meas_config_desc for NR  and meas_config_desc for NR in enb document for the details. For ENDC case, the logic would become even more complicated. So it is strongly suggested to read the entire section carefully before you start testing.

Now let's look into UEsim(DUT) configuration. (NOTE : If you are using commercial UE instead of UEsim (i.e <Setup A>), you can skip this part.

First, N_CELL is set to 2 because this test require 2 cells and N_ANTENNA_DL is set to 2 for 2x2 MIMO. TDD is set to 1 indicating this is TDD and CELL_BANDWIDTH is set to 40. Basically all of these configuration should match the configuration in gNB(Callbox).

And then the first cell(rf_port 0) is configured to match all the physical layer parameters to the first cell of gNB(Callbox) configuration.

Then the second cell(rf_port 1) is configured to match all the physical layer parameters to the second cell of gNB(Callbox) configuration.

UE configuration is same as default ue-nr-sa. As long as imsi, K matches any nr UE configuration would be OK.

Following is optional which is mainly for automating UEsim operation. What it does is that it automatically power on UE and start IP traffic to prevent early RRC release before Handover is triggered.

 

Perform the test

Start LTE service and check basic cell configuration. Any cell configuration is OK as long as they are all NR cell. (NOTE : If you are using UEsim as a DUT instead of mobile phone, make it sure that the cell configuration on UEsim matches the configurations shown here)

LTE HO Inter Run 01

LTE HO Inter Run 02

Adjust cell power. I used cell_gain command here instead of tx_gain because tx_gain changes broadcasting reference cell power in SIB message and UE may behave unexpectedly due to the SIB changes.

You should see the change of cell ID in 't' output if Handover performs properly.

 

Log Analysis

Sample Log

During the initial attach, Callbox send Measurement Report configuration as below. Check out measObjectToAddModList, reportConfigToAddModList, measIdToAddModList and confirm that all of them are configured as intended.

Confirm ssbFrequency in measObjectNR is configured as you confirmed in 'cell phy' output.

LTE HO Inter Log 01

Check out if reportConfigToAddModList items are properly set as you configured in meas_config_desc in the configuration file.

Check out which specific measurement is configured (i.e, ordered to report) in measIdToAddModList. In this specific measurement report configuration, Event A2 for cell 1 is configured and Measurement Gap is not enabled at this point. (NOTE : gNB will enable Measurement Gap only when the measurement is for inter frequency, inter RAT and Event A2 report is recieved. Check out meas_config_desc for further details).

If you properly adjust the cell power to meet the criteria for Event A2, you will get the measurement report for Event A2.

And then gNB configures Event A3 with Cell 2 in measurement configuration.

If you properly adjust the cell power to meet the criteria for Event A2, you will get the measurement report for Event A2.  gNB enables measurement GAP.

If the cell power is properly set to meet the criteria of event A3 report, you should see the report for the event A3 which is criteria for triggering Handover.

Now gNB triggers Handover to physicalCellId(501) which is cell 2.

 

 

Test 2 : SA Inter Frequency Handover - PingPong Handover with UE Movement

In this test, I will show on a very simple scenario to trigger an handover between two NR SA cells. In this scenario, UE is first connected to a cell and then moves away from the initial cell and gets closer to other cell which triggers measurement report  and lead to handover. Once the UE gets closer to the other cell after the Handover, it changes the direction of the movement 180 degree moving towards the initial cell which lead to another handover. Repetition of this back-and-forth movement between the two cells triggers ping-pong handover.

 

Configuration

I used the gnb-sa-channel-sim-pingpong-ho.cfg which is copied and modified from gnb-sa.cfg

LTE HO Inter Config 01

I also used mme-ims.cfg as it is.

LTE HO Intra Config 02

I used the ue-nr-sa-chan-sim-pingpong-ho.cfg which is copied and modified from ue-nr-sa.cfg

Configure gnb-sa-channel-sim-pingpong-ho.cfg as below.

You can configure this part in any way you like. In this test, I used TDD (NR_TDD 1), 2x2 MIMO(N_ANTENNA_DL 2) and bandwidth 40 Mhz (NR_BANDWIDTH 40).

LTE HO Intra Config 03

Make it sure that you have enough number of sdr cards for this test in rf_driver. In this test, I am using only 2 cell with 2x2 MIMO, so dev0, dev1 would be good enough.

I added neighbour cell list(ncell_list) to the configuration of the first cell and add the second cell(n_id_cell:2) as the neighbour cell. As you see, the camping cell (the first cell in this case) and the target cell(the second cell in this case) has different frequency(different dl_earfcn) because this test is for Inter cell Handover.

LTE HO Inter Config 04

I added neighbour cell list(ncell_list) to the configuration of the second cell and add the first cell(n_id_cell:1) as the neighbour cell. As you see, the camping cell (the second cell in this case) and the target cell(the first cell in this case) has different frequency(different dl_earfcn) because this test is for Inter cell Handover.

LTE HO Inter Config 05

Then added measurement criterial before triggering Handover via the parameter meas_config_desc. Once this is configured, UE should report appropriate meausrement report for gNB to trigger handover. (NOTE : If you are using a commercial UE instead of UEsim, I would strongly suggest you to extend inactivity_timer to large value (e.g, 600000 = 10 min) otherwise gNB will release RRC before reaching the point of handover trigger. You can prevent such a early RRC release by generating IP traffic (e.g, continuous ping from callbox to UE or watching a YouTube from UE, but just extending inactivity_timer value would be simpler).

LTE HO Inter Config 06

NOTE : Even if various events are explicitely configured in meas_config_desc, whether they are applied to RRC Reconfiguration or not is determined by various factors. Read carefully on the description of meas_config_desc for NR  and meas_config_desc for NR in enb document for the details. For ENDC case, the logic would become even more complicated. So it is strongly suggested to read the entire section carefully before you start testing.

Now let's look into UEsim(DUT) configuration. (NOTE : If you are using commercial UE instead of UEsim (i.e <Setup A>), you can skip this part.

First, N_CELL is set to 2 because this test require 2 cells and N_ANTENNA_DL is set to 2 for 2x2 MIMO. TDD is set to 1 indicating this is TDD and CELL_BANDWIDTH is set to 40. Basically all of these configuration should match the configuration in gNB(Callbox).

And then the first cell(rf_port 0) is configured to match all the physical layer parameters to the first cell of gNB(Callbox) configuration.

Then the second cell(rf_port 1) is configured to match all the physical layer parameters to the second cell of gNB(Callbox) configuration.

Then specify UE position (position) and channel model (NOTE: In this test, "EPA" channel model is used but you can use any other model like "awgn"). The position specified here is the initial position, you can move this position while running with RemoteAPI.

Following is optional which is mainly for automating UEsim operation. What it does is that it automatically power on UE and start IP traffic to prevent early RRC release before Handover is triggered.

 

Perform the test

Start LTE service and check basic cell configuration. Any cell configuration is OK as long as they are all NR cell. (NOTE : If you are using UEsim as a DUT instead of mobile phone, make it sure that the cell configuration on UEsim matches the configurations shown here)

LTE HO Inter Run 01

LTE HO Inter Run 02

Now we will triggering measurement report from UE to let gNB initiate hanover by moving UE. The UE start moving farther away from one cell and getting closer to another cell. The UE movement is performed by a remoteAPI. In this test, UE is moving between one cell and another cell repeatedly. So you may write a simple shell script for this as shown below.

#!/bin/bash

 

num_iter=2

 

#set initial position

./ws.js ue '{"message" : "ue_move", "ue_id" : 1, "position" : [10,0], "speed" : 0}'

 

for ((i=0; i<$num_iter; i++)); do

 

  # move to the right on x axis at a 2 m/s

  ./ws.js ue '{"message" : "ue_move", "ue_id" : 1, "speed" : 7.2, "direction" : 0}'

 

  sleep 40

 

  # move to the left on x axis at 2 m/s

  ./ws.js ue '{"message" : "ue_move", "ue_id" : 1, "speed" : 7.2, "direction" : -180}'

 

  sleep 40

 

done

 

#stop it somewhere

./ws.js ue '{"message" : "ue_move", "ue_id" : 1, "position" : [10,0], "speed" : 0}'

You should see the change of cell ID in 't' output if Handover performs properly.

 

Log Analysis

Sample Log (gNB)

Sample Log (UE)

At the highest level, you can check on whether 'Cell' changes back and forth between the two cells (NOTE : Just changed cell does not guarantee the indication of handover since there can be other reasons for the cell change, but this can be a good first level indicator for the handover)

Then you can check if the PHY schedule changes from one cell to another cell in RB map as another indicator of handover.

Another way to confirm the traffic change between two cells can be shown in Bitrate plot.

NOTE : The most obvious indicator of handover should be confirmed by protocol log. The protocol log analysis for this test is same as in Test 1. Check out the log analysis of Test 1 for the details.

 

 

Test 3 : SA Inter Frequency Handover - Blind Handover

In this test, I will show on a very simple scenario to trigger an handover between two NR SA cells which is triggered by the direct power change of the cell and the corresponding measurement report from UE.

 

Configuration

I used the gnb-sa-ho-blind.cfg which is copied and modified from gnb-sa.cfg

LTE HO Inter Config 01

I also used mme-ims.cfg as it is.

LTE HO Intra Config 02

I used the ue-nr-sa-ho.cfg which is copied and modified from ue-nr-sa.cfg

Configure gnb-sa-ho-blind.cfg as below.

You can configure this part in any way you like. In this test, I used TDD (NR_TDD 1), 2x2 MIMO(N_ANTENNA_DL 2) and bandwidth 40 Mhz (NR_BANDWIDTH 40).

LTE HO Intra Config 03

Make it sure that you have enough number of sdr cards for this test in rf_driver. In this test, I am using only 2 cell with 2x2 MIMO, so dev0, dev1 would be good enough.

I added neighbour cell list(ncell_list) to the configuration of the first cell and add the second cell(n_id_cell:2) as the neighbour cell. As you see, the camping cell (the first cell in this case) and the target cell(the second cell in this case) has different frequency(different dl_earfcn) because this test is for Inter cell Handover.

LTE HO Inter Config 04

I added neighbour cell list(ncell_list) to the configuration of the second cell and add the first cell(n_id_cell:1) as the neighbour cell. As you see, the camping cell (the second cell in this case) and the target cell(the first cell in this case) has different frequency(different dl_earfcn) because this test is for Inter cell Handover.

LTE HO Inter Config 05

Since this test case is for blind handover triggered by gNB without any Measurement Report from UE, I commented out meas_config_desc configuration. (NOTE : If you are using a commercial UE instead of UEsim, I would strongly suggest you to extend inactivity_timer to large value (e.g, 600000 = 10 min) otherwise gNB will release RRC before reaching the point of handover trigger. You can prevent such a early RRC release by generating IP traffic (e.g, continuous ping from callbox to UE or watching a YouTube from UE, but just extending inactivity_timer value would be simpler).

LTE HO Inter Config 06

Now let's look into UEsim(DUT) configuration. (NOTE : If you are using commercial UE instead of UEsim (i.e <Setup A>), you can skip this part.

First, N_CELL is set to 2 because this test require 2 cells and N_ANTENNA_DL is set to 2 for 2x2 MIMO. TDD is set to 1 indicating this is TDD and CELL_BANDWIDTH is set to 40. Basically all of these configuration should match the configuration in gNB(Callbox).

And then the first cell(rf_port 0) is configured to match all the physical layer parameters to the first cell of gNB(Callbox) configuration.

Then the second cell(rf_port 1) is configured to match all the physical layer parameters to the second cell of gNB(Callbox) configuration.

UE configuration is same as default ue-nr-sa. As long as imsi, K matches any nr UE configuration would be OK.

 

Perform the test

Start LTE service and check basic cell configuration. Any cell configuration is OK as long as they are all NR cell. (NOTE : If you are using UEsim as a DUT instead of mobile phone, make it sure that the cell configuration on UEsim matches the configurations shown here)

LTE HO Inter Run 01

LTE HO Inter Run 02

The power on UE and wait until the initial attach is complete and the call is in connected status.

Then go to /root/end directory and send remote API command : ./ws.js enb '{"message":"handover","ran_ue_id":1,"pci":501,"ssb_nr_arfcn":712608 }'  (NOTE : In case of intra cell Handover, ./ws.js enb '{"message":"handover","ran_ue_id":1,"pci":501 }'would be enough, but in case of inter cell Handover as in this test case, you need to specify the target cell ssb_nr_arfcn)

[root@CBU-SOPHIA-TEST enb]# ./ws.js enb '{"message":"handover","ran_ue_id":1,"pci":501,"ssb_nr_arfcn":712608 }'

WebSocket remote API tool version 2024-06-06, Copyright (C) 2012-2024 Amarisoft

[0.003] ### Connected to 127.0.0.1:9001

[0.004] ### Ready: name=ENB, type=ENB, version=2024-03-15

[0.031] <== Send message handover id#1

[0.042] ==> Message received

{

    "message": "handover",

    "message_id": "id#1",

    "time": 144.224,

    "utc": 1718117032.955

}

You should see the change of cell ID in 't' output if Handover performs properly.

 

Log Analysis

Sample Log

First it would be good idea to check if UE capability first.

In this test case, gNB send UE capability inquiry for bandNR 78 and 79 as set in the configuration file.

An important thing you may need to check from UE capability Information is to confirm whether the UE support Inter Frequency Handover. You can check this out via  handoverIterF of measAndMobParameters->measAndMobParametersFRX-Diff IE.

Since I commented out meas_config_desc in the configuration file, you would notice that none of the measurement related configuration is set in RRCReconfiguration messages.

Once the remote API command ./ws.js enb '{"message":"handover","ran_ue_id":1,"pci":501,"ssb_nr_arfcn":712608 }' is set and properly accepted, gNB send Handover command in RRCReconfiguration.

If the RRCReconfiguration with Handover command is received by UE and properly processed, UE performs RACH process with the target cell.

 

 

Test 4 : SA Inter Frequency Handover - Blind Handover with Contention-Free RACH

The purpose of this tutorial is to show how to configure and test contention free rach procedure in a simplest manner. In Amarisoft gNB, contention-free rach can be triggered mainly in two scenario. The first scenario is with NSA setup (i.e, RACH to add NR addition) and NR-to-NR handover (i.e, RACH to handover to the destination cell). In this tutorial, contention-free rach procedure in NR-to-NR handover scenario will be demonstrated.

 

Configuration

NOTE : For this test, there is only very minor modification from the configuration of the previous test. I would just shows only the configuration that differs from the previous test configuration here. For the detailed description of the configuration, refer to the configuration of previous test.

I used the gnb-sa-ho-blind-cfra.cfg which is copied and modified from gnb-sa-ho-blind.cfg . Ony this enb configuration file has been modified from previous test. mme, ims and uesim configuration remain unchanged.

LTE HO Inter Config 01

Configure gnb-sa-ho-blind-cfra.cfg as below.

The only one configuration is added in this test comparing to the previous test. I just added reconfig_sync_cfra : true. I put this nr_cell_default in order to apply this configuration to all the cells.

 

Perform the test

Start LTE service and check basic cell configuration. Any cell configuration is OK as long as they are all NR cell. (NOTE : If you are using UEsim as a DUT instead of mobile phone, make it sure that the cell configuration on UEsim matches the configurations shown here)

LTE HO Inter Run 01

LTE HO Inter Run 02

The power on UE and wait until the initial attach is complete and the call is in connected status.

Then go to /root/end directory and send remote API command : ./ws.js enb '{"message":"handover","ran_ue_id":1,"pci":501,"ssb_nr_arfcn":712608 }'  (NOTE : In case of intra cell Handover, ./ws.js enb '{"message":"handover","ran_ue_id":1,"pci":501 }'would be enough, but in case of inter cell Handover as in this test case, you need to specify the target cell ssb_nr_arfcn)

[root@CBU-SOPHIA-TEST enb]# ./ws.js enb '{"message":"handover","ran_ue_id":1,"pci":501,"ssb_nr_arfcn":712608 }'

WebSocket remote API tool version 2024-06-06, Copyright (C) 2012-2024 Amarisoft

[0.003] ### Connected to 127.0.0.1:9001

[0.004] ### Ready: name=ENB, type=ENB, version=2024-03-15

[0.031] <== Send message handover id#1

[0.042] ==> Message received

{

    "message": "handover",

    "message_id": "id#1",

    "time": 144.224,

    "utc": 1718117032.955

}

You should see the change of cell ID in 't' output if Handover performs properly.

 

Log Analysis

Sample Log

NOTE : Since this test is derived from previous test with very minor modification, most part of the log is same as the log of previous test. So I would point out only the part that is important for this specific test. You may refer to the log of previous test for the part that is not explained here.

gNB send RRC reconfiguration that triggers Handover to a destination cell (PCI 501 in this case)

In this RRC reconfig message, you see cfra configuration in rach-ConfigDedicated uplink IE(information element) which indicates a specific ra-PreambleIndex that UE is supposed to use.

Then you can confirm that UE send PRACH with preamble index that is configured by cfra specified by gNB (preamble 8 in this specific test)

 

 

RRC / NAS Signaling

 

RrcReconfiguration

: This is the RrcReconfiguration message sent by eNB  to configure Handover (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: rrcReconfiguration: {

            rrc-TransactionIdentifier 0,

            criticalExtensions rrcReconfiguration: {

              radioBearerConfig {

                srb-ToAddModList {

                  {

                    srb-Identity 1,

                    reestablishPDCP true

                  },

                  {

                    srb-Identity 2,

                    reestablishPDCP true

                  }

                },

                drb-ToAddModList {

                  {

                    drb-Identity 1,

                    reestablishPDCP true

                  }

                }

              },

              nonCriticalExtension {

                masterCellGroup {

                  cellGroupId 0,

                  rlc-BearerToAddModList {

                    {

                      logicalChannelIdentity 4,

                      reestablishRLC true

                    },

                    {

                      logicalChannelIdentity 1,

                      reestablishRLC true

                    },

                    {

                      logicalChannelIdentity 2,

                      reestablishRLC true

                    }

                  },

                  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 FALSE,

                      dummy FALSE,

                      phr-Type2OtherCell FALSE,

                      phr-ModeOtherCG real

                    },

                    skipUplinkTxDynamic FALSE,

                    dataInactivityTimer release: NULL

                  },

                  physicalCellGroupConfig {

                    pdsch-HARQ-ACK-Codebook dynamic

                  },

                  spCellConfig {

                    reconfigurationWithSync {

                      spCellConfigCommon {

                        physCellId 501,

                        downlinkConfigCommon {

                          frequencyInfoDL {

                            absoluteFrequencySSB 712608,

                            frequencyBandList {

                              79

                            },

                            absoluteFrequencyPointA 712062,

                            scs-SpecificCarrierList {

                              {

                                offsetToCarrier 0,

                                subcarrierSpacing kHz30,

                                carrierBandwidth 106

                              }

                            }

                          },

                          initialDownlinkBWP {

                            genericParameters {

                              locationAndBandwidth 28875,

                              subcarrierSpacing kHz30

                            },

                            pdcch-ConfigCommon setup: {

                              controlResourceSetZero 4,

                              searchSpaceZero 0,

                              commonSearchSpaceList {

                                {

                                  searchSpaceId 1,

                                  controlResourceSetId 0,

                                  monitoringSlotPeriodicityAndOffset sl1: NULL,

                                  monitoringSymbolsWithinSlot '10000000000000'B,

                                  nrofCandidates {

                                    aggregationLevel1 n0,

                                    aggregationLevel2 n0,

                                    aggregationLevel4 n4,

                                    aggregationLevel8 n0,

                                    aggregationLevel16 n0

                                  },

                                  searchSpaceType common: {

                                    dci-Format0-0-AndFormat1-0 {

                                    }

                                  }

                                }

                              },

                              searchSpaceSIB1 0,

                              searchSpaceOtherSystemInformation 1,

                              pagingSearchSpace 1,

                              ra-SearchSpace 1

                            },

                            pdsch-ConfigCommon setup: {

                              pdsch-TimeDomainAllocationList {

                                {

                                  mappingType typeA,

                                  startSymbolAndLength 40

                                },

                                {

                                  mappingType typeA,

                                  startSymbolAndLength 57

                                }

                              }

                            }

                          }

                        },

                        uplinkConfigCommon {

                          frequencyInfoUL {

                            scs-SpecificCarrierList {

                              {

                                offsetToCarrier 0,

                                subcarrierSpacing kHz30,

                                carrierBandwidth 106

                              }

                            }

                          },

                          initialUplinkBWP {

                            genericParameters {

                              locationAndBandwidth 28875,

                              subcarrierSpacing kHz30

                            },

                            rach-ConfigCommon setup: {

                              rach-ConfigGeneric {

                                prach-ConfigurationIndex 160,

                                msg1-FDM one,

                                msg1-FrequencyStart 7,

                                zeroCorrelationZoneConfig 15,

                                preambleReceivedTargetPower -110,

                                preambleTransMax n7,

                                powerRampingStep dB4,

                                ra-ResponseWindow sl20

                              },

                              ssb-perRACH-OccasionAndCB-PreamblesPerSSB one: n8,

                              ra-ContentionResolutionTimer sf64,

                              prach-RootSequenceIndex l139: 1,

                              msg1-SubcarrierSpacing kHz30,

                              restrictedSetConfig unrestrictedSet

                            },

                            pusch-ConfigCommon setup: {

                              pusch-TimeDomainAllocationList {

                                {

                                  k2 7,

                                  mappingType typeA,

                                  startSymbolAndLength 27

                                },

                                {

                                  k2 4,

                                  mappingType typeA,

                                  startSymbolAndLength 27

                                },

                                {

                                  k2 2,

                                  mappingType typeA,

                                  startSymbolAndLength 27

                                }

                              },

                              p0-NominalWithGrant -84

                            },

                            pucch-ConfigCommon setup: {

                              pucch-ResourceCommon 11,

                              pucch-GroupHopping neither,

                              p0-nominal -90

                            }

                          },

                          dummy ms500

                        },

                        ssb-PositionsInBurst mediumBitmap: '80'H,

                        ssb-periodicityServingCell ms20,

                        dmrs-TypeA-Position pos2,

                        ssbSubcarrierSpacing kHz30,

                        tdd-UL-DL-ConfigurationCommon {

                          referenceSubcarrierSpacing kHz30,

                          pattern1 {

                            dl-UL-TransmissionPeriodicity ms5,

                            nrofDownlinkSlots 7,

                            nrofDownlinkSymbols 6,

                            nrofUplinkSlots 2,

                            nrofUplinkSymbols 4

                          }

                        },

                        ss-PBCH-BlockPower -60

                      },

                      newUE-Identity 17922,

                      t304 ms1000,

                      smtc {

                        periodicityAndOffset sf20: 0,

                        duration sf1

                      }

                    },

                    spCellConfigDedicated {

                      initialDownlinkBWP {

                        pdcch-Config setup: {

                          controlResourceSetToAddModList {

                            {

                              controlResourceSetId 2,

                              frequencyDomainResources '111111111111111110000000000000000000000000000'B,

                              duration 1,

                              cce-REG-MappingType nonInterleaved: NULL,

                              precoderGranularity sameAsREG-bundle

                            }

                          },

                          searchSpacesToAddModList {

                            {

                              searchSpaceId 2,

                              controlResourceSetId 2,

                              monitoringSlotPeriodicityAndOffset sl1: NULL,

                              monitoringSymbolsWithinSlot '10000000000000'B,

                              nrofCandidates {

                                aggregationLevel1 n0,

                                aggregationLevel2 n2,

                                aggregationLevel4 n1,

                                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: 0,

                                qcl-Type typeD

                              }

                            }

                          },

                          resourceAllocation resourceAllocationType1,

                          rbg-Size config1,

                          mcs-Table qam256,

                          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 108

                                }

                              },

                              periodicityAndOffset slots80: 1

                            }

                          },

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

                            zp-CSI-RS-ResourceSetId 0,

                            zp-CSI-RS-ResourceIdList {

                              0

                            }

                          }

                        }

                      },

                      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 105,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 0,

                                format format1: {

                                  initialCyclicShift 1,

                                  nrofSymbols 14,

                                  startingSymbolIndex 0,

                                  timeDomainOCC 0

                                }

                              },

                              {

                                pucch-ResourceId 1,

                                startingPRB 105,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 0,

                                format format1: {

                                  initialCyclicShift 5,

                                  nrofSymbols 14,

                                  startingSymbolIndex 0,

                                  timeDomainOCC 0

                                }

                              },

                              {

                                pucch-ResourceId 2,

                                startingPRB 105,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 0,

                                format format1: {

                                  initialCyclicShift 9,

                                  nrofSymbols 14,

                                  startingSymbolIndex 0,

                                  timeDomainOCC 0

                                }

                              },

                              {

                                pucch-ResourceId 3,

                                startingPRB 105,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 0,

                                format format1: {

                                  initialCyclicShift 1,

                                  nrofSymbols 14,

                                  startingSymbolIndex 0,

                                  timeDomainOCC 1

                                }

                              },

                              {

                                pucch-ResourceId 4,

                                startingPRB 105,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 0,

                                format format1: {

                                  initialCyclicShift 5,

                                  nrofSymbols 14,

                                  startingSymbolIndex 0,

                                  timeDomainOCC 1

                                }

                              },

                              {

                                pucch-ResourceId 5,

                                startingPRB 105,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 0,

                                format format1: {

                                  initialCyclicShift 9,

                                  nrofSymbols 14,

                                  startingSymbolIndex 0,

                                  timeDomainOCC 1

                                }

                              },

                              {

                                pucch-ResourceId 6,

                                startingPRB 105,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 0,

                                format format1: {

                                  initialCyclicShift 1,

                                  nrofSymbols 14,

                                  startingSymbolIndex 0,

                                  timeDomainOCC 2

                                }

                              },

                              {

                                pucch-ResourceId 7,

                                startingPRB 105,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 0,

                                format format1: {

                                  initialCyclicShift 5,

                                  nrofSymbols 14,

                                  startingSymbolIndex 0,

                                  timeDomainOCC 2

                                }

                              },

                              {

                                pucch-ResourceId 8,

                                startingPRB 1,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 104,

                                format format2: {

                                  nrofPRBs 1,

                                  nrofSymbols 2,

                                  startingSymbolIndex 0

                                }

                              },

                              {

                                pucch-ResourceId 9,

                                startingPRB 1,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 104,

                                format format2: {

                                  nrofPRBs 1,

                                  nrofSymbols 2,

                                  startingSymbolIndex 2

                                }

                              },

                              {

                                pucch-ResourceId 10,

                                startingPRB 1,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 104,

                                format format2: {

                                  nrofPRBs 1,

                                  nrofSymbols 2,

                                  startingSymbolIndex 4

                                }

                              },

                              {

                                pucch-ResourceId 11,

                                startingPRB 1,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 104,

                                format format2: {

                                  nrofPRBs 1,

                                  nrofSymbols 2,

                                  startingSymbolIndex 6

                                }

                              },

                              {

                                pucch-ResourceId 12,

                                startingPRB 105,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 0,

                                format format1: {

                                  initialCyclicShift 9,

                                  nrofSymbols 14,

                                  startingSymbolIndex 0,

                                  timeDomainOCC 2

                                }

                              },

                              {

                                pucch-ResourceId 13,

                                startingPRB 1,

                                intraSlotFrequencyHopping enabled,

                                secondHopPRB 104,

                                format format2: {

                                  nrofPRBs 1,

                                  nrofSymbols 2,

                                  startingSymbolIndex 8

                                }

                              }

                            },

                            format1 setup: {

                            },

                            format2 setup: {

                              maxCodeRate zeroDot25

                            },

                            schedulingRequestResourceToAddModList {

                              {

                                schedulingRequestResourceId 1,

                                schedulingRequestID 0,

                                periodicityAndOffset sl40: 8,

                                resource 12

                              }

                            },

                            dl-DataToUL-ACK {

                              8,

                              7,

                              6,

                              5,

                              4,

                              12,

                              11

                            }

                          },

                          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: 0

                                }

                              },

                              sri-PUSCH-MappingToAddModList {

                                {

                                  sri-PUSCH-PowerControlId 0,

                                  sri-PUSCH-PathlossReferenceRS-Id 0,

                                  sri-P0-PUSCH-AlphaSetId 0,

                                  sri-PUSCH-ClosedLoopIndex i0

                                }

                              }

                            },

                            resourceAllocation resourceAllocationType1,

                            mcs-Table qam256,

                            mcs-TableTransformPrecoder qam256,

                            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 -84,

                                pathlossReferenceRS ssb-Index: 0

                              }

                            },

                            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 9,

                                freqHopping {

                                  c-SRS 22,

                                  b-SRS 3,

                                  b-hop 0

                                },

                                groupOrSequenceHopping neither,

                                resourceType aperiodic: {

                                },

                                sequenceId 501

                              }

                            }

                          }

                        },

                        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: '000001'B,

                              nrofPorts p2,

                              firstOFDMSymbolInTimeDomain 3,

                              cdm-Type fd-CDM2,

                              density one: NULL,

                              freqBand {

                                startingRB 0,

                                nrofRBs 108

                              }

                            },

                            powerControlOffset 0,

                            scramblingID 501,

                            periodicityAndOffset slots80: 1,

                            qcl-InfoPeriodicCSI-RS 0

                          },

                          {

                            nzp-CSI-RS-ResourceId 1,

                            resourceMapping {

                              frequencyDomainAllocation row1: '1'H,

                              nrofPorts p1,

                              firstOFDMSymbolInTimeDomain 5,

                              cdm-Type noCDM,

                              density three: NULL,

                              freqBand {

                                startingRB 0,

                                nrofRBs 108

                              }

                            },

                            powerControlOffset 0,

                            scramblingID 501,

                            periodicityAndOffset slots80: 1,

                            qcl-InfoPeriodicCSI-RS 0

                          },

                          {

                            nzp-CSI-RS-ResourceId 2,

                            resourceMapping {

                              frequencyDomainAllocation row1: '1'H,

                              nrofPorts p1,

                              firstOFDMSymbolInTimeDomain 9,

                              cdm-Type noCDM,

                              density three: NULL,

                              freqBand {

                                startingRB 0,

                                nrofRBs 108

                              }

                            },

                            powerControlOffset 0,

                            scramblingID 501,

                            periodicityAndOffset slots80: 1,

                            qcl-InfoPeriodicCSI-RS 0

                          },

                          {

                            nzp-CSI-RS-ResourceId 3,

                            resourceMapping {

                              frequencyDomainAllocation row1: '1'H,

                              nrofPorts p1,

                              firstOFDMSymbolInTimeDomain 5,

                              cdm-Type noCDM,

                              density three: NULL,

                              freqBand {

                                startingRB 0,

                                nrofRBs 108

                              }

                            },

                            powerControlOffset 0,

                            scramblingID 501,

                            periodicityAndOffset slots80: 2,

                            qcl-InfoPeriodicCSI-RS 0

                          },

                          {

                            nzp-CSI-RS-ResourceId 4,

                            resourceMapping {

                              frequencyDomainAllocation row1: '1'H,

                              nrofPorts p1,

                              firstOFDMSymbolInTimeDomain 9,

                              cdm-Type noCDM,

                              density three: NULL,

                              freqBand {

                                startingRB 0,

                                nrofRBs 108

                              }

                            },

                            powerControlOffset 0,

                            scramblingID 501,

                            periodicityAndOffset slots80: 2,

                            qcl-InfoPeriodicCSI-RS 0

                          }

                        },

                        nzp-CSI-RS-ResourceSetToAddModList {

                          {

                            nzp-CSI-ResourceSetId 0,

                            nzp-CSI-RS-Resources {

                              0

                            }

                          },

                          {

                            nzp-CSI-ResourceSetId 1,

                            nzp-CSI-RS-Resources {

                              1,

                              2,

                              3,

                              4

                            },

                            trs-Info true

                          }

                        },

                        csi-IM-ResourceToAddModList {

                          {

                            csi-IM-ResourceId 0,

                            csi-IM-ResourceElementPattern pattern1: {

                              subcarrierLocation-p1 s0,

                              symbolLocation-p1 4

                            },

                            freqBand {

                              startingRB 0,

                              nrofRBs 108

                            },

                            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-ResourceConfigId 2,

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

                              nzp-CSI-RS-ResourceSetList {

                                1

                              }

                            },

                            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 table2,

                            subbandSize value1

                          }

                        }

                      },

                      tag-Id 0,

                      servingCellMO 1,

                      lte-CRS-ToMatchAround release: NULL

                    }

                  }

                },

                masterKeyUpdate {

                  keySetChangeIndicator FALSE,

                  nextHopChainingCount 0

                }

              }

            }

          }

        }