5G/NR  - Measurement Report  

 

 

 

Measurement Report

The topics I will describe in this page is higher level measurement(i.e, RRC layer measurement), but this higher layer measurement is based on very complicated lower layer process. It means you need to do a lot of study on lower layer process to fully understand the details of this higher layer process and parameters that will be explained in this page. For the lower layer process related to measurement report, refer to following pages. You would need to go back and forth many times between this page and following pages.

Overall Structure of Measurement Item and Configuration

Measurement process is configured by a very complicated (probably the most complicated RRC configuration) and confusing RRC parameters. I would suggest you to make practice of understanding some big picture of the overall structure before digging into each individual element.

The first step for the measurement process is to determine "what to measure ?".   For every measurement process, the physical entities to measure is some kind of reference signal. In LTE, those reference signal for the measurement are synchronization signal and/or CRS(Cell Specific Reference signal). Those reference signals in LTE is structured relatively simple way, so the configuration in RRC message is relatively simple. In NR, the types of reference signal is synchronization signal/PBCH Reference Signal and CSI-RS (As you know, in NR there is no Cell Specific Reference signal. Instead, we use special type of reference signal called CSI-RS).

With types of reference signal for the measurements, the measurement types in NR can be catetorized as follows (this is based on 38.331-5.5.1)

 

Once the measurement item (target reference signal to measure), we have to determine the purpose of the measurement and various other details. Then finally you have to configure all of the details into RRC message. The overall structure of RRC message structure for the measurement can be summarized as follows (this is based on 38.331-5.5.1)

Followings are description of each catetories of the configurations :

  • Measurement objects: These are the entities on which the UE performs measurements. They vary by the type of measurement, such as intra-frequency, inter-frequency, and inter-RAT (Radio Access Technology), and include details like frequency/time location, cell-specific offsets, and lists of blacklisted/whitelisted cells. The object ID links the measurement object to each serving cell.
  • Reporting configurations: These define how the UE reports measurements and include the triggering criteria, the reference signal (RS) type used for measurements, and the reporting format. Conditional reconfiguration includes additional criteria and RS types for execution.
  • Measurement identities: These are lists linking measurement objects to reporting configurations. Multiple measurement identities can link to one reporting configuration, and the measurement identity is included in the report sent to the network.
  • Quantity configurations: These configurations determine the filtering applied to measurements during event evaluation, reporting, and periodic reporting. They can have different filter coefficients for various measurement quantities and RS types.
  • Measurement gaps: These are the time periods that the UE can utilize to perform the specified measurements..

Measurment Event

Following table is based on ReportConfigNR in 38.331

Event Type

Description

Event A1

Serving becomes better than threshold

Event A2

Serving becomes worse than threshold

Event A3

Neighbour becomes amount of offset better than PCell/PSCell

Event A4

Neighbour becomes better than threshold

Event A5

PCell/PSCell becomes worse than absolute threshold1 AND Neighbour/SCell becomes better than another absolute threshold2

Event A6

Neighbour becomes amount of offset better than SCell

CondEvent A3

Conditional reconfiguration candidate becomes amount of offset better than PCell/PSCell

CondEvent A5

PCell/PSCell becomes worse than absolute threshold1 AND Conditional reconfiguration candidate becomes better than another absolute threshold2

Event I1

Interference becomes higher than absolute threshold

Measurement GAP

Fundamental logic of the GAP setting is same as in LTE and Legacy case as explained above. Recap the procedure, it can be summarized as follows.

    i) Get the Gap Pattern ID from RRC MeasGapConfig and additional SMTC parameter from

    ii) Get the detailed Gap Setting Parameters for the Gap Pattern from 36.133 Table 8.1.2.1-1

    iii) Determine Gap Subframe based on the condition described as below

Rules may sound simple ? It may sound simple, but you would not know how complicated it is before you really try it. Rehan has put a lot of his time and effort on this and completed the excel spreadsheet to show the gap settings for each subframe automatically according to the parameters you set. He kindly allowed me to share the spreadsheet for readers. Click here to get the file.

