Amarisoft

NR DSS

 

This tutorial is about how to configure for DSS (Dynamic Spectrum Sharing) and verify it works. DSS is a mechanism by which LTE and NR share a same spectrum dynamically. Theoretically there are many different options of impementing DSS as summarized in a diagrame below. In reality, it seems that Option 2 and Option 3 are most common choice of the implementation.

NOTE : The illustration below is just to show all the possible implementation of DSS, it does not mean that all of these options are supported by Amarisoft callbox. At least, Option 2(a Non-MBSFN based DSS) and Option 3(MBSFN based DSS) can be tested with gnb-dss.cfg in .

NR DSS DeploymentOption 01

Image Source : Sharetechnote

 

Even though Option 2 and 3 would be simpler to implement comparing to other options, there are still several factors to be considered / planned carefully to guarantee the co-operation of both LTE and NR in the same spectrum. Followings are some of these factors.

NOTE : If you want to look into further details of each of these factors, check out the note in sharetechnote.

 

 

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 UEsim 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.

 

 

Configuration

I have used gnb-dss.cfg with minor change and sib2_3_nosrs.asn without any changes.

NR DSS Config 01

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

NR DSS Config 02

I used ue-nr-dss.cfg which is copied and modifed from ue-nr-nsa.cfg on UEsim.

NR DSS Config 03

 

Following is the configuration in gnb-dss.cfg. In this configuration, I used SISO for simplicity and set ALLOW_SA 1 since we need to allow initial attach for both LTE and NR.

NR DSS Config 04

One important thing to notice in rf_driver configuration is that only one sdr card is enabled even when the two difference cell (a LTE cell and a NR cell) will be used in this test. It is because the two cell uses the exactly same rf spectrum (center frequency and bandwidth) and the scheduling in time and frequency domain over the two cell do not collide against each other.

NR DSS Config 05

In this test, rf_ports for LTE is not configured.

NR DSS Config 06

NR DSS Config 07

Another important thing to note is that the rf_port of LTE cell (i.e, rf_port in cell_list) and the rf_port of NR cell (i.e, rf_port in nr_cell_list) are same meaning that the two cells are utilizing the same spectrum. This is understandable because the fundamental concept of DSS is to let LTE and NR cell use(share) the same spectrum.

NR DSS Config 08

Following is configuration for nr cell. What you need to pay attention is that rf_port in NR cell is same as the rf_port in LTE, which implies that LTE and NR shares the same RF chain.

NR DSS Config 09

In this test, I set the LTE channel BW to 10 Mhz by setting n_rb_dl to 50. (NOTE : you need to set the same channel bandwidth for NR to implement DSS).

NR DSS Config 10

In this test, I configured and enabled measurement report to check the detection of NR cell betore the attempt to add NR cell.

NR DSS Config 11

This is important configuration since NR SSB is supposed to be transmitted in this MBSFN slot.  

NOTE : It is not mandatory to use MBSFN for DSS, but it would be easier to use MBSFN and put the important NR signal (e.g, SSB) in MBSFN subframe to reduce the possible collision between LTE and NR.

NR DSS Config 12

Following is the default configuration of NR cell (nr_cell_default). I set the subcarrier_spacing of NR cell to be same as LTE subcarrier spacing for easy test. Also you should notice that I set the bandwidth to 10Mhz which is the same bandwidth I set for the LTE cell.  Another thing to notice is that I set the ssb_pos_bitmap so that the SSB falls into MBSFN subframe.

NR DSS Config 13

Another import thing to notice is to set dmrs_type_a_pos (the first OFDM symbole of type A dmrs symbol) to be symbol 3. This is to allow mapping type A PDSCH to start from the third symbol and this is to avoid to allocate NR PDSCH overlapping with any possible control channel region of LTE. I also enabled ul_frequency_shift_7p5_khz to align NR UL/DL shift with LTE UL/DL shift.

NR DSS Config 14

Configure NR PRACH subframe to be in the same subframe as LTE PRACH subframe.

NR DSS Config 15

