4G/LTE - Basic Procedures

 

 

 

Note : See "Idle Mode Procedure" section first for the big picture.

 

Cell Selection Criterion

 

The term 'Cell Selection Criterion' may be a vague expression, since there can be many different criteria from many different perspective. In broad sense, cell selection would be influenced by following factors.

    i) Is the cell transmitting power strong enough to be recognized/detected by the UE ? (Signal Strength/Quality Criteria)

    ii) Is the PLMN of the cell acceptable to the UE ? (PLMN selection criteria)

    iii) Is the service type of the cell acceptable to the UE ? (Service Type criteria)

But in most of the situation when we say "Cell Selection Criteria",  it is likely to say the first criteria (Signal Strength/Quality Criteria). This signal quality criterion as descrbed in 36.304 as follows.

According to this criterion, UE would not start registration even though it sucessfully detected a cell and even decoded MIB and SIBs unless the Srxleve > 0 and Squal > 0. So if a device does not even initiate the PRACH process even when it successfully decoded all the MIB and  SIBs, checking on this criteria would be a good first step for the troubleshooting. (Of course, this is not the only issues for this case. there may be USIM issue and Band Indicator Issue, PLMN issues etc).

What does the S criterion test?

The criterion looks like two inequalities, and it is really two subtractions. Each one takes something the UE measured and removes a floor the cell broadcast, so neither test asks whether the signal is strong in absolute terms. Both ask whether it clears what this particular cell demands, which is why the same RSRP can pass on one carrier and fail on the next.

36.304 cell selection criterion S, with the Srxlev and Squal formulas and a table defining every term

The S criterion as 36.304 clause 5.2.3.2 states it. Both tests have to pass, and both are differences rather than absolutes: a measured value minus a broadcast floor. That is why a cell with good RSRP can still be rejected, and why the same RSRP passes in one cell and fails in the next.

  • Two tests, both mandatory : Srxlev > 0 AND Squal > 0. Passing one is not enough, and the examples further down turn on exactly that.
  • Qrxlevmeas is RSRP and Qqualmeas is RSRQ : the table in the picture says so directly. The first test is about received power, the second about received quality.
  • Qrxlevmin is in dBm, Qqualmin in dB : one is an absolute power floor, the other a ratio floor. The units differ because the quantities do.
  • The two offsets are not general purpose : each applies only during a periodic search for a higher priority PLMN, while camped in a VPLMN. In ordinary cell selection both are zero.
  • Pcompensation charges the UE for uplink it cannot deliver : max(PEMAX − PPowerClass, 0). If the cell asks for more uplink power than the UE can produce, the shortfall comes off Srxlev. A UE that can meet PEMAX subtracts nothing.
  • Pcompensation only ever reduces Srxlev : the max() with zero means a UE stronger than the cell requires gets no bonus.

 

One note before going on, because the picture above predates the text it quotes. The current 36.304 clause 5.2.3.2 carries a further term in both lines, Qoffsettemp, described as an offset temporarily applied to a cell. It is subtracted from Srxlev and from Squal alike, and it is zero unless a temporary offset is in force.

Two smaller things have moved as well. Pcompensation is now given as a set of cases rather than the single maximum the picture shows. The clause also adds a rule for measurements made on the resynchronisation signal. There only Srxlev is tested, and Squal is not used. Neither changes the worked examples below, which use the ordinary case.

Out of the variables used in the equation, only Qrxlevmeas and Qqualmeas is the value UE really measures when it turns on and most of other parameters are determined by a specific SIB (SIB1 in LTE case) or calculated by some other predefined values.

 

  • Both tests must pass : a cell with plenty of RSRP and poor RSRQ fails, and so does the reverse. The three examples below exist to show that.
  • The floors are per cell, not per network : q-RxLevMin and q-QualMin are broadcast in that cell's SIB1, so the bar moves from cell to cell.
  • Pcompensation is about the uplink : it is the only term that has nothing to do with what the UE received. A UE that cannot reach the cell is held back even when the downlink is strong.
  • The offsets stay at zero in the ordinary case : both belong to a higher priority PLMN search. Ignore them when reading a plain camping log.

