4G/LTE - LTE Advanced

 

 

 

RRC Connection Reconfiguration for Measuring the Second Cell

 

To make it sure that Network triggers adding the second cell only when UE can detect the second cell with a certain signal condition, Network usually perform measurement for the second cell. One of the example of this measurement process is as follows. The example is one reconfiguration and the report it produced, both taken from a decoder. Reading them together shows where the threshold is set, which carrier each measurement identity points at, and how the raw integers in the report turn back into dBm.

The threshold the network sets

A threshold in an RRC message is never written in dBm. It is an integer, and the specification supplies the arithmetic that turns that integer back into a power. Two of the three lines below give that arithmetic, and the third says the quantity has to be consistent across an event.

According to 36.331,

ThresholdEUTRA

  • For RSRP: RSRP based threshold for event evaluation. The actual value is IE value - 140 dBm.
  • For RSRQ: RSRQ based threshold for event evaluation. The actual value is (IE value - 40)/2 dB.
  • EUTRAN configures the same threshold quantity for all the thresholds of an event.

The arithmetic matters because nothing in the message carries the unit. The field threshold-RSRP is typed as RSRP-Range, which 36.331 defines as INTEGER(0..97), and each of those 98 steps is one dB. Subtracting 140 turns the index into dBm, so 0 sits at the bottom of the range and 97 at the top.

RSRQ is not indexed the same way. RSRQ-Range is INTEGER(0..34) and the rule halves the difference, so one step is half a dB rather than a whole one. Apply the RSRP rule to an RSRQ value, then, and the answer comes out wrong by a factor of two as well as by an offset.

One range serves thresholds and results alike : 36.331 says RSRP-Range is used in RSRP measurements and in thresholds, so the rule above converts the numbers in the report as well as the one in the configuration.

The mapping table itself is in another specification : 36.331 points at TS 36.133 for it, and the field description quoted above is where the arithmetic is written down.

The measurement configuration sent to the UE

The decode below is the whole reconfiguration. Only the measConfig branch is present, and every other branch of the message is omitted. Read it in three parts: two measurement objects, one report configuration, and the two measurement identities that bind the first to the second.

The block below is decoder output, not specification text. It records one message as one network sent it, and no value in it has been corrected against a later release.

