Amarisoft

NR SA PUCCH

The purpose of this tutorial is to show you how to configure PUCCH and associate the configuration to pucch related IE(informatin elements) in RRC message (e.g, SIB1, RRC Setup) and analyze the log to figure out which physical resources are used for each PUCCH.

NOTE : It is simple to configure PUCCH related parameters in configuration file, but relating the configuration with RRC message and analyzing the log is pretty complicated and requires the detailed 3GPP knowledge on the subject. If you are not familiar with PUCCH specification, I would suggest you to get the detailed understandings on the topic first. You may refer to this note for the details.

 

Table of Contents

 

 

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 : Default Configuration - Single UE

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.  In other words, the purpose of this test is to provide the detailed meaning of the pucch configuration parameter and associated RRC IE (information elements).

 

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.cfg which is one of the default configuration provided by the installation package.

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.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 :  In default configuration, pucch format 1 is used as a short pucch and pucch format 2 is used as the long pucch. NR_TDD and USE_SRS will influence on the pucch format 1 resource allocation (number of symbols for pucch format 1)

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. This is not so important for this test and just use the default settings as it is.

NR SA CSI Test 1 Config 03

In this test, pucch format 1 is used as the short pucch. You would need to some effort to understand the meaning of each parameter because some parameter (e.g, n_cs, n_occ) are a little tricky to understand. High level descriptions on the parameters set in this configuration is as follows :

NR SA CSI Test 1 Config 04

In this test, pucch format 2 will be used as a long pucch. The parameters are straightfoward and you can make a good guess from the name of the parameters or refer to the documents listed under Key Configuration Parameter section.

 

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

The most important part of this tutorial is Log Anaysis and figure out how the configuration parameters are assocated with the related part of the log.

PUCCH is configured in two RRC message in Amarisoft gNB. SIB1 and RRC Setup meaning that you need to collect SIB messages as well as default logs.

Sample Log

To collect the SIB, I first enabled BCCH, MIB, CSI. BCCH is to collect SIB, CSI and MIB are optional for this test, but I would recommend to enable these options.

Just collect the log for a few seconds with above options and disable MIB, BCCH option to stop logging MIB, SIB. If you keep these options enabled during the entire test, you would see so many MIBs and SIBs in the middle of other signaling messages and traffics which make would make it diffuclt to analyze the log.

Once you collected all the log for the test, let's first check out the pucch-ConfigCommon. In this test, I didn't configure this myself, so pucch-ResourceCommon was automatically set by gNB to 11.

NOTE : For the details of physical resources for the pucch-ResourceCommon, refer to this note.

Now check out the pucch resourceSet configuration in RRC Setup. You see 8 pucch resources are assigned to the pucch-ResourceSetId 0 and 4 pucch resources are assigned to the pucch-ResourceSetId 1. This is default setup. You can modify the number of elements in each of the resource set by short_pucch_an_rsc_count and long_pucch_an_rsc_count if you want.

Each of the elements are associated each physical resources of pucch. (NOTE :  Refer to this note regarding how the elements of resource set is associated with each resource configuration. )

Now check out each pucch resource setting in RRC Setup. You would see a lot of resources are created automatically. In general, the total number of resources created here would be (the number of elements in the first pucchResourceSet + the number of elements in the second pucchResourceSet + 1 + 1). In this test, you would see 14 configuration in total (8+4+1+1). '1+1' indicates on pucch resources for SR and one pucch resources for CSI report.

In case of pucch format 1 used in this test, only freq_hopping is directly mapped to the RRC message. n_cs, n_occ does not have direct correspondance to RRC message. It impacts indirectly on the RRC configuration. High level descriptions on the parameters set in this configuration is as follows :

Now you can check out the 4 pucch format 2 which are mapped to the second pucch resource set. The 4 resources are created by the following configuration. The only differences among each resources is startingSymbolIndex which is automatically configured by gNB.

Lastly you see two additional pucch resources, one pucch format 1 for SR reception and another one pucch format 2 for CSI report reception.

Now we have gone through all the pucch configuration and you should be ready to apply all the RRC configurations to the analysis of each PUCCH in PHY log. But it is not easy to remember the entire RRC message or cumbersome to look into RRC message over and over. So my trick is to create a lookup table as follows so that you can easily find which configuration is used for a specific PUCCH based on the log.

Config

Format

pucch-ResourceId

startingPRB

startingSymbolIndex

nrofSymbols

