Amarisoft

NR SA Coreset and Search Space

 

The purpose of this tutorial is to show you how to configure Coreset and Search Space and how those configurations are mapped to RRC message. In addition, this tutorial will explain how each of those search spaces are used throughout the call processing.

NOTE : This tutorial will mostly focus on non-Coreset 0 and non-Search Space 0. The details of Coreset 0 is described in this tutorial.

 

Table of Contents

 

Test Procedure Summary

This test requires gNB configuration change only and you can keep mme, ims configuration as in default.

Step 1 : Set TDD/FDD(NR_TDD). number of DL Antenna(N_ANTENNA_DL), Band(band) and Frequency(dl_nr_arfcn) and Bandwidth(NR_BANDWIDTH) as you want

Step 2 : Configure pdcch parameter as per your requirement. search_space0_index, dedicated_coreset, css, uss, rar_al_index,si_al_index and al_index are the detailed parameters you need to configure. css is the parameter for common search space and uss is the parameter for user specific search space where you can specify the number of candidates for each aggregation level. rar_al_index, si_al_index and al_index are parameters indicating the specific aggregation level and number of candidates for RAR, SIB and user data respectively.

Step 3 : Run the test

Step 4 : Verify the result with Log. Check SIB for verifying the configuration on CSS (Common Search Space) and RRC Setup message for USS. Check PDCCH log to see which specific search space are applied for each PDCCH.

 

Test Setup

Test setup for this tutorial is as shown below.  This is just for low layer testing, you may not need any complicated IP layer setup.

TestSetup Callbox UE 1sdr 01

 

Key Configuration Parameters

Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.

 

Test 1 : Single Dedicated Coreset / Single Search Space

In this test, I am trying to show you how to interpret each of the configuration parameters from default setting(gnb-sa.cfg) and how to correlate the configuration with IE(information elements) in RRC messages.  Then I will add multiple subtests. In the subtest, I will add some additional configuration parameters to have more controll over the coreset/searchspace mapping or control on which search space is supposed to be when.

 

Configuration

The configuration shown here is common configuration for all the subtests belonging to Test 1 and I will not show this configuration repeatedly for every subtest.

I have used gnb-sa-coreset-ss-test1.cfg which is copied and modified from gnb-sa.cfg

NR SA CSI Test 1 Config 01

I am using the default mme, ims config as shown below.

NR BWP Test1 Configuration 02

In gnb-sa-coreset-ss-test1.cfg, it is configured as follows.

In the configuration file, you can select any specific tdd pattern with the parameter NR_TDD_CONFIG.  To apply TDD configuration, you first need to configure the duplex mode (NR_TDD) to 1 (TDD). And then I set NR_TDD_CONFIG to 2 which is one of default sample configuration provided by Amarisoft sample configuration. And I set the channel bandwidth (NR_BANDWIDTH) to 20Mhz and 2x2 MIMO (N_ANTENNA_DL = 2)

NOTE : For the purpose of this test, these configuration is not so important. You can set it in any way that works with your UE.

NR SA CSI Test 1 Config 02

Here the band is set to n78 which is a TDD band. The important part is ssb_pos_bitmap. In this test, only ssb 0 is enabled and all the csi-rs is configured not to collide with the ssb 0 symbols. If you want to change this part, you may need to change CSI-RS symbols accordingly not to collide the changed ssb burst position.

NR SA CSI Test 1 Config 03

Here comes the tricky and confusing part. Sorry for spaghetti like arrows, but this is the best I can do for now. Flow through each of the lines and arrows whenever you are confused with which parameters are mapped to which IE(information elements) in RRC. Just as high level descriptions :

NOTE : related to css configuration, rar_al_index and si_al_index. These specifies the aggregation level for RAR and SIB scheduling.

NOTE : related to us configuration, al_index. These specifies the aggregation level for dedicated traffics.

NR SA CSI Test 1 Config 04

 

Perform the Test

Check cell configurations with cell phy and cell command to confirm that cell configuration is properly configured as you intended.

Power on UE and make it sure the attach is complete and some traffic goes on.

 

Log Analysis