Followings a few examples from the spreadsheet.

NOTE : You only need to set parameters highlighted in yellow. The values for grey cells are automatically derived from the vlues in yellow cells.

Example 1 > MGRP = 40ms, SSB Periodicity = 20ms

Example 2 > MGRP = 40ms, SSB Periodicity = 40ms

Basically overall RRC Structure is similar to LTE/Legacy case explained above, but there are a couple of additiona flags a shown and a lot of different gapoffset as shown below.

From 36.331

    MeasConfig ::= SEQUENCE {

      ....

      measGapConfig                         MeasGapConfig OPTIONAL,

      ...

      [[

         measGapConfigPerCC-List-r14         MeasGapConfigPerCC-List-r14 OPTIONAL,

         measGapSharingConfig-r14            MeasGapSharingConfig-r14 OPTIONAL

      ]],

      [[

         fr1-Gap-r15                         BOOLEAN OPTIONAL, -- Need ON

         mgta-r15                            BOOLEAN OPTIONAL -- Need ON

      ]],

      [[

         measGapConfigDensePRS-r15           MeasGapConfigDensePRS-r15 OPTIONAL,

         heightThreshRef-r15 CHOICE {

              release NULL,

              setup INTEGER (0..31)

      } OPTIONAL --Need ON

      ]]

    }

 

      release NULL,

      setup SEQUENCE {

        gapOffset CHOICE {

          gp0 INTEGER (0..39),

          gp1 INTEGER (0..79),

          ...,

          gp2-r14 INTEGER (0..39),

          gp3-r14 INTEGER (0..79),

          gp-ncsg0-r14 INTEGER (0..39),

          gp-ncsg1-r14 INTEGER (0..79),

          gp-ncsg2-r14 INTEGER (0..39),

          gp-ncsg3-r14 INTEGER (0..79),

          gp-nonUniform1-r14 INTEGER (0..1279),

          gp-nonUniform2-r14 INTEGER (0..2559),

          gp-nonUniform3-r14 INTEGER (0..5119),

          gp-nonUniform4-r14 INTEGER (0..10239),

          gp4-r15 INTEGER (0..19),

          gp5-r15 INTEGER (0..159),

          gp6-r15 INTEGER (0..19),

          gp7-r15 INTEGER (0..39),

          gp8-r15 INTEGER (0..79),

          gp9-r15 INTEGER (0..159),

          gp10-r15 INTEGER (0..19),

          gp11-r15 INTEGER (0..159)

        }

      }

    }

 

From 38.331

    MeasObjectNR ::= SEQUENCE {

      ...

      smtc1                SSB-MTC OPTIONAL,

      smtc2                SSB-MTC2 OPTIONAL,

      ...

    }

     

    SSB-MTC ::= SEQUENCE {

      periodicityAndOffset CHOICE {

        sf5             INTEGER (0..4),

        sf10            INTEGER (0..9),

        sf20            INTEGER (0..19),

        sf40            INTEGER (0..39),

        sf80            INTEGER (0..79),

        sf160           INTEGER (0..159)

      },

      duration             ENUMERATED { sf1, sf2, sf3, sf4, sf5 }

    }

     

    SSB-MTC2 ::= SEQUENCE {

      pci-List          SEQUENCE (SIZE (1..maxNrofPCIsPerSMTC)) OF PhysCellId OPTIONAL,

      periodicity       ENUMERATED {sf5, sf10, sf20, sf40, sf80, spare3, spare2, spare1}

    }

 

< 36.133 v15.3 - Table 8.1.2.1-1: Gap Pattern Configurations supported by the UE  >

 

< 36.133 v15.3 - Table 8.1.2.1-2: Gap Pattern Configurations for UE supporting low density burst gap pattens  >

Measurement of NR Cell

The purpose of this section is to provide you with various examples of measurement configurations in RRC messages. I would suggest you to try to get big picture (overall structure) of the RRC message based on tree diagram shown in previous section.

