Note : Before you think of Cell Selection - Cell Selection is the procedure that happens when Cell Detection/Search procedure were successful and complete. So when you try to test or troubleshooting Cell Selection step, you have to prove from UE side log that Cell Detection/Search procedure were successful and complete. The cell power criteria described in this page (in 3GPP as well) is determined only by P-CPICH power, you have to think of another signal power (P-SCH, S-SCH power and quality) which UE has to detect even before detecting P-CPICH. This is not all. In purely based on 3GPP criteria, P-CPICH detection may be good enough for cell selection, but when it comes to testing if Cell Selection is successful or not, we normally use Registration (or at least PRACH transmission/Reception) as a success criteria. So if you think of this factor, additional channel power/quality (P-CCPCH, S-CCPCH etc) should be considered as well. Therefore, I would like to say the completion of cell selection in terms of testing would involve much more factors than those described in this page.
Followings are the topics in this page.
- Type of Cell Selection
- Cell Selection Criteria
- Intra Search Criteria
- SIBs for Cell Selection / Reselection
- Inter Search Criteria
- Troubleshoot for Cell Selection
- Reference
Type of Cell Selection
There are two types of Cell Selections. "Initial Cell Selection" and "Stored Information Cell Selection". Definition of these two methods are described as follows in 25.304 5.2.3 Cell Selection Process.
a) Initial Cell Selection
This procedure requires no prior knowledge of which RF channels are UTRA carriers. The UE shall scan all RF channels in the UTRA bands according to its capabilities to find a suitable cell. On each carrier, the UE need only search for the strongest cell. Once a suitable cell is found this cell shall be selected.
b) Stored Information Cell Selection
This procedure requires stored information of carrier frequencies and optionally also information on cell parameters, e.g. scrambling codes, from previously received measurement control information elements.
Once the UE has found a suitable cell the UE shall select it. If no suitable cell is found the Initial cell selection procedure shall be started.
Both procedures end with the same test. The UE selects a cell only if it is a suitable cell, and TS 25.304 defines a suitable cell by several conditions. The cell belongs to the selected PLMN, the registered PLMN or a PLMN of the equivalent PLMN list. It is not barred. It belongs to at least one LA that is not in the list of forbidden LAs for roaming. If the UE supports access technology restriction, the access technology of the cell is not restricted for that PLMN. For a CSG cell, the UE is also a member of that CSG. Finally, the cell selection criteria of the next section are fulfilled.
So the S criterion is only one of these checks. A cell can pass it and still be rejected, for example when SIB3 marks the cell as barred. This is why the SIB3 capture further down on this page shows cellAccessRestriction next to the selection parameters.
Initial cell selection scans all carriers : on each carrier, the UE needs to search only for the strongest cell.Stored information cell selection starts from stored data : it falls back to initial cell selection when no suitable cell is found.A suitable cell passes more than the S criterion : PLMN, barring, forbidden LAs and access technology are checked as well.
Cell Selection Criteria
For a cell to be selected, they should meet a certain criteria as follows. Both criteria compare a measurement with a minimum that the cell broadcasts in SIB3. So the UE can evaluate them only after it has read the system information of the cell. The formulas below are for an FDD cell.
When UE is in HPLMN
Squal = Qqualmeas – Qqualmin > 0
Srxlev = Qrxlevmeas – Qrxlevmin – Pcompensation > 0
When UE is in VPLMN
Squal = Qqualmeas – (Qqualmin + QqualminOffset) > 0
Srxlev = Qrxlevmeas – (Qrxlevmin + QrxlevminOffset) – Pcompensation > 0
< 25.304 - 5.2.3.1.2 Criteria >

(In FDD) For a cell to be selected, both Squal and Srxlev should be greater than 0 and these two values are calculated as follows.