This is just for showing the association between the configuration shown above and IE (Information Elements) in RRC.

First you would check out how search_space0_index is mapped to RRC. It is mapped to searchSpaceZero IE in pdcch-ConfigSIB1 of MIB.

NOTE : pdcch-ConfigSIB1 is a huge topic and there is a separate tutorial for this. Check out this tutorial.

Sample Log

NR SA CSI Test 1 Log 01

Now let's take a look at how css parameter is mapped to RRC. It is mapped to pdcch-ConfigCommon in SIB1. css parameter (object) has many child paramters in it, but by default we usually specify agrregation level with the parameter n_candidates. n_candidates is mapped to nrofCandiates IE and each of the elements in n_candidates array maps to each elements of nrofCandidates IE.

Another important thing worth paying attention to are searchSpaceOtherSystempInformation, pagingSearchSpace and ra-SearchSpace in RRC. In the configuration file of this test, I haven't specified these value. In this case, those IEs uses the seachSpaceID specified in commonSearchSpaceList.

NR SA CSI Test 1 Log 02

Now let's confirm how each of these search spaces are applied to each of the transactions in protocol sequence.

You can confirm that PDCCH for SIB1 uses ss_id configured by search_space0_index.

NR SA CSI Test 1 Log 03

You can confirm that PDCCH for RAR uses ss_id configured in ra-SearchSpace IE in SIB. (NOTE : In this test, this is automatically configured by gNB, but you can explcitely specify it with rar_search_space if you want)

NR SA CSI Test 1 Log 04

Now let's take a look at how dedicated coreset and uss are configured and how they are mapped to RRC.  High level mappings are as follows :

NR SA CSI Test 1 Log 05

You will notice that RRC setup message is scheduled by PDCCH in ss_id configured in ra-SearchSpace which is a css (NOTE : Amarisoft eNB/gNB use css for RRC message with physical layer configuration)

NR SA CSI Test 1 Log 06

Other traffics (i.e, any traffic except SIB, RAR, RRC with PHY config) uses uss.

NR SA CSI Test 1 Log 07

This shows a long sequence of transactions in a single shot showing which search space is used by each transaction. Just try to get familiar with the mapping and search space selection logic.

NR SA CSI Test 1 Log 08

 

Sub Test 1 : Single Dedicated Coreset / Single Search Space - Explicit Configurations

The purpose of this Sub Test is basically same as the previous test but specified  coreset_id, search_space_id explicitely. In this way, you can assign these ids as you like instead of getting them assigned automatically by gNB.

 Just as high level descriptions :

I have used  gnb-sa-coreset-ss-test1-subtest1.cfg which is copied and modified from gnb-sa-coreset-ss-test1.cfg

NOTE : related to css configuration, rar_al_index and si_al_index. These specifies the aggregation level for RAR and SIB scheduling.

NOTE : related to us configuration, al_index. These specifies the aggregation level for dedicated traffics.

 

Then perform the test and look into the logs.

Sample Log

Frist let's take a look at how css parameter is mapped to RRC. It is mapped to pdcch-ConfigCommon in SIB1. css parameter (object) has many child paramters in it, but by default we usually specify agrregation level with the parameter n_candidates. n_candidates is mapped to nrofCandiates IE and each of the elements in n_candidates array maps to each elements of nrofCandidates IE.

Another important thing worth paying attention to are searchSpaceOtherSystempInformation, pagingSearchSpace and ra-SearchSpace in RRC. In the configuration file of this test, I haven't specified these value. In this case, those IEs uses the seachSpaceID specified in commonSearchSpaceList.

Now you can confirm that PDCCH for RAR uses ss_id configured in ra-SearchSpace IE in SIB. (NOTE : In this test, this is automatically configured by gNB, but you can explcitely specify it with rar_search_space if you want)

Now let's take a look at how dedicated coreset and uss are configured and how they are mapped to RRC.  High level mappings are as follows :

This shows a long sequence of transactions in a single shot showing which search space is used by each transaction. Just try to get familiar with the mapping and search space selection logic.

 

Sub Test 2 : Single Dedicated Coreset / Single Search Space - Explicit Configurations : Assigning css to all transactions