Example 01 >

This is an example RRC message for LTE measurement for LTE and NR cell from Amarisoft. The red part is for NR cell measurement and the other part is for LTE cell measurement.

rrcConnectionReconfiguration: {
    rrc-TransactionIdentifier 0,
    criticalExtensions c1: rrcConnectionReconfiguration-r8: {
      measConfig {
        measObjectToAddModList {
          {
            measObjectId 1,
            measObject measObjectEUTRA: {
              carrierFreq 300,
              allowedMeasBandwidth mbw100,
              presenceAntennaPort1 TRUE,
              neighCellConfig '01'B
            }
          },
{
            measObjectId 2,
            measObject measObjectNR-r15: {
              carrierFreq-r15 631968,
              rs-ConfigSSB-r15 {
                measTimingConfig-r15 {
                  periodicityAndOffset-r15 sf20-r15: 0,
                  ssb-Duration-r15 sf1
                },
                subcarrierSpacingSSB-r15 kHz30
              },
              quantityConfigSet-r15 1,
              bandNR-r15 setup: 78
            }
          }
        },
        reportConfigToAddModList {
          {
            reportConfigId 1,
            reportConfig reportConfigEUTRA: {
              triggerType event: {
                eventId eventA1: {
                  a1-Threshold threshold-RSRP: 90
                },
                hysteresis 10,
                timeToTrigger ms320
              },
              triggerQuantity rsrp,
              reportQuantity both,
              maxReportCells 1,
              reportInterval ms120,
              reportAmount r1
            }
          },
          {
            reportConfigId 2,
            reportConfig reportConfigEUTRA: {
              triggerType event: {
                eventId eventA2: {
                  a2-Threshold threshold-RSRP: 60
                },
                hysteresis 0,
                timeToTrigger ms640
              },
              triggerQuantity rsrp,
              reportQuantity both,
              maxReportCells 1,
              reportInterval ms120,
              reportAmount r1
            }
          },
          {
            reportConfigId 3,
            reportConfig reportConfigInterRAT: {
              triggerType event: {
                eventId eventB1-NR-r15: {
                  b1-ThresholdNR-r15 nr-RSRP-r15: 76,
                  reportOnLeave-r15 FALSE
                },
                hysteresis 0,
                timeToTrigger ms100
              },
              maxReportCells 8,
              reportInterval ms120,
              reportAmount r1,
              reportQuantityCellNR-r15 {
                ss-rsrp TRUE,
                ss-rsrq TRUE,
                ss-sinr TRUE
              }
            }
          }
        },
        measIdToAddModList {
          {
            measId 2,
            measObjectId 1,
            reportConfigId 2
          },
          {
            measId 3,
            measObjectId 2,
            reportConfigId 3
          }
        },
        quantityConfig {
          quantityConfigEUTRA {
            filterCoefficientRSRP fc3
          },
          quantityConfigNRList-r15 {
            {
              measQuantityCellNR-r15 {
                filterCoeff-RSRP-r15 fc3
              }
            }
          }
        },
        measGapConfig release: NULL
      },                                        

Example 02 >

This is an example RRC message for LTE measurement for LTE and NR cell from Amarisoft. The red part is for NR cell measurement and the other part is for LTE cell measurement.

 

RrcReconfiguration for Scell Measurement

{

  message c1: rrcReconfiguration: {

    rrc-TransactionIdentifier 0,

    criticalExtensions rrcReconfiguration: {

      measConfig {

        measObjectToAddModList {

          {

            measObjectId 1,

            measObject measObjectNR: {

              ssbFrequency 621216,

              ssbSubcarrierSpacing kHz30,

              smtc1 {

                periodicityAndOffset sf20: 0,

                duration sf1

              },

              referenceSignalConfig {

                ssb-ConfigMobility {

                  deriveSSB-IndexFromCell FALSE

                }

              },

              quantityConfigIndex 1,

              offsetMO {

              },

              freqBandIndicatorNR 78

            }

          },

          {

            measObjectId 2,

            measObject measObjectNR: {

              ssbFrequency 627264,

              ssbSubcarrierSpacing kHz30,

              smtc1 {

                periodicityAndOffset sf20: 0,

                duration sf1

              },

              referenceSignalConfig {

                ssb-ConfigMobility {

                  deriveSSB-IndexFromCell FALSE

                }

              },

              quantityConfigIndex 1,

              offsetMO {

              },

              freqBandIndicatorNR 78

            }

          }

        },

        reportConfigToAddModList {

          {

            reportConfigId 1,

            reportConfig reportConfigNR: {

              reportType eventTriggered: {

                eventId eventA2: {

                  a2-Threshold rsrp: 16,

                  reportOnLeave FALSE,

                  hysteresis 0,

                  timeToTrigger ms0

                },

                rsType ssb,

                reportInterval ms120,

                reportAmount r1,

                reportQuantityCell {

                  rsrp TRUE,

                  rsrq TRUE,

                  sinr TRUE

                },

                maxReportCells 1,

                includeBeamMeasurements FALSE

              }

            }

          },

          {

            reportConfigId 2,

            reportConfig reportConfigNR: {

              reportType eventTriggered: {

                eventId eventA4: {

                  a4-Threshold rsrp: 36,

                  reportOnLeave FALSE,

                  hysteresis 0,

                  timeToTrigger ms0,

                  useWhiteCellList FALSE

                },

                rsType ssb,

                reportInterval ms120,

                reportAmount r1,

                reportQuantityCell {

                  rsrp TRUE,

                  rsrq TRUE,

                  sinr TRUE

                },

                maxReportCells 1,

                includeBeamMeasurements FALSE

              }

            }

          }

        },

        measIdToAddModList {

          {

            measId 1,

            measObjectId 2,

            reportConfigId 2

          }

        },

        quantityConfig {

          quantityConfigNR-List {

            {

              quantityConfigCell {

                ssb-FilterConfig {

                },

                csi-RS-FilterConfig {

                }

              }

            }

          }

        },

        measGapConfig {

          gapUE setup: {

            gapOffset 16,

            mgl ms6,

            mgrp ms40,

            mgta ms0

          }

        }

      },

      nonCriticalExtension {

        masterCellGroup {

          cellGroupId 0,

          spCellConfig {

            spCellConfigDedicated {

              initialDownlinkBWP {

                pdsch-Config setup: {

                  resourceAllocation resourceAllocationType1,

                  rbg-Size config1,

                  mcs-Table qam256,

                  prb-BundlingType staticBundling: {

                    bundleSize wideband

                  }

                }

              },

              uplinkConfig {

                initialUplinkBWP {

                  pusch-Config setup: {

                    txConfig codebook,

                    resourceAllocation resourceAllocationType1,

                    mcs-Table qam256,

                    mcs-TableTransformPrecoder qam256,

                    codebookSubset nonCoherent,

                    maxRank 1

                  }

                }

              },

              tag-Id 0

            }

          }

        },

        dedicatedNAS-MessageList {

          '7E022CCB5D1C017E0042010977000B...'H

        }

      }

    }

  }

}

 

Measurement Report

{

  message c1: measurementReport: {

    criticalExtensions measurementReport: {

      measResults {

        measId 1,

        measResultServingMOList {

          {

            servCellId 0,

            measResultServingCell {

              physCellId 500,

              measResult {

                cellResults {

                  resultsSSB-Cell {

                    rsrp 70,

                    rsrq 65,

                    sinr 84

                  }

                }

              }

            }

          }

        },

        measResultNeighCells measResultListNR: {

          {

            physCellId 501,

            measResult {

              cellResults {

                resultsSSB-Cell {

                  rsrp 67,

                  rsrq 65,

                  sinr 88

                }

              }

Reference

[1] 38.331 - 5.5 Measurement

[2] 38.133 - 9 Measurement Procedure