+-rrcConnectionReconfiguration ::= SEQUENCE
  +-rrc-TransactionIdentifier ::= INTEGER (0..3) [0]
  +-criticalExtensions ::= CHOICE [c1]
    +-c1 ::= CHOICE [rrcConnectionReconfiguration-r8]
      +-rrcConnectionReconfiguration-r8 ::= SEQUENCE [100000]
        +-measConfig ::= SEQUENCE [01010111000] OPTIONAL:Exist
        | +-measObjectToRemoveList ::= SEQUENCE OF OPTIONAL:Omit
        | +-measObjectToAddModList ::= SEQUENCE OF SIZE(1..maxObjectId[32]) [2] OPTIONAL:Exist
        | | +-MeasObjectToAddMod ::= SEQUENCE
        | | | +-measObjectId ::= INTEGER (1..maxObjectId[32]) [1]
        | | | +-measObject ::= CHOICE [measObjectEUTRA]
        | | |   +-measObjectEUTRA ::= SEQUENCE [100000]
        | | |     +-carrierFreq ::= INTEGER (0..maxEARFCN[65535]) [1575]
        | | |     +-allowedMeasBandwidth ::= ENUMERATED [mbw50]
        | | |     +-presenceAntennaPort1 ::= BOOLEAN [FALSE]
        | | |     +-neighCellConfig ::= BIT STRING SIZE(2) [01]
        | | |     +-offsetFreq ::= ENUMERATED [dB0] OPTIONAL:Exist
        | | |     +-cellsToRemoveList ::= SEQUENCE OF OPTIONAL:Omit
        | | |     +-cellsToAddModList ::= SEQUENCE OF OPTIONAL:Omit
        | | |     +-blackCellsToRemoveList ::= SEQUENCE OF OPTIONAL:Omit
        | | |     +-blackCellsToAddModList ::= SEQUENCE OF OPTIONAL:Omit
        | | |     +-cellForWhichToReportCGI ::= INTEGER OPTIONAL:Omit
        | | |     +-EXTENSION ::= SEQUENCE [0]
        | | |       +-VERSION-BRACKETS1 ::= SEQUENCE OPTIONAL:Omit
        | | +-MeasObjectToAddMod ::= SEQUENCE
        | |   +-measObjectId ::= INTEGER (1..maxObjectId[32]) [2]
        | |   +-measObject ::= CHOICE [measObjectEUTRA]
        | |     +-measObjectEUTRA ::= SEQUENCE [100000]
        | |       +-carrierFreq ::= INTEGER (0..maxEARFCN[65535]) [2525]
        | |       +-allowedMeasBandwidth ::= ENUMERATED [mbw50]
        | |       +-presenceAntennaPort1 ::= BOOLEAN [FALSE]
        | |       +-neighCellConfig ::= BIT STRING SIZE(2) [01]
        | |       +-offsetFreq ::= ENUMERATED [dB0] OPTIONAL:Exist
        | |       +-cellsToRemoveList ::= SEQUENCE OF OPTIONAL:Omit
        | |       +-cellsToAddModList ::= SEQUENCE OF OPTIONAL:Omit
        | |       +-blackCellsToRemoveList ::= SEQUENCE OF OPTIONAL:Omit
        | |       +-blackCellsToAddModList ::= SEQUENCE OF OPTIONAL:Omit
        | |       +-cellForWhichToReportCGI ::= INTEGER OPTIONAL:Omit
        | |       +-EXTENSION ::= SEQUENCE [0]
        | |         +-VERSION-BRACKETS1 ::= SEQUENCE OPTIONAL:Omit
        | +-reportConfigToRemoveList ::= SEQUENCE OF OPTIONAL:Omit
        | +-reportConfigToAddModList ::= SEQUENCE OF SIZE(1..maxReportConfigId[32]) [1]
        | | +-ReportConfigToAddMod ::= SEQUENCE
        | |   +-reportConfigId ::= INTEGER (1..maxReportConfigId[32]) [1]
        | |   +-reportConfig ::= CHOICE [reportConfigEUTRA]
        | |     +-reportConfigEUTRA ::= SEQUENCE
        | |       +-triggerType ::= CHOICE [event]
        | |       | +-event ::= SEQUENCE
        | |       |   +-eventId ::= CHOICE [eventA4]
        | |       |   | +-eventA4 ::= SEQUENCE
        | |       |   |   +-a4-Threshold ::= CHOICE [threshold-RSRP]
        | |       |   |     +-threshold-RSRP ::= INTEGER (0..97) [50]
        | |       |   +-hysteresis ::= INTEGER (0..30) [0]
        | |       |   +-timeToTrigger ::= ENUMERATED [ms256]
        | |       +-triggerQuantity ::= ENUMERATED [rsrp]
        | |       +-reportQuantity ::= ENUMERATED [both]
        | |       +-maxReportCells ::= INTEGER (1..maxCellReport[8]) [1]
        | |       +-reportInterval ::= ENUMERATED [ms1024]
        | |       +-reportAmount ::= ENUMERATED [r1]
        | |       +-EXTENSION ::= SEQUENCE [00]
        | |         +-VERSION-BRACKETS1 ::= SEQUENCE OPTIONAL:Omit
        | |         +-VERSION-BRACKETS2 ::= SEQUENCE OPTIONAL:Omit
        | +-measIdToRemoveList ::= SEQUENCE OF OPTIONAL:Omit
        | +-measIdToAddModList ::= SEQUENCE OF SIZE(1..maxMeasId[32]) [2] OPTIONAL:Exist
        | | +-MeasIdToAddMod ::= SEQUENCE
        | | | +-measId ::= INTEGER (1..maxMeasId[32]) [1]
        | | | +-measObjectId ::= INTEGER (1..maxObjectId[32]) [1]
        | | | +-reportConfigId ::= INTEGER (1..maxReportConfigId[32]) [1]
        | | +-MeasIdToAddMod ::= SEQUENCE
        | |   +-measId ::= INTEGER (1..maxMeasId[32]) [2]
        | |   +-measObjectId ::= INTEGER (1..maxObjectId[32]) [2]
        | |   +-reportConfigId ::= INTEGER (1..maxReportConfigId[32]) [1]
        | +-quantityConfig ::= SEQUENCE [1000] OPTIONAL:Exist
        | | +-quantityConfigEUTRA ::= SEQUENCE [00] OPTIONAL:Exist
        | | | +-filterCoefficientRSRP ::= ENUMERATED OPTIONAL:Omit
        | | | +-filterCoefficientRSRQ ::= ENUMERATED OPTIONAL:Omit
        | | +-quantityConfigUTRA ::= SEQUENCE OPTIONAL:Omit
        | | +-quantityConfigGERAN ::= SEQUENCE OPTIONAL:Omit
        | | +-quantityConfigCDMA2000 ::= SEQUENCE OPTIONAL:Omit
        | | +-EXTENSION ::= SEQUENCE [0]
        | |   +-VERSION-BRACKETS1 ::= SEQUENCE OPTIONAL:Omit
        | +-measGapConfig ::= CHOICE [setup] OPTIONAL:Exist
        | | +-setup ::= SEQUENCE
        | |   +-gapOffset ::= CHOICE [gp0]
        | |     +-gp0 ::= INTEGER (0..39) [30]
        | +-s-Measure ::= INTEGER OPTIONAL:Omit
        | +-preRegistrationInfoHRPD ::= SEQUENCE OPTIONAL:Omit
        | +-speedStatePars ::= CHOICE OPTIONAL:Omit
        | +-EXTENSION ::= SEQUENCE [0]
        |   +-VERSION-BRACKETS1 ::= SEQUENCE OPTIONAL:Omit
        +-mobilityControlInfo ::= SEQUENCE OPTIONAL:Omit
        +-dedicatedInfoNASList ::= SEQUENCE OF OPTIONAL:Omit
        +-radioResourceConfigDedicated ::= SEQUENCE OPTIONAL:Omit
        +-securityConfigHO ::= SEQUENCE OPTIONAL:Omit
        +-nonCriticalExtension ::= SEQUENCE OPTIONAL:Omit