The purpose of this Sub Test is basically same as the previous test but specified  coreset_id, search_space_id explicitely. In this way, you can assign these ids as you like instead of getting them assigned automatically by gNB.

NOTE : The main difference between this sub test and previous subtest is to assigning css to every transaction using the parameter dl_search_space and ul_search_space. This is just to show you the functionality of these two parameters, not so much meaning in real application.

 Just as high level descriptions :

I have used  gnb-sa-coreset-ss-test1-subtest2.cfg which is copied and modified from gnb-sa-coreset-ss-test1-subtest1.cfg

NOTE : related to css configuration, rar_al_index and si_al_index. These specifies the aggregation level for RAR and SIB scheduling.

NOTE : related to us configuration, al_index. These specifies the aggregation level for dedicated traffics.

 

Then perform the test and look into the logs.

Sample Log

Frist let's take a look at how css parameter is mapped to RRC. It is mapped to pdcch-ConfigCommon in SIB1. css parameter (object) has many child paramters in it, but by default we usually specify agrregation level with the parameter n_candidates. n_candidates is mapped to nrofCandiates IE and each of the elements in n_candidates array maps to each elements of nrofCandidates IE.

Another important thing worth paying attention to are searchSpaceOtherSystempInformation, pagingSearchSpace and ra-SearchSpace in RRC. In the configuration file of this test, I haven't specified these value. In this case, those IEs uses the seachSpaceID specified in commonSearchSpaceList.

Now you can confirm that PDCCH for RAR uses ss_id configured in ra-SearchSpace IE in SIB. (NOTE : In this test, this is automatically configured by gNB, but you can explcitely specify it with rar_search_space if you want)

Now let's take a look at how dedicated coreset and uss are configured and how they are mapped to RRC.  High level mappings are as follows :

This shows a long sequence of transactions in a single shot showing which search space is used by each transaction. Just try to get familiar with the mapping and search space selection logic.

NOTE : The point here is that every transactions are schedule by PDCCH in search space 2 (configured as css). Even though every ss_id are set to 2, some of them are from from ra-SearchSpace and some others are from dl_search_pace and ul_search_space.

 

Sub Test 3 : Single Dedicated Coreset / Single Search Space - Explicit Configurations : Assigning both css and uss

The purpose of this Sub Test is basically same as the previous test but specified  coreset_id, search_space_id explicitely. In this way, you can assign these ids as you like instead of getting them assigned automatically by gNB.

NOTE : The main difference between this sub test and previous subtest is to assigning specific dss to every transaction that can be specified by dl_search_space and ul_search_space.

 Just as high level descriptions :

I have used  gnb-sa-coreset-ss-test1-subtest3.cfg which is copied and modified from gnb-sa-coreset-ss-test1-subtest2.cfg

NOTE : related to css configuration, rar_al_index and si_al_index. These specifies the aggregation level for RAR and SIB scheduling.

NOTE : related to us configuration, al_index. These specifies the aggregation level for dedicated traffics.

 

Then perform the test and look into the logs.

Sample Log

Frist let's take a look at how css parameter is mapped to RRC. It is mapped to pdcch-ConfigCommon in SIB1. css parameter (object) has many child paramters in it, but by default we usually specify agrregation level with the parameter n_candidates. n_candidates is mapped to nrofCandiates IE and each of the elements in n_candidates array maps to each elements of nrofCandidates IE.

Another important thing worth paying attention to are searchSpaceOtherSystempInformation, pagingSearchSpace and ra-SearchSpace in RRC. In the configuration file of this test, I haven't specified these value. In this case, those IEs uses the seachSpaceID specified in commonSearchSpaceList.

Now you can confirm that PDCCH for RAR uses ss_id configured in ra-SearchSpace IE in SIB. (NOTE : In this test, this is automatically configured by gNB, but you can explcitely specify it with rar_search_space if you want)

Now let's take a look at how dedicated coreset and uss are configured and how they are mapped to RRC.  High level mappings are as follows :

This shows a long sequence of transactions in a single shot showing which search space is used by each transaction. Just try to get familiar with the mapping and search space selection logic.