It is important to set the start symbole of NR PDSCH to be OFDM symbol 2 (or greather than symbol 2 is OK) to avoid possible collistion between LTE control channel and NR PDSCH. It is also important to configure the proper x_overhead to give enough rooms for LTE CRS to be allocated in NR PDSCH regions.

NR DSS Config 16

No specific configuration is required for NR PUSCH. You can use the default settings for PUSCH.

NR DSS Config 17

 

Following is the configuration in ue-nr-dss.cfg in UEsim. (NOTE : If you are using a commercial UE for the test, you can skip this part)

Configure the UEsim channel bandwidth for both NR and LTE to be same as the NR/LTE bandwidth of gNB/eNB.

NR DSS Config 18

UEsim does not allow to share the same rf port, so you need to configure two different rf_port between lte connection and NR connection.

NR DSS Config 19

 

 

Perform the Test

Check the cell configuration and see if it is configured as intended. Make it sure that same bandwidth are configured for both LTE and NR.

NR DSS Run 01

Check RF information with rf_info command. As you see here, only one sdr card is used for the two cells. The frequency shown here are the center frequency of both LTE cell and NR cell.

NR DSS Run 02

Power on UE and get it attached.

NR DSS Run 03

With t command, confirm that both LTE and NR cell are connected.

NR DSS Run 04

Generate the high rate of IP data so that you can easily verify the resource allocation between LTE and NR in WebGUI

NR DSS Run 05

 

 

Log Analysis

Sample Log

Confirm that UE support capability for DSS.  The IE rateMatchingLTE-CRS indicates whether the UE supports DSS or Not.

NR DSS Log 01

Then check if mbsfn is configured with IE mbsfn-SubframeConfigList in LTE SIB message. (MBSFN itself is not mandatory requirement for DSS, but we configured and used MBSFN as a part of DSS configuration in this tutorial).

NR DSS Log 02

check monitoringSymbolswithinSlot and pdsch SLIV(startSymbolAndLength) and make it sure that they are not overlapping with LTE control channel region.

NR DSS Log 03

Check NR SIB1 message and see if frequencyShift7p5khz and prach-ConfigurationIndex are configured as set in the configuration file.

NR DSS Log 04

After UE power on and the completion of LTE initial attach, it is expected to get Measurement report for NR cell. If the measurement report for NR cell is recieved, it proceed to the next step.

NR DSS Log 05

now you see NR cell gets added as shown in spCellConfig IE in RRC Connection Reconfiguration message.

Check monitoringSymbolswithinSlot IE and make it sure that it is not overlapping with LTE control channel region.

NR DSS Log 06

Check if frequencyShift7p5khz and prach-ConfigurationIndex are configured as set in the configuration file.

NR DSS Log 07

You see mbsfn is configured in lte-CRS-ToMatchAround IE.

NR DSS Log 08

Now let's check on phy traffic. To check this more easily, let's filter out only the relative log info. I want to display LTE/NR control channel (PDCCH, PHICH, PUCCH) and traffic channels (PDSCH, PUSCH) only.

NR DSS Log 09

Now make it sure that you see control and traffic channel for both LTE and NR are going through.

NR DSS Log 10

If you check RB map, you can check physical channel operation more easily and across wider time span.

NR DSS Log 11

 

 

Spectrum Analysis

If you use the spectrum analyzer built into Amarisoft system, you can confirm on signal flow on physical layer/RF. Of course, you can use any other spectrum analyzer that support spectrogram. One tricky thing is that in most case the spectrogram show color coding based on signal power only, it does not provide any color coding based on the nature of the signal (e.g, PDCCH, PDSCH, SSB etc). So you should have detailed knowledge about the nature of the physical signal and exact positioning of those signals on the spectrogram.

NR DSS Spectrum 01

Amarisoft spectrogram(waterfall) allows zooming in time domain so that you can check the contents in more detail.

NR DSS Spectrum 02

Following image shows the spectrogram for the case where full spectrum is scheduled for user data flow. It is hard (almost impossible) to know which part is LTE traffic or which part is NR traffic just looking at the spectrogram, but you can confirm on the overall utilization of the spectrum.

NR DSS Spectrum 03

 

 

RRC / NAS Signaling

 

