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 Synchronization Signal/PBCH signal and CSI-RS, the measurement item 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)
Following table is based on ReportConfigNR in 38.331
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 ]] }
MeasGapConfig ::= CHOICE { 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 { }
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 >
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.
message c1: 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
},
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
|
|||||||||||||||||||||