NOTE : The point here is that only a specific transactions (e.g, RAR, RRC with PHY configuration) are used by css and all others are using the search space specified by dl_search_space and ul_search_space.

 

Test 2 : Multiple Dedicated Coreset / Multiple Search Space - Explicit Configurations : Assigning both css and uss

The purpose of this Sub Test is basically similar to previous test. Main difference is that I configured multiple dedicated and common coresents and search space. In this case, gNB can have more choices to select different search spaces depending on situations

NOTE : The main difference between this sub test and previous subtest is to assigning specific dss to every transaction that can be specified by dl_search_space and ul_search_space.

 Just as high level descriptions :

I have used  gnb-sa-coreset-ss-test2.cfg which is copied and modified from gnb-sa-coreset-ss-test1-subtest3.cfg

NOTE : In this configuration, I just mapped in block-to-block between configuration file and RRC message for simplicity at the sacrifice of some details. I assume that you are already familiar with the detailed mapping (item by item mapping). If not, I would suggest you to refer to cases shown in previous tests.

In previous test, we used coreset 0 for all the css, but you can add another coresets for css as shown here. common_coreset is configured in pdcch-ConfigCommon.commonControlResourceSet IE.

You can also configure multiple dedicated coresets. These dedicated_coreset is populated into pdcch-Config.controlResourceSetToAddModList in RRC Setup message.

css configuration is same as in previous test and it is mapped to pdcch-ConfigCommon.commonSearchSpaceList in SIB1.

NOTE : related to css configuration, rar_al_index and si_al_index. These specifies the aggregation level for RAR and SIB scheduling.

You can also configure multiple uss and these uss are populated into RRC Setup message.

NOTE : If you want, you can explicitely configure which search space is used for which transaction with the parameter rar_search_space, dl_search_space, ul_search_space. rar_serach_space indicates the search space id for common search space that is for scheduling RAR and all other transactions using common search space (e.g, RRC message with PHY configuration). dl_search_space and ul_search_space indicates the search space id for dedicated(user specific) traffics.

 

Then perform the test and look into the logs.

Sample Log

Frist let's take a look at how css parameter is mapped to RRC. It is mapped to pdcch-ConfigCommon in SIB1. css parameter (object) has many child paramters in it, but by default we usually specify agrregation level with the parameter n_candidates. n_candidates is mapped to nrofCandiates IE and each of the elements in n_candidates array maps to each elements of nrofCandidates IE.

Another important thing worth paying attention to are searchSpaceOtherSystempInformation, pagingSearchSpace and ra-SearchSpace in RRC. In the configuration file of this test, I haven't specified these value. In this case, those IEs uses the seachSpaceID specified in commonSearchSpaceList.

Now you can confirm that PDCCH for RAR uses ss_id configured in ra-SearchSpace IE in SIB. (NOTE : In this test, this is automatically configured by gNB, but you can explcitely specify it with rar_search_space if you want)

Now let's take a look at how dedicated coreset and uss are configured and how they are mapped to RRC.  High level mappings are as follows :

You see that the PDCCH for RRC Setup message is still using the css configured by ra-SearchSpace because this message carries PHY configurations.

This shows a long sequence of transactions in a single shot showing which search space is used by each transaction. Just try to get familiar with the mapping and search space selection logic.

NOTE : The point here is that only a specific transactions (e.g, RAR, RRC with PHY configuration) are used by css and all others are using the search space specified by dl_search_space and ul_search_space.

 

RRC / NAS Signaling

 

SIB1 (SA)

: This is the SIB1 message sent by gNB  to configure NR SA. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