Two measurement objects, one per carrier : measObjectId 1 carries carrierFreq 1575 and measObjectId 2 carries carrierFreq 2525. Each is a separate EARFCN, so the UE is told to look at two frequencies.

One report configuration serves both : reportConfigId 1 holds eventA4 with a4-Threshold set to threshold-RSRP 50. The rule quoted above turns that into -90 dBm.

The measurement identities do the binding : measId 1 joins measObjectId 1 to reportConfigId 1, and measId 2 joins measObjectId 2 to the same reportConfigId. A report names the identity, never the object, which is why two identities are needed for one report configuration.

The trigger is not immediate : hysteresis is 0 and timeToTrigger is ms256, so the neighbour has to stay above -90 dBm for 256 ms before the UE says anything.

A measurement gap is configured alongside it : measGapConfig is set up with gapOffset gp0 at 30, and that gap is the interval a UE with one receiver uses to look at the other carrier.

The report asks for more than the trigger uses : triggerQuantity is rsrp alone while reportQuantity is both, so the UE returns RSRQ as well. Setting maxReportCells to 1 and reportAmount to r1 holds the answer to a single cell, reported once.

The measurement report the UE sends back

The report is short, because it carries only what the event asked for. The measurement identity at the top says which of the two configured carriers triggered it, and the integers under each cell are the values the threshold was compared against.

A second capture, again left exactly as it was recorded.