initialCyclicShift

timeDomainOCC

Hopping

(A)

1

 

0

0

14

0

0

neither

(B)

1

0

105

0

14

1

0

enabled

(C)

1

1

105

0

14

5

0

enabled

(D)

1

2

105

0

14

9

0

enabled

(E)

1

3

105

0

14

1

1

enabled

(F)

1

4

105

0

14

5

1

enabled

(G)

1

5

105

0

14

9

1

enabled

(H)

1

6

105

0

14

1

2

enabled

(I)

1

7

105

0

14

5

2

enabled

(J)

2

8

1

0

2

N/A

N/A

enabled

(K)

2

9

1

2

2

N/A

N/A

enabled

(L)

2

10

1

4

2

N/A

N/A

enabled

(M)

2

11

1

6

2

N/A

N/A

enabled

(N)

1

12

105

0

14

9

2

enabled

(O)

2

13

1

8

2

N/A

N/A

enabled

Now let's have some practice to apply the lookup table to a log analysis. Take following log sniffet as an example,

In case of PUCCH for ack/nack, which pucch resource should be used is explicitely defined by pucch_rsc in DCI as shown in (1). But pucch for SR or CSI is not explicitely specified by DCI and you need to figure it out the PUCCH log information and the lookup table we created above.  What you have to do is to create a mapping table between the log information and Config as shown below.

Log

Format

startingPRB

startingSymbolIndex

nrofSymbols

initialCyclicShift

timeDomainOCC

Hopping

 

Config

(2)

1

0

0

14

0

0

neither

==>

(A)

(3)

1

105

0

14

9

2

enabled

==>

(N)

(4)

1

105

0

14

1

0

enabled

==>

(B)

(5)

1

105

0

14

1

0

enabled

==>

(B)

(6)

1

105

0

14

9

2

enabled

==>

(N)

Now let's take another example as shown below.

 What you have to do is to create a mapping table between the log information and Config as shown below.

Log

Format

startingPRB

startingSymbolIndex

nrofSymbols

initialCyclicShift

timeDomainOCC

Hopping

 

Config

(1)

2

1

8

2

N/A

N/A

enabled

==>

(O)

(2)

1

105

0

14

1

0

enabled

==>

(B)

(3)

1

105

0

14

9

2

enabled

==>

(N)

If you plot an RB map, you can get some visual mapping for the pucch resources. (NOTE : From this map, you may figure out the type of pucch based on prb and symbol length, but it would not be possible to clearly associate the plot to each specific pucch resource definition. But it would be helpful to get high level distribution of the pucch resources)

 

Sub Test 1 : Default Configuration - Multiple UE

In this subtest, I will use the exactly same configuration as in previous test in terms of pucch configuration. The difference is the number of UEs connected to gNB. I just modified the configuration just a little bit to support multiple UE and get 5 UEs connected to gNB. (NOTE : If you are not familiar with multi UE connection, refer to this tutorial.  In this test I used Amarisoft UEsim to emulate the multiple UEs, but you may use multiple commercial UEs if you don't have Amarisoft UEsim).

The main reason for getting multiple UE connected is to let gNB to use diverse pucch resources in DCI 1_x. As you might have noticed in previous test log, when there is not much demand for PUCCH (mostly by single UE and low traffic) gNB tend to use always the same pucch resources (mostly the first pucch resources) since they are always available. What I wanted to do in this test is to increase the demand of pucch so that gNB would have chance to use some other pucch resources than stick to the first resources always.

Running the test, I got 5 different UEs (UE ID,1,3,4,5,6) connected as shown below. I just got them to complete the initial attach without injecting any user traffic. (NOTE : If you inject a user traffic (e.g, IP traffic), you would generate more demand for pucch resources and would see more diverse pucch resources in DCI 1_x)

In log analysis in previous test, I identified a specific pucch resources mostly based on the contents of pucch log print and the lookup table that I created, but in this test I will identify the specific pucch resources based on DCI (pucch_rsc, harq_freeback_timing) and some IEs in RRC message.

Sample Log

In the first example shown below,

Applying the same logic to following DCI

Applying the same logic

Last example

If you plot an RB map, you can get some visual mapping for the pucch resources. (NOTE : From this map, you may figure out the type of pucch based on prb and symbol length, but it would not be possible to clearly associate the plot to each specific pucch resource definition. But it would be helpful to get high level distribution of the pucch resources)

 

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

          }

        }

      }

    }

  }

}