UE Capability Information (LTE)

: This is the UE Capability Information message sent by UE  indicating the supportability of DSS. (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: ueCapabilityInformation: {

    rrc-TransactionIdentifier 0,

    criticalExtensions c1: ueCapabilityInformation-r8: {

      ue-CapabilityRAT-ContainerList {

        {

          rat-Type nr,

          ueCapabilityRAT-Container {

            accessStratumRelease rel15,

            pdcp-Parameters {

             ...

            },

            rlc-Parameters {

              ...

            },

            mac-Parameters {

             ...

            },

            phy-Parameters {

              phy-ParametersCommon {

                ...

              },

              phy-ParametersFRX-Diff {

                ...

              },

              phy-ParametersFR1 {

                ...

              }

            },

            rf-Parameters {

              supportedBandListNR {

                {

                  bandNR 5,

                  mimo-ParametersPerBand {

                    codebookParameters {

                      type1 {

                        ...

                    },

                    csi-RS-IM-ReceptionForFeedback {

                      ...

                    },

                    csi-ReportFramework {

                      ...

                    }

                  },

                  bwp-WithoutRestriction supported,

                  bwp-SameNumerology upto4,

                  pusch-256QAM supported,

                  rateMatchingLTE-CRS supported

                }

              }

            },

            measAndMobParameters {

              ...

            },

            featureSets {

              ...

          }

        },

        ...

 

 

SIB2 (LTE)

: This is the SIB2 message sent by eNB  to support DSS. (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: systemInformation: {

    criticalExtensions systemInformation-r8: {

      sib-TypeAndInfo {

        sib2: {

          radioResourceConfigCommon {

            rach-ConfigCommon {

              preambleInfo {

                ...

              },

              powerRampingParameters {

                ...

              },

              ra-SupervisionInfo {

                ...

              },

              ...

            },

            bcch-Config {

              ...

            },

            pcch-Config {

              ...

            },

            prach-Config {

              ...

            },

            pdsch-ConfigCommon {

              ...

            },

            pusch-ConfigCommon {

              ...

            },

            pucch-ConfigCommon {

              ...

            },

            soundingRS-UL-ConfigCommon release: NULL,

            uplinkPowerControlCommon {

              ...

            },

            ul-CyclicPrefixLength len1

          },

          ue-TimersAndConstants {

            ...

          },

          freqInfo {

            ...

          },

          mbsfn-SubframeConfigList {

            {

              radioframeAllocationPeriod n2,

              radioframeAllocationOffset 0,

              subframeAllocation oneFrame: '100000'B

            }

          },

          ...

          plmn-InfoList-r15 {

            {

              upperLayerIndication-r15 true

            }

          }

        },

        ,,

}

 

 

SIB1 (NR)

: This is the SIB1 message sent by gNB  to support DSS. (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 {

      ...

    },

    cellAccessRelatedInfo {

      ...

    },

    connEstFailureControl {

      ...

    },

    servingCellConfigCommon {

      downlinkConfigCommon {

        frequencyInfoDL {

          frequencyBandList {

            {

              freqBandIndicatorNR 5

            }

          },

          offsetToPointA 13,

          scs-SpecificCarrierList {

            {

              offsetToCarrier 0,

              subcarrierSpacing kHz15,

              carrierBandwidth 52

            }

          }

        },

        initialDownlinkBWP {

          genericParameters {

            locationAndBandwidth 14025,

            subcarrierSpacing kHz15

          },

          pdcch-ConfigCommon setup: {

            commonSearchSpaceList {

              {

                searchSpaceId 1,

                controlResourceSetId 0,

                monitoringSlotPeriodicityAndOffset sl1: NULL,

                monitoringSymbolsWithinSlot '01000000000000'B,

                nrofCandidates {

                  aggregationLevel1 n0,

                  aggregationLevel2 n0,

                  aggregationLevel4 n4,

                  aggregationLevel8 n0,

                  aggregationLevel16 n0

                },

                searchSpaceType common: {

                  dci-Format0-0-AndFormat1-0 {

                  }

                }

              }

            },

            ...

          },

          pdsch-ConfigCommon setup: {

            pdsch-TimeDomainAllocationList {

              {

                mappingType typeA,

                startSymbolAndLength 53

              }

            }

          }

        },

        bcch-Config {

          ...

        },

        pcch-Config {

         ...

        }

      },

      uplinkConfigCommon {

        frequencyInfoUL {

          frequencyBandList {

            {

              freqBandIndicatorNR 5

            }

          },

          absoluteFrequencyPointA 166364,

          scs-SpecificCarrierList {

            {

              offsetToCarrier 0,

              subcarrierSpacing kHz15,

              carrierBandwidth 52

            }

          },

          p-Max 10,

          frequencyShift7p5khz true

        },

        initialUplinkBWP {

          genericParameters {

            locationAndBandwidth 14025,

            subcarrierSpacing kHz15

          },

          rach-ConfigCommon setup: {

            rach-ConfigGeneric {

              prach-ConfigurationIndex 16,

              ...

            },

            ...

          },

          pusch-ConfigCommon setup: {

            pusch-TimeDomainAllocationList {

              {

                k2 4,

                mappingType typeA,

                startSymbolAndLength 27

              }

            },

            p0-NominalWithGrant -84

          },

          pucch-ConfigCommon setup: {

            ...

          }

        },

        timeAlignmentTimerCommon infinity

      },

      n-TimingAdvanceOffset n0,

      ssb-PositionsInBurst {

        inOneGroup '10'H

      },

      ...

    },

    ue-TimersAndConstants {

      ...

    }

  }

}

 

 

RrcConnectionReconfiguration (LTE)

: This is the RrcConnectionReconfiguration message sent by eNB  to add NR1 with DSS capability. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

{

  message c1: rrcConnectionReconfiguration: {

    rrc-TransactionIdentifier 0,

    criticalExtensions c1: rrcConnectionReconfiguration-r8: {

      ...

      radioResourceConfigDedicated {

        ...

      },

      nonCriticalExtension {

        nonCriticalExtension {

          nonCriticalExtension {

            nonCriticalExtension {

              nonCriticalExtension {

                nonCriticalExtension {

                  nonCriticalExtension {

                    nonCriticalExtension {

                      nr-Config-r15 setup: {

                        endc-ReleaseAndAdd-r15 FALSE,

                        nr-SecondaryCellGroupConfig-r15 {

                          rrc-TransactionIdentifier 0,

                          criticalExtensions rrcReconfiguration: {

                            secondaryCellGroup {

                              cellGroupId 1,

                              rlc-BearerToAddModList {

                                ...

                              },

                              mac-CellGroupConfig {

                                ...

                              },

                              physicalCellGroupConfig {

                                ...

                              },

                              spCellConfig {

                                servCellIndex 1,

                                reconfigurationWithSync {

                                  spCellConfigCommon {

                                    physCellId 500,

                                    downlinkConfigCommon {

                                      frequencyInfoDL {

                                        absoluteFrequencySSB 176210,

                                        frequencyBandList {

                                          5

                                        },

                                        absoluteFrequencyPointA 175364,

                                        scs-SpecificCarrierList {

                                          {

                                            offsetToCarrier 0,

                                            subcarrierSpacing kHz15,

                                            carrierBandwidth 52

                                          }

                                        }

                                      },

                                      initialDownlinkBWP {

                                        genericParameters {

                                          locationAndBandwidth 14025,

                                          subcarrierSpacing kHz15

                                        },

                                        pdcch-ConfigCommon setup: {

                                          controlResourceSetZero 6,

                                          searchSpaceZero 1,

                                          commonSearchSpaceList {

                                            {

                                              searchSpaceId 1,

                                              controlResourceSetId 0,

                                              monitoringSlotPeriodicityAndOffset sl1: NULL,

                                              monitoringSymbolsWithinSlot '01000000000000'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

                                            }

                                          }

                                        }

                                      }

                                    },

                                    uplinkConfigCommon {

                                      frequencyInfoUL {

                                        frequencyBandList {

                                          5

                                        },

                                        absoluteFrequencyPointA 166364,

                                        scs-SpecificCarrierList {

                                          {

                                            offsetToCarrier 0,

                                            subcarrierSpacing kHz15,

                                            carrierBandwidth 52

                                          }

                                        },

                                        p-Max 10,

                                        frequencyShift7p5khz true

                                      },

                                      initialUplinkBWP {

                                        genericParameters {

                                          locationAndBandwidth 14025,

                                          subcarrierSpacing kHz15

                                        },

                                        rach-ConfigCommon setup: {

                                          rach-ConfigGeneric {

                                            prach-ConfigurationIndex 16,

                                            msg1-FDM one,

                                            msg1-FrequencyStart 4,

                                            zeroCorrelationZoneConfig 11,

                                            preambleReceivedTargetPower -110,

                                            preambleTransMax n7,

                                            powerRampingStep dB4,

                                            ra-ResponseWindow sl10

                                          },

                                          ssb-perRACH-OccasionAndCB-PreamblesPerSSB one: n8,

                                          ra-ContentionResolutionTimer sf64,

                                          prach-RootSequenceIndex l839: 1,

                                          restrictedSetConfig unrestrictedSet

                                        },

                                        pusch-ConfigCommon setup: {

                                          pusch-TimeDomainAllocationList {

                                            {

                                              k2 4,

                                              mappingType typeA,

                                              startSymbolAndLength 27

                                            }

                                          },

                                          ...

                                        },

                                        pucch-ConfigCommon setup: {

                                          ...

                                        }

                                      },

                                      ...

                                    },

                                    n-TimingAdvanceOffset n0,

                                    ssb-PositionsInBurst shortBitmap: '1'H,

                                    ssb-periodicityServingCell ms20,

                                    dmrs-TypeA-Position pos3,

                                    ssbSubcarrierSpacing kHz15,

                                    ss-PBCH-BlockPower -25

                                  },

                                  ...

                                },

                                rlf-TimersAndConstants setup: {

                                  ...

                                },

                                spCellConfigDedicated {

                                  initialDownlinkBWP {

                                    pdcch-Config setup: {

                                      controlResourceSetToAddModList {

                                        {

                                          controlResourceSetId 2,

                                          frequencyDomainResources '111111110000000000000000000000000000000000000'B,

                                          duration 1,

                                          cce-REG-MappingType nonInterleaved: NULL,

                                          precoderGranularity sameAsREG-bundle

                                        }

                                      },

                                      searchSpacesToAddModList {

                                        {

                                          searchSpaceId 2,

                                          controlResourceSetId 2,

                                          monitoringSlotPeriodicityAndOffset sl1: NULL,

                                          monitoringSymbolsWithinSlot '01000000000000'B,

                                          nrofCandidates {

                                            aggregationLevel1 n4,

                                            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

                                      },

                                      ...

                                    }

                                  },

                                  firstActiveDownlinkBWP-Id 0,

                                  uplinkConfig {

                                    initialUplinkBWP {

                                      pucch-Config setup: {

                                        ...

                                      },

                                      pusch-Config setup: {

                                        ...

                                      },

                                      srs-Config setup: {

                                        ...

                                      }

                                    },

                                    firstActiveUplinkBWP-Id 0,

                                    pusch-ServingCellConfig setup: {

                                    }

                                  },

                                  pdcch-ServingCellConfig setup: {

                                  },

                                  pdsch-ServingCellConfig setup: {

                                    xOverhead xOh6,

                                    nrofHARQ-ProcessesForPDSCH n16

                                  },

                                  tag-Id 0,

                                  lte-CRS-ToMatchAround setup: {

                                    carrierFreqDL 312,

                                    carrierBandwidthDL n50,

                                    mbsfn-SubframeConfigList {

                                      {

                                        radioframeAllocationPeriod n2,

                                        radioframeAllocationOffset 0,

                                        subframeAllocation1 oneFrame: '100000'B

                                      }

                                    },

                                    nrofCRS-Ports n1,

                                    v-Shift n1

                                  }

                                }

                              }

                            }

                          }

                        }

                      },

                      sk-Counter-r15 0,

                      nr-RadioBearerConfig1-r15 {

                        ...

                    }