+-measurementReport ::= SEQUENCE
  +-criticalExtensions ::= CHOICE [c1]
    +-c1 ::= CHOICE [measurementReport-r8]
      +-measurementReport-r8 ::= SEQUENCE [0]
        +-measResults ::= SEQUENCE [1]
        | +-measId ::= INTEGER (1..maxMeasId[32]) [2]
        | +-measResultPCell ::= SEQUENCE
        | | +-rsrpResult ::= INTEGER (0..97) [73]
        | | +-rsrqResult ::= INTEGER (0..34) [20]
        | +-measResultNeighCells ::= CHOICE [measResultListEUTRA] OPTIONAL:Exist
        | | +-measResultListEUTRA ::= SEQUENCE OF SIZE(1..maxCellReport[8]) [1]
        | |   +-MeasResultEUTRA ::= SEQUENCE [0]
        | |     +-physCellId ::= INTEGER (0..503) [0]
        | |     +-cgi-Info ::= SEQUENCE OPTIONAL:Omit
        | |     +-measResult ::= SEQUENCE [11]
        | |       +-rsrpResult ::= INTEGER (0..97) [73] OPTIONAL:Exist
        | |       +-rsrqResult ::= INTEGER (0..34) [29] OPTIONAL:Exist
        | |       +-EXTENSION ::= SEQUENCE [0]
        | |         +-VERSION-BRACKETS1 ::= SEQUENCE OPTIONAL:Omit
        | +-EXTENSION ::= SEQUENCE [00]
        |   +-VERSION-BRACKETS1 ::= SEQUENCE OPTIONAL:Omit
        |   +-VERSION-BRACKETS2 ::= SEQUENCE OPTIONAL:Omit
        +-nonCriticalExtension ::= SEQUENCE OPTIONAL:Omit

measId 2 names the carrier : the report carries measId 2, and the configuration bound that identity to measObjectId 2. This is the 2525 carrier, then, and not the serving one.

The PCell values come first : measResultPCell gives rsrpResult 73 and rsrqResult 20. Through the same mapping those are -67 dBm and -10 dB.

The neighbour matches the PCell on power and exceeds it on quality : the reported cell is physCellId 0 with rsrpResult 73, so -67 dBm again, and rsrqResult 29, which is -5.5 dB against the PCell's -10 dB.

The reported power sits far above the threshold : the A4 threshold was -90 dBm and the cell reported -67 dBm, so the event fired long before the second cell became marginal.

What 36.331 v19.3.0 says now

The decode above was taken under an earlier release, and two of the names in it have since changed. The field description quoted at the top of this page has changed as well, and 36.331 has added an event that suits carrier aggregation better than the one used here.

The excluded cell list was renamed : the decode prints blackCellsToRemoveList and blackCellsToAddModList. 36.331 v19.3.0 calls them excludedCellsToRemoveList and excludedCellsToAddModList. The capture is left as recorded, and only the name changed.

The field description now says field value : the quotation at the top of this page reads IE value, and the current text reads field value. The arithmetic behind it is unchanged.

Two more threshold branches have been added : 36.331 v19.3.0 also gives ThresholdEUTRA a rule for RS-SINR, where the actual value is (field value -46)/2 dB, and one for CSI-RSRP, where it is field value - 140 dBm.

The ranges gained extensions : RSRP-Range is still INTEGER(0..97), and RSRP-Range-v1360 adds INTEGER(-17..-1) for signal below the bottom of that range. RSRQ-Range is still INTEGER(0..34), with RSRQ-Range-v1250 adding INTEGER(-30..46).

Event A6 was added for exactly this case : 36.331 defines A4 as neighbour becomes better than absolute threshold, and A6 as neighbour becomes amount of offset better than SCell. A4 is the right event while no SCell exists yet, and A6 applies once one is configured.

An SCell has a measurement cycle of its own : MeasObjectEUTRA carries measCycleSCell-r10 in its first extension group, an ENUMERATED running sf160, sf256, sf320, sf512, sf640, sf1024 and sf1280. 36.331 enables it only when an SCell is configured, and the decode above omits that group.

The gap can be set per carrier now : 36.331 says E-UTRAN includes either measGapConfig or measGapConfigPerCC-List. The decode above uses the first of the two.

Reference

Two specifications carry what this page quotes. 36.331 was resolved at v19.3.0, which is the latest published version at the time of writing.

  • 3GPP TS 36.331 v19.3.0, E-UTRA Radio Resource Control protocol specification. ThresholdEUTRA, MeasObjectEUTRA, ReportConfigEUTRA and the RSRP-Range and RSRQ-Range value ranges.
  • 3GPP TS 36.133, E-UTRA Requirements for support of radio resource management. The mapping table that 36.331 defers to for RSRP and RSRQ measurement values.