Where do the parameters come from in SIB1?

All but the two measurements arrive in one message, and they arrive before the UE has registered anywhere. So the cell is telling a UE it has never met what standard that UE must reach to be allowed in. The pictures below show where each field sits in that message.

Following is the part of LTE SIB1 which is related to Cell Selection Criterion and Cell Selection Procedure. Following is overall information and functionality of SIB1 information element.

 

Decoded SIB1 tree with the cell selection fields and the SIB scheduling information marked

A decoded SIB1, with the two blocks that matter marked. Only the upper block feeds the S criterion; the lower one tells the UE when to look for the other SIBs. Note that this capture carries q-RxLevMin = -65, which is a different cell from the worked examples further down.

  • cellAccessRelatedInfo comes first : plmn-IdentityList, cellBarred, intraFreqReselection and csg-Indication. These decide whether the UE is allowed to use the cell at all, which is criterion ii) and iii) from the top of this page.
  • cellSelectionInfo is the S criterion input : q-RxLevMin and the optional q-RxLevMinOffset. That is the whole of what SIB1 contributes to the first test.
  • p-Max sits outside cellSelectionInfo : it is a sibling field, not a child of it, and it is the PEMAX that Pcompensation uses.
  • q-RxLevMin reads -65 here : that is the signalled integer, not dBm. The actual floor is -130 dBm, because the scaling is two dB per step.
  • schedulingInfoList is the other block : si-Periodicity and sib-MappingInfo for SIB3 and SIB5. It has nothing to do with cell selection, and the annotation in the picture says so.

 

Now you may have a couple of questions of q-RxLevMin. The first question of what kind of power this represents ? Is it RSSI or RSRP or RSRQ ? How the value of this IE maps to real power value (dBm) ? You can get the answers to these two questions at once from 36.331.

 

36.331 has a description as follows.

 

Field

36.304 Parameter

Actual Value

If Absent

q-RxLevMin
The required minimum received RSRP level in the (EUTRA) cell, for cell re-selection

Qrxlevmin

IE value * 2 [dBm]

Mandatory inside cellSelectionInfo, so never absent

q-RxLevMinOffset
Affects the minimum required Rx level in the cell

Qrxlevminoffset

IE value * 2 [dB]

0 [dB]

q-QualMin
The quality floor the second test measures against

Qqualmin

36.331 gives none

Negative infinity, if cellSelectionInfo-v920 is not present

q-QualMinOffset
Affects the minimum required quality level in the cell

Qqualminoffset

IE value [dB]

0 dB, if cellSelectionInfo-v920 is not present or the field is not present

 

One cell in the Actual Value column carries no formula, and that is not an omission. 36.331 gives an Actual value line for three of these four fields and none for q-QualMin, so q-QualMin is used in dB exactly as it is signalled. The other three are scaled, and two of them by two.

The two offsets behave the same way as each other, and differently from the two floors. q-RxLevMin is mandatory inside cellSelectionInfo, so it is always there. q-QualMin is not, and when it is missing the default is negative infinity, which is the value that switches the quality test off. An offset that is missing is simply zero, which leaves the floor where it was.

 

Those descriptions leave one thing unsaid, and it decides what the examples below can legally test. Each field has a value range, and the range is narrow enough that the examples sit at its two ends.

Following is based on 36.331 v19.3.0 (Release 19)