The picture follows each value from SIB3 into the two formulas.
- q-QualMin -24 goes directly into Squal as Qqualmin, in dB.
- q-RxlevMin -58 goes into Srxlev as Qrxlevmin, and the arrow is marked x 2.
- maxAllowedUL-TX-Power 21 goes into Pcompensation as UE_TXPWR_MAX_RACH.
- The two tables map the reported CPICH Ec/No and RSCP values to measured ranges.
Two details in the picture need care. First, TS 25.331 defines Q-RxlevMin as INTEGER (-58..-13), and the actual value is IE value x 2 + 1. So -58 means -115 dBm, not -116 dBm. Second, the RSCP table in the picture is the P-CCPCH RSCP mapping of TS 25.133 Table 9.32, and TS 25.304 uses P-CCPCH RSCP only for TDD cells. An FDD cell uses CPICH RSCP. TS 25.133 Table 9.4 maps it from CPICH_RSCP_LEV _-05 to _91, which covers -120 dBm to -25 dBm.
What does the current TS 25.304 add to the formula ?
The formulas above, and the table in the 25.304 picture, come from an older release. The current Release 19 text keeps the same structure, but it adds one more term to both formulas. It also limits the two offsets to one special case.
Squal = Qqualmeas - (Qqualmin + QqualminOffset) - Qoffsettemp > 0
Srxlev = Qrxlevmeas - (Qrxlevmin + QrxlevminOffset) - Pcompensation - Qoffsettemp > 0
Qoffsettemp is a temporary offset for one cell. TS 25.331 applies it after RRC connection establishment has failed "ConnEst Fail Count" consecutive times on the same cell, when SIB3 of that cell includes "Tx Fail Params". The UE then uses "ConnEst Fail Qoffset,temp" as Qoffsettemp for that cell during the "Offset Validity" period. This makes a cell that keeps rejecting the UE look weaker for a while. The change history of TS 25.304 records this feature in Release 12.
QqualminOffset and QrxlevminOffset are narrow in scope as well. TS 25.304 applies them only when the UE evaluates a cell during a periodic search for a higher priority PLMN while it is camped normally in a VPLMN. That is why the HPLMN formulas above carry no offset.
The ASN.1 below shows where the SIB3 inputs are defined, together with their conversion rules.
Following is based on
CellSelectReselectInfoSIB-3-4 ::= SEQUENCE {
mappingInfo MappingInfo OPTIONAL,
cellSelectQualityMeasure CHOICE {
cpich-Ec-N0 SEQUENCE {
-- Default value for q-HYST-2-S is q-HYST-1-S
q-HYST-2-S Q-Hyst-S OPTIONAL
},
cpich-RSCP NULL
},
modeSpecificInfo CHOICE {
fdd SEQUENCE {
s-Intrasearch S-SearchQual OPTIONAL,
s-Intersearch S-SearchQual OPTIONAL,
s-SearchHCS S-SearchRXLEV OPTIONAL,
rat-List RAT-FDD-InfoList OPTIONAL,
q-QualMin Q-QualMin,
q-RxlevMin Q-RxlevMin
},
tdd SEQUENCE {
s-Intrasearch S-SearchRXLEV OPTIONAL,
s-Intersearch S-SearchRXLEV OPTIONAL,
s-SearchHCS S-SearchRXLEV OPTIONAL,
rat-List RAT-TDD-InfoList OPTIONAL,
q-RxlevMin Q-RxlevMin
}
},
q-Hyst-l-S Q-Hyst-S,
t-Reselection-S T-Reselection-S,
hcs-ServingCellInformation HCS-ServingCellInformation OPTIONAL,
maxAllowedUL-TX-Power MaxAllowedUL-TX-Power
}
-- Actual value S-SearchQual = IE value * 2
S-SearchQual ::= INTEGER (-16..10)
-- Actual value S-SearchRXLEV = (IE value * 2) + 1
S-SearchRXLEV ::= INTEGER (-53..45)
Q-QualMin ::= INTEGER (-24..0)
-- Actual value Q-RxlevMin = (IE value * 2) + 1
Q-RxlevMin ::= INTEGER (-58..-13)
MaxAllowedUL-TX-Power ::= INTEGER (-50..33)
The comments in the ASN.1 give the conversions you need. Q-QualMin is used as it is, in dB. Q-RxlevMin is IE value x 2 + 1, in dBm. S-SearchQual carries s-Intrasearch and s-Intersearch for FDD, and its actual value is IE value x 2, in dB. MaxAllowedUL-TX-Power is in dBm and needs no conversion.
Example 1
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.
CPICH_RSCP = -110 dBm, Qrxlevmin:-58, UE Power Class:3(P_MAX = 23)
UE_TXPWR_MAX_RACH (maxAllowedUL-Tx-Power in SIB3) : 24
CPICH_Ec/N0: -10, Qqualmin:-24
Srxlev = -110 -(-58 x 2 + 1) - max(24-23,0)
= -110 - (-115) - max(1,0)
= -110 + 115 -1
= 4
Squal=(-10)-(-24)
= 14
Squal > 0, Srclev > 0. So The UE will select this cell.
Example 2
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.
CPICH_RSCP = -110 dBm, Qrxlevmin:-58, UE Power Class:3(P_MAX = 23)
UE_TXPWR_MAX_RACH (maxAllowedUL-Tx-Power in SIB3) : 0
CPICH_Ec/N0: -10, Qqualmin:-24
Srxlev = -110 -(-58 x 2 + 1) - max(0-23,0)
= -110 - (-115) - max(-23,0)
= -110 + 115 - 0
= 5
Squal=(-10)-(-24)
= 14
Squal > 0, Srclev > 0. So The UE will select this cell.
Example 3
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.
CPICH_RSCP = -110 dBm, Qrxlevmin:-58, UE Power Class:3(P_MAX = 23)
UE_TXPWR_MAX_RACH (maxAllowedUL-Tx-Power in SIB3) : 33
CPICH_Ec/N0: -10, Qqualmin:-24
Srxlev = -110 -(-58 x 2 + 1) - max(33-23,0)
= -110 - (-115) - max(10,0)
= -110 + 115 - 10
= -5
Squal=(-10)-(-24)
= 14
Squal > 0, Srxlev < 0. So The UE will not select this cell.
All three examples read Qrxlevmin as IE value x 2 + 1, so the IE value -58 gives -115 dBm. Only Pcompensation changes from one example to the next. In Example 3, SIB3 allows 33 dBm on the RACH, but a power class 3 UE can send only 23 dBm. So this UE loses 10 dB in Srxlev, and that loss makes Srxlev negative.
Both values must be above 0 : Squal checks the quality in dB, and Srxlev checks the level in dB.Convert the IE before you calculate : Q-RxlevMin is IE value x 2 + 1 in dBm, and Q-QualMin is used as it is.Pcompensation penalises a weaker UE : a UE that cannot reach UE_TXPWR_MAX_RACH loses the difference in Srxlev.
Intra Search Criteria
After the UE camps on a cell, it keeps measuring the serving cell. It does not have to measure the neighbour cells on the same frequency all the time, which saves battery. The serving cell Squal decides when the intra-frequency measurements must start.
When the following condition meets :
When UE is in HPLMN
(Squal = Qqualmeas – Qqualmin) <= s-Intrasearch
or
s-Intrasearch is not configured
When UE is in VPLMN
(Squal = Qqualmeas – (Qqualmin + QqualminOffset)) <= s-Intrasearch
or
s-Intrasearch is not configured
If you want to let UE to perform Intracell search all the time, the easiest way would be to set as follows.
i) set s-Intrasearch to be MAX value
ii) set Qualmin to be MAX value
In TS 25.304 this is rule 1 of the measurement rules for cell re-selection when HCS is not used. The rules apply in Idle, URA_PCH and CELL_PCH states. If Squal is above Sintrasearch, the UE may choose not to perform intra-frequency measurements. The rule says "may", so a UE is allowed to measure anyway. If Squal is at or below Sintrasearch, or if Sintrasearch is not sent, the UE performs intra-frequency measurements.
The value in SIB3 is not in dB yet. For FDD, s-Intrasearch has the type S-SearchQual, and its actual value is IE value x 2. For example, the SIB3 picture in the Cell Selection Criteria section shows s-Intrasearch 0, which means 0 dB. A UE with Squal of 14 dB, as in the examples, may then skip intra-frequency measurements.
Squal is compared with Sintrasearch : at or below the threshold, the UE must measure its own frequency.A missing s-Intrasearch means measure always : the UE performs intra-frequency measurements when the IE is not sent.Actual value is IE value x 2 : S-SearchQual is signalled in 2 dB steps.
SIBs for Cell Selection / Reselection
Followings are System Information Block messages that are related to Cell Selection/Reselection. I enabled IEs as much as possible just to show you all the usable IEs. You may not see many of these IEs in real deployment. Which IE and values are used are completely up to each network operators.
SIB 3
SIB3 carries the parameters of the serving cell itself. These are the inputs of the S criterion, the search thresholds and the access restriction. In the capture, the author highlights the rat-List in blue, the two minimum levels in red and the Release 5 scaling extension in green.
Decoded SIB3 from a test setup. Field values are from the capture, not from the specification.
SysInfoType3
.0.. .... sib4indicator: False
cellIdentity: 00000000
cellSelectReselectInfo
cellSelectQualityMeasure: cpich-RSCP (1)
cpich-RSCP: NULL
modeSpecificInfo: fdd (0)
fdd
rat-List: 2 items
Item 0
RAT-FDD-Info
rat-Identifier: gsm (0)
s-SearchRAT: 10
s-HCS-RAT: -53
s-Limit-SearchRAT: 0
Item 1
RAT-FDD-Info
rat-Identifier: cdma2000 (1)
s-SearchRAT: -16
s-HCS-RAT: -53
s-Limit-SearchRAT: -16
q-QualMin: -24
q-RxlevMin: -45
q-Hyst-l-S: 0
t-Reselection-S: 0
maxAllowedUL-TX-Power: 24
cellAccessRestriction
cellBarred: notBarred (1)
notBarred: NULL
cellReservedForOperatorUse: notReserved (1)
cellReservationExtension: notReserved (1)
v4b0NonCriticalExtensions
sysInfoType3-v4b0ext
v590NonCriticalExtension
sysInfoType3-v590ext
cellSelectReselectInfo-v590ext
v5c0NoncriticalExtension
sysInfoType3-v5c0ext
cellSelectReselectInfoTreselectionScaling-v5c0ext
non-HCS-t-CR-Max: notUsed (0)
notUsed: NULL
speedDependentScalingFactor: 0
interFrequencyTreselectionScalingFactor: 4
interRATTreselectionScalingFactor: 4
With the TS 25.331 conversions, q-RxlevMin -45 means -89 dBm, and q-QualMin -24 means -24 dB. The IE maxAllowedUL-TX-Power 24 gives a Pcompensation of 1 dB for a 23 dBm UE. In the rat-List, s-SearchRAT is S-SearchQual, so 10 for GSM means 20 dB and -16 for cdma2000 means -32 dB. The capture carries no s-Intrasearch and no s-Intersearch. So this cell asks the UE to perform intra-frequency and inter-frequency measurements all the time.
SIB 11
SIB11 describes the neighbour cells rather than the serving cell. Each neighbour carries its own cellSelectionReselectionInfo, which the author highlights in red, so the UE can check the S criterion of that neighbour too.
Decoded SIB11 from a test setup. Field values are from the capture, not from the specification.
SysInfoType11
..0. .... sib12indicator: False
measurementControlSysInfo
use-of-HCS: hcs-not-used (0)
hcs-not-used
cellSelectQualityMeasure: cpich-RSCP (0)
cpich-RSCP
intraFreqMeasurementSysInfo
intraFreqMeasurementID: 1
intraFreqCellInfoSI-List
removedIntraFreqCellList: removeNoIntraFreqCells (2)
removeNoIntraFreqCells: NULL
newIntraFreqCellList: 1 item
Item 0
NewIntraFreqCellSI-RSCP
intraFreqCellID: 0
cellInfo
cellIndividualOffset: -20
referenceTimeDifferenceToCell: accuracy40 (0)
accuracy40: 0
modeSpecificInfo: fdd (0)
fdd
primaryCPICH-Info
primaryScramblingCode: 9
primaryCPICH-TX-Power: 28
.1.. .... readSFN-Indicator: True
..0. .... tx-DiversityIndicator: False
cellSelectionReselectionInfo
q-OffsetS-N: -50
maxAllowedUL-TX-Power: 24
modeSpecificInfo: fdd (0)
fdd
q-QualMin: -24
q-RxlevMin: -45
intraFreqMeasQuantity
filterCoefficient: fc2 (2)
modeSpecificInfo: fdd (0)
fdd
intraFreqMeasQuantity-FDD: cpich-RSCP (1)
intraFreqReportingQuantityForRACH
sfn-SFN-OTD-Type: noReport (0)
modeSpecificInfo: fdd (0)
fdd
intraFreqRepQuantityRACH-FDD: cpich-EcN0 (0)
maxReportedCellsOnRACH: currentCell (1)
reportingInfoForCellDCH
intraFreqReportingQuantity
activeSetReportingQuantities
dummy: noReport (0)
.... .0.. cellIdentity-reportingIndicator: False
.... ..0. cellSynchronisationInfoReportingIndicator: False
modeSpecificInfo: fdd (0)
fdd
1... .... cpich-Ec-N0-reportingIndicator: True
.0.. .... cpich-RSCP-reportingIndicator: False
..0. .... pathloss-reportingIndicator: False
monitoredSetReportingQuantities
dummy: noReport (0)
.... .0.. cellIdentity-reportingIndicator: False
.... ..1. cellSynchronisationInfoReportingIndicator: True
modeSpecificInfo: fdd (0)
fdd
1... .... cpich-Ec-N0-reportingIndicator: True
.0.. .... cpich-RSCP-reportingIndicator: False
..0. .... pathloss-reportingIndicator: False
measurementReportingMode
measurementReportTransferMode: acknowledgedModeRLC (0)
periodicalOrEventTrigger: eventTrigger (1)
reportCriteria: intraFreqReportingCriteria (0)
intraFreqReportingCriteria
interFreqMeasurementSysInfo
interFreqCellInfoSI-List
newInterFreqCellList: 1 item
Item 0
NewInterFreqCellSI-RSCP
interFreqCellID: 0
frequencyInfo
modeSpecificInfo: fdd (0)
fdd
uarfcn-DL: 9800
cellInfo
modeSpecificInfo: fdd (0)
fdd
primaryCPICH-Info
primaryScramblingCode: 11
primaryCPICH-TX-Power: 28
...0 .... readSFN-Indicator: False
.... 0... tx-DiversityIndicator: False
cellSelectionReselectionInfo
q-OffsetS-N: 3
maxAllowedUL-TX-Power: 24
modeSpecificInfo: fdd (0)
fdd
q-QualMin: -24
q-RxlevMin: -45
interRATMeasurementSysInfo
interRATCellInfoList
removedInterRATCellList: removeAllInterRATCells (0)
removeAllInterRATCells: NULL
newInterRATCellList: 1 item
Item 0
NewInterRATCell-B
interRATCellID: 0
technologySpecificInfo: gsm (0)
gsm
cellSelectionReselectionInfo
q-Offset1S-N: -50
q-Offset2S-N: -50
maxAllowedUL-TX-Power: -50
hcs-NeighbouringCellInformation-RSCP
hcs-CellReselectInformation
penaltyTime: notUsed (0)
notUsed: NULL
modeSpecificInfo: fdd (0)
fdd
interRATCellIndividualOffset: -50
bsic
ncc: 0
bcc: 0
frequency-band: dcs1800BandUsed (0)
bcch-ARFCN: 0
The capture lists three neighbours. The first is an intra-frequency cell with primary scrambling code 9. The second is an inter-frequency cell on UARFCN 9800 with scrambling code 11. The third is a GSM cell in the DCS 1800 band. q-OffsetS-N is an offset in dB between the serving cell and that neighbour, and it is used in the ranking for cell reselection. The value -50 is the lowest value of Q-OffsetS-N, INTEGER (-50..50). The GSM entry also shows maxAllowedUL-TX-Power -50, which is the lowest value of that IE. These extreme values match the note above, which says that the IEs were enabled to show all of them, not to model a real network.
SIB 19
SIB19 carries the absolute priorities of the serving UTRA layer, of GSM and of E-UTRA. When priorities are present, the UE uses the priority based rules of TS 25.304 for those layers instead of the search thresholds above.
Decoded SIB19 from a test setup. Field values are from the capture, not from the specification.
SysInfoType19
utra-PriorityInfoList
utra-ServingCell
priority: 3
s-PrioritySearch1: 0
s-PrioritySearch2: 0
threshServingLow: 0
gsm-PriorityInfoList: 1 item
Item 0
GSM-PriorityInfo
gsmCellGroup
startingARFCN: 0
bandIndicator: dcs1800 (0)
followingARFCNs: explicitListOfARFCNs (0)
explicitListOfARFCNs: 0 items
priority: 0
qRxLevMinGSM: -58
threshXhigh: 0
threshXlow: 0
eutra-FrequencyAndPriorityInfoList: 1 item
Item 0
EUTRA-FrequencyAndPriorityInfo
earfcn: 300
measurementBandwidth: mbw25 (2)
priority: 4
qRxLevMinEUTRA: -55
threshXhigh: 9
threshXlow: 9
eutra-blackListedCellList: 2 items
Item 0
EUTRA-BlacklistedCell
physicalCellIdentity: 100
Item 1
EUTRA-BlacklistedCell
physicalCellIdentity: 102
1... .... eutraDetection: True
v920NonCriticalExtensions
sysInfoType19-v920ext
utra-PriorityInfoList-v920ext
threshServingLow2: 0
eutra-FrequencyAndPriorityInfoList-v920ext: 1 item
Item 0
EUTRA-FrequencyAndPriorityInfo-v920ext
qqualMinEUTRA: -34
threshXhigh2: 0
threshXlow2: 0
va80NonCriticalExtensions
sysInfoType19-va80ext
In the capture, the serving UTRA cell has priority 3, GSM has priority 0 and the E-UTRA frequency EARFCN 300 has priority 4. E-UTRA is therefore a higher priority layer, and the UE shall perform measurements on it. For layers of equal or lower priority, such as GSM here, the UE may skip the measurements while SrxlevServingCell is above Sprioritysearch1 and SqualServingCell is above Sprioritysearch2. For reselection to E-UTRA, the E-UTRA cell must exceed Threshx,high. The IE threshXhigh 9 means 18 dB, because the actual value is IE value x 2, and qRxLevMinEUTRA -55 means -110 dBm.
One field name in the capture differs from the current ASN.1. The capture shows eutra-blackListedCellList, while the current TS 25.331 names the same field eutra-exclude-ListedCellList. The capture was left as it was recorded.
SIB3 is about the serving cell : Qqualmin, Qrxlevmin, the search thresholds and the barring status.SIB11 is about the neighbours : each neighbour has its own offsets and its own minimum levels.SIB19 is about priorities : a higher priority layer is always measured, and lower layers depend on Sprioritysearch1 and Sprioritysearch2.
Inter Search Criteria
Inter-frequency measurements cost more than intra-frequency ones, because the UE must retune its receiver. So the network sets a separate threshold for them, s-Intersearch, which works in the same way as s-Intrasearch.
When the following condition
When UE is in HPLMN
(Squal = Qqualmeas – Qqualmin) <= s-Intersearch
or
s-Intersearch is not configured
When UE is in VPLMN
(Squal = Qqualmeas – (Qqualmin + QqualminOffset)) <= s-Intersearch
or
s-Intersearch is not configured
If you want to let UE to perform inter-frequency search all the time, the easiest way would be to set as follows.
i) set s-Intersearch to be MAX value
ii) set Qualmin to be MAX value
This is rule 2 of the same TS 25.304 clause, and it has more conditions than rule 1. If Squal is above Sintersearch, the UE may choose not to perform inter-frequency measurements. When SsearchHCS is signalled, Srxlev must also be above SsearchHCS for that choice. When an MBMS preferred layer is indicated and the serving cell is not on it, the UE shall still measure the MBMS preferred layer.
The rule applies only when absolute priorities for inter-frequency layers are not provided. When SIB19 gives priorities, the priority based rules of the SIB 19 section replace this threshold.
Squal is compared with Sintersearch : at or below the threshold, the UE must measure the other frequencies.SsearchHCS can force the measurement : a low Srxlev triggers inter-frequency measurements even with a good Squal.SIB19 priorities replace this rule : with absolute priorities, the UE follows Sprioritysearch1 and Sprioritysearch2 instead.
Troubleshoot for Cell Selection
You may think Cell Selection (or Reselection) would be relatively easy to troubleshoot, but in reality it is not simple at all. First, not so many people has clear understanding of the cell selection criteria itself. Even though you have clear understanding of all these 3GPP details, there are technical issues that make this troubleshooting difficult. The first step for the troubleshooting is to guarantee / verify the following two factors.
i) Signal Quality from the network (or UE Test Equipment) is good enough in whole power range of the test
ii) Signal detection/decoding capability of UE is good enough in whole power range of the test
Item ii) is relatively easy comparing to item i) if you have UE side logging tool and skill to analyze the log very in detail.
The problem is item i). Usually Cell Selection test is done in very low power. One of the most accurate way to verify the signal quality of any transmitter is to use Vector Signal Analyzer and measure EVM or CDP(Code Domain Power. See some example ). But the problem is that none of the vector signal analyzer (as far as I know) can decode/analyze the modulated signal at such a lower power level (e.g, under -100 dBm). Technically, if you have very good quality of amplifier with high dynamic range, you can use it to amplify the signal from the network and then put it into spectrum analyzer. But in reality it would be difficult to use such a complicated setup for day-to-day troubleshooting.
Therefore, in real life of UE testing.. if you don't have detailed UE logging and the skills to analyze them, the troubleshooting process would be almost completely like 'matter of luck'.
If you have UE side log, you may check following items one by one. (In this step, I assume that the signal quality from NodeB is good enough)
- i) Check P-CPICH RSCP and Ec/Io (If UE log fail to print this value, you may check P-SCH, S-SCH detection.. but usually we take it as failure without further checking. But technically, you have to check P-SCH, S-SCH detection before you give up)
- ii) Check if UE log successfully print out PSC (Primary Scrambling Code) and see it matches the PSC of the NodeB that you want the UE to select.
- iii) Check if UE successfully decode MIB
- iv) Check if UE sucessfully decode all the SIBs scheduled in MIB
- v) Check P-CPICH power and quality meets the cell selection criteria (To do this, UE needs to successfully decode SIB3 at least.) Usually, most of UE log would print out Squal and Srxlev value if you set proper filter in the logging tool so you don't have to calculate them manually.
- vi) If both Squal and Srxlev is greater than 0, then check if UE successfully decoded all the scheduled SIBs (or at least SIB 1, 3, 5)
- vii) If UE successfully decoded the necessary SIBs, it should send PRACH. If UE does not send PRACH even at this condition, it is UE side protocol issue or sometimes I saw some UE manufacturer put some hard limiter in such a way that UE does not send PRACH under a certain value regardless of cell selection criteria.
- vii) If UE send PRACH, check if the PRACH power is big enough for network reception range. (The proper PRACH power is also determined by a complicated process called 'Open Loop Power Control')
- viii) If UE has sent PRACH with proper power and NodeB (or Test equipment) fail to detect it, then network side debugging should be done.
Reference
[1] TS 25.304 UMTS; UE Procedures in idle mode and procedures for cell reselection in connected mode - v19.1.0, clause 4.3, clause 5.2.3 and clause 5.2.6.1
[2] TS 25.331 UMTS; RRC Protocol Specification - v19.0.1, clause 8.1.3 and the ASN.1 of clause 11.3
[3] Inter-System Cell Reselection Parameter Optimization in UMTS by Qualcomm
[4] 3GPP TS 25.133 v19.0.0 - Requirements for support of radio resource management, FDD - Table 9.4 and Table 9.32