{

  message c1: systemInformationBlockType1: {

    cellSelectionInfo {

      q-RxLevMin -70,

      q-QualMin -20

    },

    cellAccessRelatedInfo {

      plmn-IdentityInfoList {

        {

          plmn-IdentityList {

            {

              mcc {

                0,

                0,

                1

              },

              mnc {

                0,

                1

              }

            }

          },

          trackingAreaCode '000064'H,

          cellIdentity '001234501'H,

          cellReservedForOperatorUse notReserved

        }

      }

    },

    servingCellConfigCommon {

      downlinkConfigCommon {

        frequencyInfoDL {

          frequencyBandList {

            {

              freqBandIndicatorNR 78

            }

          },

          offsetToPointA 30,

          scs-SpecificCarrierList {

            {

              offsetToCarrier 0,

              subcarrierSpacing kHz30,

              carrierBandwidth 106

            }

          }

        },

        initialDownlinkBWP {

          genericParameters {

            locationAndBandwidth 28875,

            subcarrierSpacing kHz30

          },

          pdcch-ConfigCommon setup: {

            commonControlResourceSet {

              controlResourceSetId 1,

              frequencyDomainResources '011111110000000000000000000000000000000000000'B,

              duration 2,

              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 {

                  }

                }

              }

            },

            searchSpaceSIB1 0,

            searchSpaceOtherSystemInformation 1,

            pagingSearchSpace 1,

            ra-SearchSpace 1

          },

          pdsch-ConfigCommon setup: {

            pdsch-TimeDomainAllocationList {

              {

                mappingType typeA,

                startSymbolAndLength 53

              },

              {

                mappingType typeA,

                startSymbolAndLength 44

              }

            }

          }

        },

        bcch-Config {

          modificationPeriodCoeff n4

        },

        pcch-Config {

          defaultPagingCycle rf128,

          nAndPagingFrameOffset oneT: NULL,

          ns one

        }

      },

      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 -96

          }

        },

        timeAlignmentTimerCommon infinity

      },

      ssb-PositionsInBurst {

        inOneGroup '80'H

      },

      ssb-PeriodicityServingCell ms20,

      tdd-UL-DL-ConfigurationCommon {

        referenceSubcarrierSpacing kHz30,

        pattern1 {

          dl-UL-TransmissionPeriodicity ms5,

          nrofDownlinkSlots 7,

          nrofDownlinkSymbols 6,

          nrofUplinkSlots 2,

          nrofUplinkSymbols 4

        }

      },

      ss-PBCH-BlockPower -40

    },

    ue-TimersAndConstants {

      t300 ms1000,

      t301 ms1000,

      t310 ms1000,

      n310 n1,

      t311 ms30000,

      n311 n1,

      t319 ms1000

    }

  }

}

 

 

RRC Setup (SA)

: This is the RRC Setup message sent by gNB  to configure NR SA. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