SystemInformationBlockType1 ::= SEQUENCE {
                    cellAccessRelatedInfo       SEQUENCE {
                        plmn-IdentityList           PLMN-IdentityList,
                        trackingAreaCode            TrackingAreaCode,
                        cellIdentity                CellIdentity,
                        cellBarred                  ENUMERATED {barred, notBarred},
                        intraFreqReselection        ENUMERATED {allowed, notAllowed},
                        csg-Indication              BOOLEAN,
                        csg-Identity                CSG-Identity                        OPTIONAL   -- Need OR
                    },
                    cellSelectionInfo           SEQUENCE {
                        q-RxLevMin                  Q-RxLevMin,
                        q-RxLevMinOffset            INTEGER (1..8)                      OPTIONAL   -- Need OP
                    },
                    p-Max                       P-Max                                   OPTIONAL,  -- Need OP
                    freqBandIndicator           FreqBandIndicator,
                    schedulingInfoList          SchedulingInfoList,
                    tdd-Config                  TDD-Config                              OPTIONAL,  -- Cond TDD
                    si-WindowLength             ENUMERATED {
                                                    ms1, ms2, ms5, ms10, ms15, ms20,
                                                    ms40},
                    systemInfoValueTag          INTEGER (0..31),
                    nonCriticalExtension        SystemInformationBlockType1-v890-IEs    OPTIONAL
                }
                
                CellSelectionInfo-v920 ::= SEQUENCE {
                    q-QualMin-r9                Q-QualMin-r9,
                    q-QualMinOffset-r9          INTEGER (1..8)                          OPTIONAL   -- Need OP
                }
                
                Q-RxLevMin ::=                  INTEGER (-70..-22)
                
                Q-QualMin-r9 ::=                INTEGER (-34..-3)

Q-RxLevMin runs from -70 to -22, which is -140 dBm to -44 dBm once the factor of two is applied. Q-QualMin-r9 runs from -34 to -3, in dB and with no scaling. Those two bounds are exactly the values Example 2 and Example 3 use, and the author's comments on them are correct.

The structure matters as much as the range. q-RxLevMin sits in cellSelectionInfo, which is mandatory, while q-QualMin-r9 sits in CellSelectionInfo-v920 under nonCriticalExtension, which is not. A Release 8 cell therefore has no way to send q-QualMin. Its absence has a defined meaning rather than being an error.

In summary, the cell selection criteria (Signal Strength/Quality Criteria) can be illustrated as follows.

 

SIB1 tree annotated with the Srxlev and Squal formulas and the RSRP and RSRQ report mapping tables

The same SIB1 tree with the arithmetic drawn onto it. The two mapping tables on the right explain why the measured values in the examples are not integers. RSRP and RSRQ arrive as report indices, and they convert to dBm and dB before the subtraction.

  • q-QualMin lives in a different branch : it is q-QualMin-r9 inside cellSelectionInfo-v920, under nonCriticalExtension. A Release 8 SIB1 has no place to put it, which is why omitting it has a defined meaning.
  • 36.101 Table 6.2.2-1 sets PPowerClass : the note in the picture gives 23 dBm for Class 3, which is the value every worked example below uses.
  • Table 9.1.4-1 maps RSRP : RSRP_00 is below -140 dBm and RSRP_97 is -44 dBm or better, one dB per step.
  • Table 9.1.7-1 maps RSRQ : RSRQ_00 is below -19.5 dB and RSRQ_34 is -3 dB or better, half a dB per step.
  • This capture shows q-QualMin-r9 = -34 : the lowest value the field can carry, which is the same setting Example 2 uses.

 

  • One message carries the whole bar : q-RxLevMin, the optional offset, p-Max and q-QualMin all arrive in SIB1, before the UE has said anything.
  • Watch which branch a field is in : q-RxLevMin is mandatory in cellSelectionInfo, q-QualMin is optional and lives in a Release 9 extension.
  • The signalled integer is not the value : q-RxLevMin is doubled to reach dBm, and RSRP and RSRQ arrive as report indices that convert before the subtraction.

How does q-QualMin change the outcome?

The three examples below hold everything constant except one field. Each keeps the same three measurement cases and the same q-RxLevMin. Only q-QualMin changes: omitted, then the lowest value the field can carry, then the highest. Reading them as a set shows something no single one of them shows.

Example 1

With q-QualMin omitted the quality test is effectively switched off, because the default is negative infinity. The author substitutes -100 to keep the arithmetic printable. The effect is the same: Squal is large and positive in every row, so only Srxlev decides.

Assumption : It is assumed that there is only one Cell is available and cell selection is determined only by S_rxlev and S_qual. If there is any other competing cells around, you have to consider a lot of other factors like absolute measured cell power, priority and various cell search/reselection criteria as well.