{

  message c1: rrcSetup: {

    rrc-TransactionIdentifier 0,

    criticalExtensions rrcSetup: {

      radioBearerConfig {

        srb-ToAddModList {

          {

            srb-Identity 1

          }

        }

      },

      masterCellGroup {

        cellGroupId 0,

        rlc-BearerToAddModList {

          {

            logicalChannelIdentity 1,

            servedRadioBearer srb-Identity: 1,

            mac-LogicalChannelConfig {

              ul-SpecificParameters {

                priority 1,

                prioritisedBitRate infinity,

                bucketSizeDuration ms5,

                logicalChannelGroup 0,

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

            dummy FALSE,

            phr-Type2OtherCell FALSE,

            phr-ModeOtherCG real

          },

          skipUplinkTxDynamic FALSE

        },

        physicalCellGroupConfig {

          pdsch-HARQ-ACK-Codebook dynamic

        },

        spCellConfig {

          spCellConfigDedicated {

            initialDownlinkBWP {

              pdcch-Config setup: {

                controlResourceSetToAddModList {

                  {

                    controlResourceSetId 3,

                    frequencyDomainResources '111111110000000000000000000000000000000000000'B,

                    duration 1,

                    cce-REG-MappingType nonInterleaved: NULL,

                    precoderGranularity sameAsREG-bundle

                  },

                  {

                    controlResourceSetId 4,

                    frequencyDomainResources '000011110000000000000000000000000000000000000'B,

                    duration 1,

                    cce-REG-MappingType nonInterleaved: NULL,

                    precoderGranularity sameAsREG-bundle

                  }

                },

                searchSpacesToAddModList {

                  {

                    searchSpaceId 2,

                    controlResourceSetId 3,

                    monitoringSlotPeriodicityAndOffset sl1: NULL,

                    monitoringSymbolsWithinSlot '10000000000000'B,

                    nrofCandidates {

                      aggregationLevel1 n0,

                      aggregationLevel2 n4,

                      aggregationLevel4 n2,

                      aggregationLevel8 n1,

                      aggregationLevel16 n0

                    },

                    searchSpaceType ue-Specific: {

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

                    }

                  },

                  {

                    searchSpaceId 3,

                    controlResourceSetId 4,

                    monitoringSlotPeriodicityAndOffset sl1: NULL,

                    monitoringSymbolsWithinSlot '10000000000000'B,

                    nrofCandidates {

                      aggregationLevel1 n0,

                      aggregationLevel2 n4,

                      aggregationLevel4 n2,

                      aggregationLevel8 n1,

                      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,

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

                  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 500

                    }

                  }

                }

              },

              firstActiveUplinkBWP-Id 0,

              pusch-ServingCellConfig setup: {

              }

            },

            pdcch-ServingCellConfig setup: {

            },

            pdsch-ServingCellConfig setup: {

              nrofHARQ-ProcessesForPDSCH n16

            },

            csi-MeasConfig setup: {

              nzp-CSI-RS-ResourceToAddModList {

                {

                  nzp-CSI-RS-ResourceId 0,

                  resourceMapping {

                    frequencyDomainAllocation row2: '100'H,

                    nrofPorts p1,

                    firstOFDMSymbolInTimeDomain 3,

                    cdm-Type noCDM,

                    density one: NULL,

                    freqBand {

                      startingRB 0,

                      nrofRBs 108

                    }

                  },

                  powerControlOffset 0,

                  scramblingID 500,

                  periodicityAndOffset slots80: 1,

                  qcl-InfoPeriodicCSI-RS 0

                },

                {

                  nzp-CSI-RS-ResourceId 1,

                  resourceMapping {

                    frequencyDomainAllocation row1: '4'H,

                    nrofPorts p1,

                    firstOFDMSymbolInTimeDomain 5,

                    cdm-Type noCDM,

                    density three: NULL,

                    freqBand {

                      startingRB 0,

                      nrofRBs 108

                    }

                  },

                  powerControlOffset 0,

                  scramblingID 500,

                  periodicityAndOffset slots80: 1,

                  qcl-InfoPeriodicCSI-RS 0

                },

                {

                  nzp-CSI-RS-ResourceId 2,

                  resourceMapping {

                    frequencyDomainAllocation row1: '4'H,

                    nrofPorts p1,

                    firstOFDMSymbolInTimeDomain 9,

                    cdm-Type noCDM,

                    density three: NULL,

                    freqBand {

                      startingRB 0,

                      nrofRBs 108

                    }

                  },

                  powerControlOffset 0,

                  scramblingID 500,

                  periodicityAndOffset slots80: 1,

                  qcl-InfoPeriodicCSI-RS 0

                },

                {

                  nzp-CSI-RS-ResourceId 3,

                  resourceMapping {

                    frequencyDomainAllocation row1: '4'H,

                    nrofPorts p1,

                    firstOFDMSymbolInTimeDomain 5,

                    cdm-Type noCDM,

                    density three: NULL,

                    freqBand {

                      startingRB 0,

                      nrofRBs 108

                    }

                  },

                  powerControlOffset 0,

                  scramblingID 500,

                  periodicityAndOffset slots80: 2,

                  qcl-InfoPeriodicCSI-RS 0

                },

                {

                  nzp-CSI-RS-ResourceId 4,

                  resourceMapping {

                    frequencyDomainAllocation row1: '4'H,

                    nrofPorts p1,

                    firstOFDMSymbolInTimeDomain 9,

                    cdm-Type noCDM,

                    density three: NULL,

                    freqBand {

                      startingRB 0,

                      nrofRBs 108

                    }

                  },

                  powerControlOffset 0,

                  scramblingID 500,

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

                    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,

                  groupBasedBeamReporting disabled: {

                  },

                  cqi-Table table2,

                  subbandSize value1

                }

              }

            },

            tag-Id 0

          }

        }

      }

    }

  }

}