Decoded SystemInformationBlockType1 as Example 1 sets it, with q-QualMin omitted. The values are the author's assumption for this worked example, not specification values.

systemInformationBlockType1
    cellSelectionInfo
        q-RxLevMin: -110dBm (-55)
    p-Max: 23dBm
    nonCriticalExtension
        q-QualMin: Omit   // Apply the default of -Infinity. I applied -100 in the following table

 

Case

Measured RSRP

Measured RSRQ

Q_qualmin

Q_rxlevmin

P_max

Max UE

Tx Power

S_rxlev

S_qual

Decision

1

-82.44

-8.44

-100

-110

23

23

27.56

91.56

S_rxlev > 0 and S_qual > 0, therefore Select Cell

2

-102.38

-8.75

-100

-110

23

23

7.62

91.25

S_rxlev > 0 and S_qual > 0, therefore Select Cell

3

-126.5

-19.69

-100

-110

23

23

-16.5

80.31

S_rxlev < 0 and S_qual >  0, therefore Do Not Select Cell

 

Example 2

Now q-QualMin is set to -34, the lowest value 36.331 allows. The quality floor is real this time rather than absent, but it is so far below any usable RSRQ that the decisions do not move. Compare the Squal column against the one above to see how much headroom is left.

Assumption : It is assumed that there is only one Cell is available and cell selection is determined only by S_rxlev and S_qual. If there is any other competing cells around, you have to consider a lot of other factors like absolute measured cell power, priority and various cell search/reselection criteria as well.

Decoded SystemInformationBlockType1 as Example 2 sets it, with q-QualMin at the lowest value the field can carry. The values are the author's assumption for this worked example, not specification values.

systemInformationBlockType1
    cellSelectionInfo
        q-RxLevMin: -110dBm (-55)
    p-Max: 23dBm
    nonCriticalExtension
        q-QualMin: -34  // Minimum Setting Value

 

Case

Measured RSRP

Measured RSRQ

Q_qualmin

Q_rxlevmin

P_max

Max UE

Tx Power

S_rxlev

S_qual

Decision

1

-82.44

-8.44

-34

-110

23

23

27.56

25.56

S_rxlev > 0 and S_qual > 0, therefore Select Cell

2

-102.38

-8.75

-34

-110

23

23

7.62

25.25

S_rxlev > 0 and S_qual > 0, therefore Select Cell

3

-126.5

-19.69

-34

-110

23

23

-16.5

14.31

S_rxlev < 0 and S_qual >  0, therefore Do Not Select Cell

 

< Example 3 >

The last one sets q-QualMin to -3, the highest value the field can carry. The floor is now above the measured RSRQ in all three rows, so every case fails on quality. This is the setting that makes the second half of the criterion do the work.

Assumption : It is assumed that there is only one Cell is available and cell selection is determined only by S_rxlev and S_qual. If there is any other competing cells around, you have to consider a lot of other factors like absolute measured cell power, priority and various cell search/reselection criteria as well.

 

Decoded SystemInformationBlockType1 as Example 3 sets it, with q-QualMin at the highest value the field can carry. The values are the author's assumption for this worked example, not specification values.

systemInformationBlockType1
    cellSelectionInfo
        q-RxLevMin: -110dBm (-55)
    p-Max: 23dBm
    nonCriticalExtension
        q-QualMin: -3  // Maximum Setting Value

 

Case

Measured RSRP

Measured RSRQ

Q_qualmin

Q_rxlevmin

P_max

Max UE

Tx Power

S_rxlev

S_qual

Decision

1

-82.44

-8.44

-3

-110

23

23

27.56

-5.44

S_rxlev > 0 and S_qual < 0, therefore Do Not Select Cell

2

-102.38

-8.75

-3

-110

23

23

7.62

-5.75

S_rxlev > 0 and S_qual < 0, therefore Do Not Select Cell

3

-126.5

-19.69

-3

-110

23

23

-16.5

-16.69

S_rxlev < 0 and S_qual <  0, therefore Do Not Select Cell