5G RAN
Optimization
The Definitive 3GPP Engineer's Guide
From KPI to root-cause: a vendor-neutral, specification-driven manual for engineers who must make 5G networks perform.
32 Chapters • 200+ Diagrams • 120+ Tables • 6 Appendices
First Edition · April 2026
3GPP Release 17 · Release 18 (5G-Advanced)
5G RAN Optimization — The Definitive 3GPP Engineer's Guide
First Edition, April 2026
Copyright © 2026 Abhijeet Kumar / CafeTele Publications. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher, except in the case of brief quotations embodied in critical reviews and certain other non-commercial uses permitted by copyright law.
Trademark Notice: 3GPP® is a registered trademark of ETSI. All other product names, logos, and brands are property of their respective owners. This book deliberately uses vendor-neutral terminology and references only 3GPP-standardised names for parameters, counters, and procedures.
Disclaimer: All content has been verified against publicly available 3GPP Technical Specifications (Releases 15–18) at the time of writing. The reader is responsible for confirming current specifications when applying optimization actions in production networks. Neither the author nor the publisher accepts liability for errors, omissions, or consequences arising from the use of information in this book.
3GPP Specifications Referenced: TS 38.211 (Physical channels and modulation), TS 38.212 (Multiplexing and channel coding), TS 38.213 (Physical layer procedures for control), TS 38.214 (Physical layer procedures for data), TS 38.215 (Physical layer measurements), TS 38.300 (NR overall description), TS 38.321 (MAC), TS 38.323 (PDCP), TS 38.331 (RRC), TS 38.401 (NG-RAN architecture), TS 38.413 (NGAP), TS 38.423 (XnAP), TS 28.552 (Performance measurements), TS 28.554 (5G end-to-end KPI), TS 37.340 (Multi-connectivity), TS 23.501 (System architecture), and others as cited within each chapter.
Published by CafeTele Publications, an imprint of CafeTele.
Web: cafetele.com
Contact: [email protected]
ISBN-13 (Digital): 978-93-5XXXX-XX-X
Table of Contents
- 1 The Optimization Mindset
- 2 5G NR Architecture for Optimizers
- 3 The 3GPP KPI Framework
- 4 Counters & Measurements
- 5 RSRP / RSRQ / SS-SINR
- 6 SSB Beam Sweeping & Beam-Level Measurements
- 7 CSI Framework — CSI-RS, CQI, PMI, RI
- 8 Coverage Optimization Methodology
- 9 RACH Procedure (4-step & 2-step)
- 10 PRACH Configuration & Tuning
- 11 RRC Setup & Connection Establishment
- 12 Initial Access Failure Root-Cause Tree
- 13 Measurement Events A1–A6, B1–B2
- 14 Intra-gNB Handover
- 15 Inter-gNB HO via Xn
- 16 Inter-gNB HO via N2 (NGAP)
- 17 Conditional Handover (CHO)
- 18 DAPS Handover
- 19 ANR — Automatic Neighbor Relations
- 20 PDSCH/PUSCH Scheduling
- 21 MCS, BLER & Link Adaptation
- 22 MIMO Layers & Codebooks
- 23 Carrier Aggregation & BWP
- 24 UL Power Control
- 25 RLF Causes & Categorization
- 26 RRC Re-establishment & PDCP Recovery
- 27 Drop Call Analysis Framework
Preface — Why This Book Exists
A vendor-neutral optimization manual, written by an engineer for engineers
Walk into any 5G optimization team meeting in 2026 and you will hear three vendor names spoken more often than the word “3GPP.” Engineers debate the meaning of one vendor's counter as if it were a law of physics, then translate it — usually badly — into another vendor's terminology. New hires inherit a tribal vocabulary and never learn what the underlying specification actually says. Senior engineers carry a single vendor's mental model from job to job, surprised each time the next employer's network behaves differently.
This book is the antidote. Every page in front of you is grounded in the publicly available 3GPP Technical Specifications. Every counter is referenced by its 3GPP family from TS 28.552, not a vendor PM name. Every KPI is derived from TS 28.554. Every parameter is cited to its specification clause. Every call flow follows the message names defined in TS 38.331, TS 38.413, TS 38.423, and TS 37.340. Where vendor implementations diverge from the standard — and they do — we say so, but we never let proprietary vocabulary become the primary reference.
By the end of this book, you will be able to optimize a 5G NR network deployed on equipment from any vendor — because you will understand what is actually happening at the protocol layer, not just what one vendor's GUI shows you. You will read 3GPP specifications fluently. You will trace a failed call from the air interface to the core. You will know which parameter to touch and why.
Who This Book Is For
This book is written for the working 5G optimization engineer — the person whose job is to look at a poor cluster of cells, understand what is wrong, and make it right. It assumes you have completed an introductory 5G NR course and that you can read a basic call flow. It does not assume you have memorised any specification clause; we will quote what matters and tell you where to read more.
It will also be useful to:
- RF planners who want to understand how planning choices manifest in live KPIs.
- Core/IMS engineers working on VoNR and slicing who need a solid RAN view.
- Drive-test engineers moving into post-processing and root-cause analysis.
- Test engineers writing automation against PM counters and trace files.
- Trainers, instructors, and graduate students who want a single specification-aligned reference.
How To Read This Book
The book is organised as a learning path. Part I builds the foundations: the optimization mindset, the NR architecture, and the 3GPP KPI/counter framework. Parts II through VI take you through the four classical optimization domains — coverage, accessibility, mobility, throughput — plus retainability. Part VII tackles the advanced domains that increasingly dominate 5G work: NSA/EN-DC, VoNR, slicing, and energy saving. Part VIII closes with the engineering workflow that ties everything together.
You can read it cover-to-cover, or you can use it as a reference: each chapter is self-contained enough that you can drop into “Chapter 14 — Intra-gNB Handover” without rereading earlier material. Cross-references are explicit. The appendices are designed to live next to your monitor.
Throughout this book, “the gNB” means the 3GPP-defined logical node. Where the distinction between gNB-CU, gNB-DU, gNB-CU-CP, and gNB-CU-UP matters, we are explicit. Where it does not, we use “gNB” for readability. The same convention applies to “the UE,” “the cell,” and “the network.”
How To Use The Examples
Every numerical example in this book uses parameter values that are typical for production deployments but are not tied to any specific vendor's defaults. Where the specification defines a value range (e.g., q-RxLevMin: −140 to −44 dBm), we will tell you both the range and a sensible starting point. Where the specification leaves the value to vendor implementation, we will say so plainly.
You should always validate any value against your live network's behaviour before deploying. This book gives you the framework; the network gives you the truth.
— Abhijeet Kumar
Bangalore / Delhi, April 2026
Foundations of 5G RAN Optimization
The mindset, the architecture, and the language of 3GPP-defined KPIs and counters — everything you need before touching a parameter.
Foundations of 5G NR Performance
What every senior optimizer must know before touching a parameter — from the Shannon bound to TS 28.554
3GPP TS 22.261 · TS 38.211 · TS 38.214 · TS 38.215 · TS 38.331 · TS 28.552 · TS 28.554- Locate 5G NR in the Shannon–Hartley performance envelope and quantify the implementation gap.
- Write the exact 3GPP TS 38.215 definitions of SS-RSRP, SS-RSRQ, and SS-SINR from memory, and know what each term in the RSRQ ratio actually represents.
- Derive the layer-3 filter settling time from the
filterCoefficientin TS 38.331 §5.5.3.2 and predict when a measurement is converged. - State every major TS 28.554 KPI as a formula over TS 28.552 counter names — no vendor aliases.
- Compute a Wilson score confidence interval on a RACH success sample and say honestly whether the number is trustworthy.
- Model the optimization loop as a discrete-time control system and justify the one-change-per-iteration rule on stability grounds.
- Recognise Goodhart's Law, Simpson's paradox, survivorship bias, and confounding in KPI-driven engineering.
1.1 The 5G Performance Envelope
Before we touch a counter, we must know what the network is supposed to deliver. 3GPP defines the 5G performance envelope primarily in TS 22.261 (Service requirements for the 5G system) and operationalises it in TS 38.913 (Study on scenarios and requirements for next generation access technologies). These are the numbers an optimizer is measured against — not vendor data sheets, not marketing decks, not RAN BoQs.
| Dimension | IMT-2020 / 3GPP Requirement | Spec Clause |
|---|---|---|
| Peak data rate (DL / UL) | 20 Gbps / 10 Gbps | TS 38.913 §6.1.1 |
| User-experienced rate (DL / UL) | 100 Mbps / 50 Mbps | TS 22.261 §7.1 |
| Spectral efficiency (DL peak) | 30 bps/Hz | TS 38.913 §6.1.3 |
| U-plane latency (URLLC) | ≤ 0.5 ms one-way | TS 22.261 §6.2.1 |
| C-plane latency | ≤ 10 ms (idle→connected) | TS 38.913 §6.1.4 |
| Reliability (URLLC) | 1 − 10−5 per PDU, 1 ms U-plane | TS 22.261 §6.3.1 |
| Connection density | 10&sup6; devices / km² | TS 22.261 §6.2.6 |
| Mobility support | up to 500 km/h (HST) | TS 38.913 §6.1.6 |
| Energy efficiency | 100× improvement over LTE | TS 38.913 §6.4.5 |
| Cell availability (SA, macro) | ≥ 99.95% | TS 28.554 §6.5.1 |
Table 1.1 — The 5G performance envelope as codified by 3GPP. These are the numbers against which every KPI is ultimately judged.
Every cell you optimise lives inside this envelope. A good optimizer knows, for each cell they touch, which dimension is currently the binding constraint — the dimension that limits the KPI. It is almost never all of them at once. A coverage-limited cell on the edge of a rural cluster is constrained by SS-SINR. A capacity-limited cell in a downtown office district is constrained by PRB utilisation. A mobility-limited cell on a highway on-ramp is constrained by the timeToTrigger of an A3 event. Naming the binding constraint correctly is the difference between an optimizer and a parameter tourist.
The IMT-2020 targets in Table 1.1 are envelope requirements, not per-cell requirements. No single cell will ever meet all of them simultaneously — peak data rate and connection density, for example, are mutually exclusive in practice. The envelope is the union of what the system can deliver across its deployment modes. Knowing which mode a cell is in tells you which targets are binding.
1.2 Shannon's Bound and the 5G NR Implementation Gap
The hard upper ceiling on what a 5G NR cell can ever deliver is the Shannon–Hartley channel capacity. For an AWGN channel of bandwidth B (Hz) and received signal-to-noise-plus-interference ratio SINR, the Shannon bound is:
Equation 1.1 — Shannon–Hartley channel capacity
For a 100 MHz FR1 carrier at SINR = 20 dB (linear SINR = 100), Shannon gives C = 100×106×log2(101) ≈ 666 Mbps. Real 5G NR, after cyclic prefix overhead (7.03% for normal CP), DMRS overhead (on the order of 14% for single-symbol front-loaded DMRS), PT-RS where used, and a maximum code rate capped at 948/1024 per TS 38.214 Table 5.1.3.1-2, delivers roughly 78–82% of the Shannon limit at that SINR operating point. Knowing the gap lets you estimate the ceiling from first principles and immediately flag when a vendor's “8 Gbps” lab number is achievable or not.
Figure 1.1 — Shannon capacity C = B·log2(1+SINR) for 20, 50, 100 MHz carriers. Marked points show typical single-layer 5G NR operating points using TS 38.214 Table 5.1.3.1-2 (256QAM MCS table). The ~20% gap between NR and Shannon reflects cyclic prefix, DMRS, PT-RS, and the 948/1024 code-rate cap.
1.3 The Formal Measurement → Counter → KPI Hierarchy
Optimization data lives in three distinct 3GPP specifications that are usually conflated. Getting the distinction right is the first thing that separates a junior engineer from a senior one.
Layer 1 — Physical measurements (TS 38.215)
TS 38.215 §5 defines every physical-layer measurement quantity. The two most important for coverage optimization are SS-RSRP and SS-RSRQ. The spec text is tight; read it carefully.
“SS reference signal received power (SS-RSRP), is defined as the linear average over the power contributions (in [W]) of the resource elements that carry secondary synchronization signals. The measurement time resource(s) for SS-RSRP are confined within SS/PBCH Block Measurement Time Configuration (SMTC) window duration.”
Three subtleties hide in that one sentence. First, SS-RSRP is a linear average — in watts, not dBm. The GUI displays dBm because dBm is human-readable, but any arithmetic (e.g., beam averaging, layer-3 filtering) happens in linear units and is then converted. Second, only resource elements that carry secondary synchronization signals contribute — PSS REs are not included. Third, the measurement is confined to the SMTC window, which the gNB controls via ssb-MeasurementTimingConfig in SIB2 or a dedicated RRC message. If the SMTC is configured too narrow, beam-level measurements will be noisy and the layer-3 filter will never converge. This is a common but subtle mis-configuration.
“SS reference signal received quality (SS-RSRQ) is defined as the ratio N × SS-RSRP / NR carrier RSSI, where N is the number of resource blocks in the NR carrier RSSI measurement bandwidth. The measurements in the numerator and denominator shall be made over the same set of resource blocks.”
Equation 1.2 — SS-RSRQ as defined in TS 38.215 §5.1.3
The RSSI denominator includes all received power in the measurement bandwidth — wanted signal, interference, thermal noise. As the cell becomes more loaded, RSSI rises even though SS-RSRP is unchanged, so RSRQ degrades even for a stationary UE. This is why RSRQ is a better load-sensitive indicator than RSRP, and why RSRP alone is never enough to triage a coverage complaint.
For the data channel, TS 38.215 defines the CSI-RS-based counterparts CSI-RSRP, CSI-RSRQ, and CSI-SINR (clauses 5.1.2, 5.1.4, 5.1.7). These are measured on CSI-RS resources allocated by the gNB per TS 38.214 §5.2, and they are what drives CQI reporting and link adaptation — not the SSB-based measurements, which drive mobility.
Layer 2 — Performance counters (TS 28.552)
Counters live in TS 28.552 and follow the naming convention <Family>.<EventOrStatistic>. The gNB increments them per granularity period (GP, default 900 s, configurable) and reports them over the O1 interface to the management system per TS 28.550 and TS 28.532. Every vendor should implement these exact names; the vendor GUI may show aliases. The families you will touch daily are:
| Family | Domain | TS 28.552 Clause | Example counter |
|---|---|---|---|
RA | Random access (RACH) | §5.1.1.5 | RA.PreambleGroupA, RA.PreambleTotalA, RA.PreambleDetectedA |
RRC | RRC connection setup/release | §5.1.1.15 | RRC.ConnEstabAtt.<cause>, RRC.ConnEstabSucc.<cause> |
RRC.Reest | RRC re-establishment | §5.1.1.16 | RRC.ReestAtt, RRC.ReestSucc, RRC.ReestAttNoCtxt |
NG | NGAP signalling to 5GC | §5.1.1.7 | NG.InitUeContSetupAtt, NG.InitUeContSetupSucc |
QF | QoS flow management | §5.1.1.23 | QF.EstabAttNbr.5QI, QF.EstabSuccNbr.5QI |
DRB | Data radio bearer | §5.1.1.24 | DRB.EstabAttNbr.QoS, DRB.PdcpSduLossRateUl |
HO | Intra-system handover | §5.1.1.6 | HO.ExeAttIntraCell, HO.PrepInterFreq, HO.ExeSuccIntraCell |
RAB | Radio access bearer / release | §5.1.1.4 | RAB.ActiveUeDlSum, RAB.RelActNbrOutage.5QI |
BeamLevel | Per-SSB-beam measurements | §5.1.1.19 | BeamLevel.SS-RSRP, BeamLevel.CSI-RSRP |
Slice | Per-S-NSSAI breakdown | §7 | any counter, extended with .SNSSAI index |
Table 1.2 — Core TS 28.552 counter families every 5G optimizer uses daily. Counter names are 3GPP-standardised; vendor GUIs may show aliases.
Layer 3 — KPIs (TS 28.554)
KPIs are formulas that combine counters. TS 28.554 §6 defines the major ones explicitly. We list the most important in Table 1.3, using exact counter names from TS 28.552.
| KPI | Formula (TS 28.554 + TS 28.552 counters) | Target |
|---|---|---|
| RACH Setup SR | ΣRA.PreambleDetected* / ΣRA.Preamble* | ≥ 99.5% |
| RRC Connection Setup SR | ΣRRC.ConnEstabSucc.cause / ΣRRC.ConnEstabAtt.cause | ≥ 99.5% |
| NG Signalling Setup SR | NG.InitUeContSetupSucc / NG.InitUeContSetupAtt | ≥ 99.0% |
| Initial PDU Session Establ. SR | QF.EstabSuccNbr.5QI / QF.EstabAttNbr.5QI (per 5QI) | ≥ 99.0% |
| Intra-System HO Success Ratio | HO.ExeSuccIntraCell / HO.ExeAttIntraCell (sum over cell pairs) | ≥ 99.0% |
| Service Drop (Abnormal Release) Rate | RAB.RelActNbrOutage.5QI / RAB.ActiveUeDlSum.5QI | ≤ 0.5% |
| Mean DL Cell Throughput | ΣDRB.UeThpDl / TGP | load-dependent |
| Cell Availability | (TGP − Tdowntime) / TGP | ≥ 99.95% |
Table 1.3 — Major TS 28.554 KPIs expressed as formulas over TS 28.552 counters. These are the canonical definitions; an operator SLA may add conditions (exclusion periods, cause-code filters) but cannot contradict them.
When you compute a KPI across many cells, sum the counters first, then divide. Never average per-cell KPIs. Averaging ratios is a Simpson's-paradox generator (§1.10): a cluster KPI computed as the average of cell KPIs can move in the opposite direction of the true underlying ratio when cell sample sizes are unequal. TS 28.554 is explicit: aggregation is done on counters, not on per-cell KPIs.
1.4 The Time Hierarchy: From OFDM Symbol to Daily KPI
Every KPI you look at is the result of a cascade of averaging and filtering operations across many timescales. The senior engineer keeps this stack in their head at all times, because every optimization action has a settling time governed by where in the stack it lands.
Figure 1.2 — The 5G time hierarchy. OFDM-symbol-level decisions at the bottom propagate upward through filtering and aggregation to the KPI window at the top. The mismatch between parameter-change timescale (milliseconds) and KPI-visibility timescale (minutes to hours) is the fundamental constraint on the optimization loop.
The filter equation at the middle of the stack deserves its own treatment, because it is the most common single source of optimization mistakes.
“The UE shall filter the measured result, before using for evaluation of reporting criteria or for measurement reporting, by the following formula: Fn = (1 − a) · Fn−1 + a · Mn, where Mn is the latest received measurement result from the physical layer; Fn is the updated filtered measurement result, that is used for evaluation of reporting criteria or for measurement reporting; Fn−1 is the old filtered measurement result; a = 1 / 2(k/4), where k is the filterCoefficient for the corresponding measurement quantity received by the quantityConfig field.”
Equation 1.3 — Layer-3 filter per TS 38.331 §5.5.3.2
This is a discrete-time exponentially-weighted moving average. Its effective memory (the 63% settling time, expressed in number of samples) is:
Equation 1.4 — Layer-3 filter memory
The spec allows filterCoefficient values fc0, fc1, fc2, fc3, fc4, fc5, fc6, fc7, fc8, fc9, fc11, fc13, fc15, fc17, fc19 (integer k). Each unit of k halves a every 4 steps, so the settling time doubles every 4 steps. Table 1.4 gives the numerical relationships.
| k (filterCoefficient) | a = 2−k/4 | τ (samples) | Settling time at 200 ms period | Typical use |
|---|---|---|---|---|
| 0 | 1.000 | ∞ (no filter) | 200 ms | unfiltered, diagnostic only |
| 1 | 0.841 | 0.54 | ~110 ms | very fast, noisy |
| 2 | 0.707 | 0.82 | ~164 ms | fast |
| 4 | 0.500 | 1.44 | ~290 ms | default for RSRP often |
| 8 | 0.250 | 3.48 | ~700 ms | smoothed, slow |
| 11 | 0.149 | 6.22 | ~1.24 s | very smooth, mobility-stable |
| 15 | 0.0625 | 15.5 | ~3.1 s | high-speed, anti-ping-pong |
| 19 | 0.0249 | 39.7 | ~7.9 s | maximum, may delay handovers |
Table 1.4 — Layer-3 filterCoefficient values, effective memory, and settling time (assuming 200 ms measurement period). Senior engineers keep this table in their head.
An operator sets filterCoefficient for RSRP to k = 11 (a = 0.149) on a high-speed rail cluster to stabilise mobility KPIs. Measurement period = 200 ms. Settling time τ ≈ 6 samples × 200 ms = 1.2 s. A UE moving at 300 km/h (83.3 m/s) travels 100 metres in that time. If the cluster has 500 m cell radius, the UE has already crossed 20% of the cell between the time the physical layer detects a better cell and the layer-3 filter reports it to the gNB. That is a 1.2 s delay in trigger — and exactly the kind of thing that pushes A3 events past the handover completion budget. The correct action is to tighten hysteresis or reduce timeToTrigger, not to keep increasing filterCoefficient.
1.5 Statistical Confidence in KPI Measurement
A KPI is a random variable, not a deterministic number. Every value on the dashboard has a confidence interval around it, and if you act on a small-sample KPI without computing that interval, you will chase noise.
The RACH success ratio is a classic Bernoulli process: each preamble either succeeds or fails. If we observe s successes in n attempts, the maximum-likelihood estimate of the true success probability is p̂ = s/n. The normal (Wald) confidence interval for large samples is:
Equation 1.5 — Wald interval (95% CI)
But the Wald interval becomes meaningless when p̂ is close to 0 or 1 — exactly the regime in which all accessibility KPIs live. For small samples near the boundary, the Wilson score interval is vastly better:
Equation 1.6 — Wilson score interval (95% CI)
A low-traffic rural cell in a 15-minute granularity period reports: RA.PreambleDetected = 99, RA.PreambleTotal = 100. RACH SR = 99.0%. Wald 95% CI: 99.0% ± 1.96·√(0.99·0.01/100) = 99.0% ± 1.95% → [97.05%, 100.95%], which exceeds 100% and is nonsense. Wilson 95% CI gives approximately [94.6%, 99.8%]. The true RACH SR is somewhere in that interval; the point estimate of 99% is statistically indistinguishable from the 99.5% target. Any optimization action based on this single granularity period is noise-chasing. The correct action is to accumulate counters over at least 6–12 hours before concluding there is a problem.
Figure 1.3 — Wilson 95% confidence interval width as a function of sample size, for an observed success ratio of 99%. The cone shows the envelope of the true success probability given the observation. Only at n ≳ 1000 attempts does the point estimate become distinguishable from the 99.5% target.
A KPI with fewer than ~1000 events in its granularity period is a noise generator, not a measurement. Always look at the underlying counter volume before you act on the ratio. If the denominator is small, aggregate over a longer window before drawing any conclusion.
1.6 The Four Classical Domains — With Formulas
Every optimization task still maps to one of the four classical domains, but a senior engineer defines them using the underlying mathematics rather than slogans.
Figure 1.4 — The four classical optimization domains with their governing equations. Each domain has a different mathematical framework, but all four ultimately converge on subscriber experience.
We will derive each of these formulas rigorously in later chapters. The point here is that optimization is not pattern-matching on dashboards — it is applied engineering math, and the senior engineer keeps the formulas at the back of their mind at all times.
1.7 The KPI Interaction Matrix
Every parameter change touches multiple KPIs. A tightening of the A3 offset raises handover attempts, which mechanically lowers the per-attempt success ratio (denominator grows faster than numerator near the decision threshold) while also reducing the mean cell-edge residency time — which lowers the drop rate in the source cell but raises the ping-pong rate and hence the target-cell accessibility load. A senior engineer learns this matrix over years; Table 1.5 codifies the most important couplings.
| Parameter touched | Direct KPI | Coupled KPI (often opposite) | Coupling mechanism |
|---|---|---|---|
a3-Offset | HO attempt rate ↑ | HO SR ↓ , Ping-pong ↑ | Earlier trigger → weaker-signal decisions |
hysteresis | Ping-pong ↓ | HO latency ↑, RLF ↑ | Delays the mobility decision |
timeToTrigger | HO SR ↑ | RLF on cell edge ↑ | Filters transients but holds late |
T310 (RLF timer) | False RLF ↓ | Real RLF detect latency ↑ | Bigger window, slower detection |
target BLER (10% vs 1%) | Latency ↓ | Throughput ↓ | More retransmissions or lower MCS |
preambleReceivedTargetPower | RACH SR ↑ | UL interference ↑, UL cap. ↓ | Louder preambles leak into data |
q-RxLevMin | Cell selection threshold | Load imbalance among neighbours | Moves boundary between cells |
p0-NominalPUSCH | UL cell-edge rate ↑ | UL ICI to neighbours ↑ | Raising UL power floor |
Table 1.5 — The core KPI interaction matrix. Memorise it: every single row is a trade-off, not a free lunch.
1.8 The Optimization Loop as a Control System
The Measure → Analyse → Act → Verify loop is not a management process. It is a discrete-time closed-loop controller in the formal control-theoretic sense, and it obeys the same stability rules as any other sampled feedback system.
Figure 1.5 — The optimization loop drawn as a classical SISO sampled control system. The plant (the network) is slow, noisy, and nonlinear; the measurement path (PM counters + layer-3 filter) introduces a one-sample delay. Loop stability demands that the controller wait at least three granularity periods before acting on its own effect.
Several control-theoretic insights fall straight out of this picture. (i) The loop has inherent delay equal to one GP — you cannot measure your own effect until at least one full granularity period has elapsed. (ii) Changing two parameters at once converts the SISO loop into a 2-input-1-output system, and the sensitivity matrix becomes ill-conditioned; this is the formal reason for the “one change per iteration” rule. (iii) The effective loop gain must be < 1 to guarantee stability; when an engineer panics and doubles their parameter step on each iteration, they are violating the small-gain theorem and the loop will oscillate. (iv) External disturbances (traffic, weather, day-of-week) enter at the plant and cannot be rejected by the controller — they can only be averaged out by lengthening the aggregation window.
1.9 Anti-Patterns at the Senior Level
Four subtle failures separate senior optimizers from exhausted ones. Each has a name in statistics or econometrics, and each shows up in the field almost every week.
“When a measure becomes a target, it ceases to be a good measure.” The moment an operator ties engineer bonuses to RACH SR, engineers discover ways to make the counter look good without improving the underlying user experience — for example, by filtering out preambles that come from paging responses (which have higher failure rates) or by excluding cells during busy hour. The KPI hits target; users still complain. The fix is to monitor families of KPIs and cross-check them against user-experience indicators (Net Promoter, app-level QoE) regularly.
A cluster KPI can move in the opposite direction to every single underlying cell KPI, when the mix of cell sizes shifts. Example: a cluster reports HO SR dropping from 99.2% to 99.0%. Drilling in, every cell individually improved — but a large-denominator cell with lower SR gained traffic share. The aggregate KPI is a weighted average, and the weights changed. The fix is to aggregate on counter sums, not on ratio averages, and to always check the denominator distribution.
Drive tests are conducted on live cells. Cells that were crashing or alarmed at the time of the test are excluded from the route. The KPI of the drive test cluster is therefore upward-biased: it measures only the cells that were healthy enough to measure. The fix is to correlate drive test results against the PM data from the same time window and to explicitly flag excluded cells.
A parameter change is rolled out on Monday morning. By Tuesday the KPI has improved by 0.3 percentage points. The engineer claims victory — but Monday was a public holiday, traffic was 40% of normal, and the improvement came from reduced load rather than from the change. The fix is to require at least one full weekly traffic cycle between the change and the before/after comparison, and to use matched-cell controls (A/B testing) whenever possible.
1.10 The Vendor-Neutral Vocabulary
Throughout this book we will use only 3GPP-standardised names for counters, parameters, and procedures. The discipline is not stylistic — it is operational. A 3GPP name carries a specification clause that any engineer in the world can look up; a vendor alias carries only the vendor's internal documentation, which may disappear at the next release. When you encounter a counter in a GUI, your first action should be to look up the corresponding TS 28.552 family and clause. Only then should you translate back to the local vendor terminology — and you should record the translation in your team's reference.
Five counters in particular are universally known under vendor aliases but have clean 3GPP names that every optimizer should use in speech and writing:
| 3GPP Standard Name (TS 28.552) | Typical vendor alias pattern | What it actually counts |
|---|---|---|
RA.PreambleTotalA | "RACH Preamble Group A received" | Msg1 preambles from group A detected by PRACH receiver |
RRC.ConnEstabSucc.mo-Data | "RRC Setup Completes MO" | RRCSetupComplete with cause = mo-Data in EstablishmentCause IE |
HO.ExeSuccIntraCell | "Intra-Cell HO Success" | Handover completion in the same gNB |
RAB.RelActNbrOutage.5QI1 | "VoNR Drop Count" | Active VoNR (5QI=1) bearer released due to radio outage |
DRB.UeThpDl.5QI9 | "eMBB Average DL Throughput" | Per-UE DL PDCP SDU throughput averaged over active period |
Table 1.6 — Five commonly-aliased counters and their 3GPP standard names. Use the standard names in every document.
1.11 Summary
- The performance envelope is defined by TS 22.261 and TS 38.913 — peak rates, latency, reliability, density. Every KPI is ultimately judged against this envelope.
- Shannon's bound C = B·log2(1+SINR) sets the hard ceiling. Real 5G NR achieves ~80% of Shannon after CP, DMRS, PT-RS, and the 948/1024 code rate cap in TS 38.214.
- The three-layer hierarchy is formal and separable: Layer 1 physical measurements (TS 38.215), Layer 2 counters (TS 28.552), Layer 3 KPIs (TS 28.554). Know the clause for each.
- The SS-RSRQ formula is N·SS-RSRP / RSSI — not a synonym for RSRP. RSSI includes interference and load; SS-RSRP does not.
- The layer-3 filter Fn = (1−a)Fn−1+a·Mn with a = 2−k/4 has settling time τ ≈ 1/a samples. Misconfigured
filterCoefficientis a silent cause of mobility problems. - Every KPI is stochastic. Use the Wilson score interval for small samples. A sub-1000-event denominator is a noise generator, not a measurement.
- The four classical domains — coverage, accessibility, retainability, throughput/mobility — each have formal governing equations. Memorise them.
- The KPI interaction matrix (Table 1.5) is a catalogue of trade-offs. Every parameter touches multiple KPIs in opposite directions.
- The optimization loop is a SISO control system. Loop delay ≥ 3×GP. Never change more than one parameter per iteration. This is the small-gain theorem in disguise.
- Anti-patterns: Goodhart, Simpson, survivorship bias, confounding. If you cannot name which is happening on your dashboard today, you are not looking hard enough.
- Vocabulary discipline: use 3GPP names exclusively. Vendor aliases are aliases, not truth.
With the mathematical foundations in place, the next chapter takes this apparatus and applies it to the 5G NR architecture itself. We will walk through the gNB functional split, the O1/F1/E1/NG/Xn interfaces, and the mapping of each counter family to the logical node that owns it — so that when you see a degraded KPI, you know instantly which log file on which host to open.
5G NR Architecture for Optimizers
Counter ownership, functional split, and interface topology — the foundational map every optimizer must internalize before touching a parameter
3GPP TS 38.300 · TS 38.401 · TS 37.340 · TS 28.552- Identify the four logical nodes of a disaggregated gNB (CU-CP, CU-UP, DU, RU) and state which protocol layers reside in each per TS 38.401 §6.
- Name all seven NG-RAN reference interfaces (N2, N3, Xn-C, Xn-U, F1-C, F1-U, E1), their owning node pairs, and their IETF transport stacks.
- Distinguish NSA (EN-DC, TS 37.340) from SA (TS 38.300) at the level of core attachment, bearer structure, and PM counter source node.
- Construct the complete counter-family-to-logical-node ownership map and use it to localize a degraded KPI to the correct physical host without guessing.
- Explain how PM measurement files are generated, formatted (TS 32.435 XML), and transported via the O1 interface (NETCONF/YANG per TS 28.532).
- Apply the ownership map to a worked scenario: RRC setup failure with stable RACH → fault localized to F1-C transport or gNB-CU-CP, not gNB-DU.
§2.1 Why the Architecture Matters to the Optimizer
A widespread failure mode in 5G RAN optimization is treating the gNB as a monolithic black box. The optimizer observes a degraded KPI on the dashboard, issues a parameter change “in the gNB,” and waits. When the KPI does not recover, the investigation stalls because there is no mental model of where inside the gNB the failure originated.
Modern 5G NR deployments are functionally disaggregated. A single “cell” visible to the UE is actually the product of up to four distinct logical nodes (gNB-CU-CP, gNB-CU-UP, gNB-DU, and optionally a separate O-RU), connected by three distinct reference interfaces (F1, E1, eCPRI fronthaul), each with its own transport, its own PM counter emission, and its own failure modes. This disaggregation has a direct consequence: PM counters are not emitted by “the gNB” — they are emitted by specific logical nodes.
RRC connection establishment counters (RRC.ConnEstabAtt, RRC.ConnEstabSucc) are emitted by the gNB-CU-CP. RACH preamble counters (RACH.PreambleDedCell) are emitted by the gNB-DU. DRB throughput counters (DRB.ThpVolDl) are emitted by the gNB-CU-UP. If these three nodes are hosted on separate physical servers in a cloud-native RAN deployment, then a single “accessibility KPI” degradation may require you to open log files on three different hosts. Without the ownership map, you cannot know which one.
This chapter builds that ownership map from first principles, starting with the TS 38.401 functional split, moving through the interface protocol stacks, covering NSA and SA architectures in parallel, and arriving at a precise table that every optimizer should be able to reproduce from memory.
§2.2 The gNB Logical Node Architecture (TS 38.401 §6)
TS 38.401, “NG-RAN; Architecture description,” defines the disaggregated gNB architecture in Section 6. The specification permits two levels of split: a CU/DU split (mandatory reference point) and a further CU-CP/CU-UP split (optional but common in cloud-native deployments). Understand both because PM counter families align to both levels.
The further decomposition of the gNB-CU into control-plane and user-plane components is specified in TS 38.401 §6.2:
The four resulting logical nodes are:
| Node | Hosted Protocol Layers | Upward Interface | Downward Interface | Core Interface |
|---|---|---|---|---|
| gNB-CU-CP | RRC, PDCP-C (SRBs) | — | F1-C → gNB-DU, E1 → gNB-CU-UP | NG-C (N2) → AMF, Xn-C → peer CU-CP |
| gNB-CU-UP | SDAP, PDCP-U (DRBs) | E1 → gNB-CU-CP | F1-U → gNB-DU | NG-U (N3) → UPF, Xn-U → peer CU-UP |
| gNB-DU | RLC, MAC, PHY-High | F1-C ← CU-CP, F1-U ← CU-UP | eCPRI/CPRI → O-RU (optional) | — |
| O-RU | PHY-Low, RF, Beamforming | eCPRI/O-FH ← gNB-DU | Antenna | — |
RRC exclusively resides in gNB-CU-CP. There is no RRC in the DU. This means: all RRC signalling (connection establishment, reconfiguration, release, re-establishment, measurement configuration) is processed in the CU-CP. A DU outage causes RLF at the UE and counter increments in the DU and CU-CP simultaneously — but RRC failure counters will appear only in the CU-CP PM file.
§2.3 Protocol Layer Assignment Across Nodes
Understanding precisely which protocol layer runs in which node is the prerequisite for correct counter attribution. The assignment is fixed by the 3GPP functional split and cannot be changed by implementation choice.
| Layer | Standard | Logical Node | SRB vs DRB | Key Function for Optimizer |
|---|---|---|---|---|
| RRC | TS 38.331 | gNB-CU-CP | SRB only | Measurement config, HO commands, RLF triggers |
| SDAP | TS 37.324 | gNB-CU-UP | DRB only | QoS flow → DRB mapping; 5QI enforcement |
| PDCP-C | TS 38.323 | gNB-CU-CP | SRBs (0/1/2) | Integrity protection, ciphering of RRC messages |
| PDCP-U | TS 38.323 | gNB-CU-UP | DRBs | Header compression (ROHC), PDCP duplication for DAPS HO |
| RLC | TS 38.322 | gNB-DU | Both | Segmentation, ARQ retransmission; RLC counters indicate reorder/timeout |
| MAC | TS 38.321 | gNB-DU | Both | Scheduling, HARQ, RACH; scheduler parameters live in DU |
| PHY-High | TS 38.211 | gNB-DU | — | Channel estimation, HARQ feedback processing |
| PHY-Low / RF | TS 38.211 | O-RU | — | FFT/IFFT, PRACH detection, beamforming weights |
The F1 interface cuts between the MAC/PHY (in the DU) and the RLC (also in the DU) — wait, that is not quite right. The F1 transport boundary is above the RLC. Specifically: RLC SDUs are tunnelled over F1-U as GTP-U packets. This has a performance implication: F1 transport latency directly adds to RLC ARQ round-trip time. If your F1 link introduces 2 ms additional RTT, the RLC t-Reordering timer must be set accordingly, or premature re-establishment will occur. This is a DU-side parameter, but the cause is in the fronthaul transport, not in the DU scheduler.
§2.4 The Seven NG-RAN Reference Interfaces
A disaggregated gNB participates in seven distinct reference interfaces, each with its own 3GPP transport specification, its own Application Protocol (AP), and its own failure signature in PM counters. Table 2.3 is the canonical reference.
| Interface | Node Pair | Plane | Application Protocol | Transport | 3GPP Spec |
|---|---|---|---|---|---|
| N2 (NG-C) | gNB-CU-CP ↔ AMF | Control | NGAP | SCTP / IP | TS 38.413 |
| N3 (NG-U) | gNB-CU-UP ↔ UPF | User | GTP-U | UDP / IP | TS 29.281 |
| Xn-C | gNB-CU-CP ↔ gNB-CU-CP | Control | XnAP | SCTP / IP | TS 38.423 |
| Xn-U | gNB-CU-UP ↔ gNB-CU-UP | User | GTP-U | UDP / IP | TS 38.425 |
| F1-C | gNB-CU-CP ↔ gNB-DU | Control | F1AP | SCTP / IP | TS 38.473 |
| F1-U | gNB-CU-UP ↔ gNB-DU | User | GTP-U | UDP / IP | TS 38.474 |
| E1 | gNB-CU-CP ↔ gNB-CU-UP | Control | E1AP | SCTP / IP | TS 38.463 |
Three architectural observations from Table 2.3 that are directly relevant to optimization fault isolation:
- All control planes use SCTP. SCTP (Stream Control Transmission Protocol) provides multi-homing and multi-streaming. An F1-C SCTP failure causes CU-CP to initiate DU-level reset procedures, which appear as mass RRC failure in the PM data — even though the radio interface was never degraded.
- All user planes use GTP-U over UDP. GTP-U is a tunnelling protocol with no congestion control. If the N3 transport between gNB-CU-UP and UPF is congested, user-plane throughput degrades with no corresponding NGAP or F1AP error counters. The only indicator is DRB throughput counters at the CU-UP, combined with transport-layer monitoring.
- The E1 interface carries bearer context setup. When a PDU session is established, the gNB-CU-CP sends an E1AP “Bearer Context Setup Request” to the gNB-CU-UP (TS 38.463 §9.2.1). A slow or failed E1 response causes PDU session establishment failures that appear in CU-CP counters as NGAP NG_Setup or NG_InitUEMessage failures, not as DU-side RACH failures.
§2.5 NSA Architecture: EN-DC (TS 37.340)
Non-Standalone (NSA) architecture, formally specified as E-UTRA-NR Dual Connectivity (EN-DC) in 3GPP TS 37.340, is the dominant initial 5G deployment mode globally. Understanding its bearer structure is essential because it fundamentally changes where NR PM counters originate and how to interpret throughput KPIs.
The EN-DC bearer architecture creates three distinct bearer types, each with different PM counter origins:
| Bearer Type | PDCP Location | Radio Interface | PM Counter Origin | TS 37.340 Ref |
|---|---|---|---|---|
| MCG Bearer | eNB (MN) | LTE only | eNB counters only | §4.4.1 |
| SCG Bearer | en-gNB (SN) | NR only | en-gNB CU-CP/CU-UP counters | §4.4.2 |
| Split Bearer | eNB (MN) | LTE primary + NR secondary | PDCP in eNB; NR PM from DU only | §4.4.3 |
In split bearer mode, the PDCP resides in the eNB (MN). This means the eNB's PM counters report the total PDCP volume — including the fraction delivered via NR. To isolate the NR contribution to throughput, you cannot use the en-gNB PDCP counters (they don’t exist for split bearers). Instead, use the en-gNB MAC/RLC layer counters (MAC.SDVolDl) which measure what was actually scheduled over NR air interface. The difference between eNB PDCP volume and en-gNB MAC volume is the LTE contribution.
The SN addition procedure in EN-DC involves an X2-C exchange: the MN sends a “SgNB Addition Request” (TS 37.473) to the en-gNB, which responds with an “SgNB Addition Request Acknowledge” once resources are available. The PM counter for this procedure (SgNB.AddReqAtt, SgNB.AddReqSucc) is emitted by the MN (eNB), not the en-gNB. This is a frequent source of confusion: you expect a “5G SgNB addition success rate” KPI to be in the NR PM file, but it is in the LTE PM file.
§2.6 SA Architecture (TS 38.300)
Standalone (SA) architecture is the “pure 5G” mode where the gNB connects directly to the 5G Core (5GC) via the NG interface, without any LTE anchor. SA is required for all 5G-exclusive capabilities: network slicing (S-NSSAI per PDU session), 5G-native QoS (5QI with dynamic GBR guarantees), URLLC, mMTC, and 5G NR positioning.
In SA, the gNB-CU-CP is the sole control-plane anchor for the UE. All NAS (Non-Access Stratum) messages are transparently forwarded by the gNB-CU-CP to the AMF via NGAP. This means that AMF selection, authentication, PDU session establishment, and handover decisions all traverse the gNB-CU-CP. The implication: AMF overload or NGAP path failures appear directly as RRC accessibility failures in the CU-CP PM file.
- LTE eNB anchors core connection (EPC)
- RRC in both eNB and en-gNB (split)
- NR adds capacity only (data plane)
- SgNB addition/release via X2
- No 5G NAS, no 5GC AMF for NR
- No S-NSSAI slicing on NR bearers
- 5QI inherited from EPS bearer QCI
- SgNB counters: SCG bearer DRB only
- gNB connects directly to 5GC (AMF+UPF)
- RRC exclusively in gNB-CU-CP
- Full 5G NAS: N1 reference point
- Intra/inter-gNB HO via Xn or N2
- S-NSSAI per PDU session (slicing)
- 5QI native — including GBR + non-GBR
- URLLC, mMTC, IIoT possible
- All PM counters in gNB PM files only
§2.7 Counter-to-Node Ownership Map (TS 28.552)
This section is the chapter’s primary deliverable. PM counter families are not distributed randomly across logical nodes; they follow the functional split of TS 38.401 deterministically. Table 2.5 maps every major PM counter family to its emitting node, its TS 28.552 category, and the optimization domain it informs.
In a disaggregated gNB where CU-CP, CU-UP, and DU come from different vendors, PM counter naming conventions may diverge from TS 28.552 normative names even while the measurement semantics are identical. Always verify counter-to-node mapping by inspecting the vendor’s NRM (Network Resource Model, per TS 28.622) or YANG module, not by assuming TS 28.552 names are used verbatim.
| Counter Family | Representative Counters | Emitting Node | TS 28.552 Domain | Optimization Domain |
|---|---|---|---|---|
| RRC Connection | RRC.ConnEstabAtt, RRC.ConnEstabSucc, RRC.ConnMean | gNB-CU-CP | UE Context | Accessibility |
| RRC Re-establishment | RRC.ReEstabAtt, RRC.ReEstabSuccWithoutUeContext | gNB-CU-CP | UE Context | Retainability |
| Intra-gNB Handover | HO.IntraFreqHoSucc, HO.IntraFreqHoAtt, HO.IntraFreqHoPrepSucc | gNB-CU-CP | Mobility | Mobility |
| Inter-gNB Handover | HO.ExecAttIntraFreq, HO.ExecSuccIntraFreq, HO.PrepAttInterFreq | gNB-CU-CP (source) | Mobility | Mobility |
| NGAP / NG Context | NG.IniCtxtSetupAtt, NG.IniCtxtSetupSucc, NG.UeCtxtRelCmd.cause | gNB-CU-CP | NG Interface | Accessibility / Core |
| DRB Throughput | DRB.ThpVolDl, DRB.ThpVolUl, DRB.UEThpDl | gNB-CU-UP | Data Radio Bearer | Throughput |
| QoS Flow | QosFlow.TotNbrDl.5qi, QosFlow.TotNbrUl.5qi | gNB-CU-UP | QoS / Slicing | Throughput / Slicing |
| PDCP Volume | PDCP.PDCPBytesUl, PDCP.PDCPBytesDl | gNB-CU-UP (DRBs), gNB-CU-CP (SRBs) | PDCP | Throughput |
| RACH | RACH.PreambleDedCell, RACH.PreambleACell, RACH.PreambleUnasgn | gNB-DU | Random Access | Accessibility |
| Scheduling / MAC | MAC.SDVolDl, MAC.SDVolUl, MAC.PDSCHActPRBDl | gNB-DU | MAC Scheduling | Throughput / Resource |
| Beam Level | L1M.RS-SINR.Avg, L1M.RS-SINR.BinX, BeamLevel.RSRP.Avg | gNB-DU | Beam Management | Coverage / Quality |
| EN-DC / SgNB | SgNB.AddReqAtt, SgNB.AddReqSucc, SgNB.RelReq | eNB (MN) PM file | MR-DC | NSA Accessibility |
| Network Slice | Per-S-NSSAI DRB + QoS flow counters | gNB-CU-CP + gNB-CU-UP | Slicing §7 | Slice SLA |
| RLF | RLF.Ind.cause, RLF.Ind.T310Exp | gNB-CU-CP (via RRC reconf) | UE Context | Retainability |
§2.8 PM Collection Architecture: O1 and NETCONF
PM counters do not reach the OSS by magic. The collection path is specified in TS 28.532 (“Management and orchestration; Management services for communication services”) and uses the O1 interface between the gNB and the Service Management and Orchestration (SMO) layer, based on NETCONF (IETF RFC 6241) with YANG models.
The PM file format is XML, defined in TS 32.435. Each PM file contains:
- A file header identifying the managed network element (NE), software version, and collection interval (Granularity Period, GP).
- One
measInfoblock per measurement type, listing the MO (Managed Object) instances and their counter values for the measurement period. - A file footer with completion timestamp and possible validity flag.
Consider a gNB-CU-CP serving four gNB-DUs (each with three cells). The CU-CP emits one PM file containing RRC.ConnEstabAtt counters for all 12 cells. Each cell appears as a separate MO instance (NRCellCU). The DU PM files contain separate RACH.PreambleDedCell counters for the same 12 cells (NRCellDU MO instances).
Optimization scenario: RRC.ConnEstabAtt drops 15% overnight across all 12 cells. RACH counters in all four DU PM files are stable. Conclusion: the fault is upstream of all DUs. The most likely candidates are: (1) F1-C SCTP link degradation (causing CU-CP to discard incoming F1AP UL Initial UL RRC Message Transfer messages), (2) CU-CP memory/CPU overload dropping RRC state machine entries, or (3) NGAP path to AMF degraded (causing RRC to be blocked pending Initial Context Setup response). None of these faults would increment any DU-side counter. Without the ownership map, you would spend hours looking at the DU scheduler and PHY layer.
The standard GP values are 5 minutes and 15 minutes. Most operators use GP=15 minutes for routine optimization. GP=5 minutes is used for event-triggered deep dives. Note that 5-minute GP data is typically not retained beyond 7 days due to storage volume; all long-term trending must use 15-minute data.
§2.9 Multi-Vendor and O-RAN Deployment Implications
The O-RAN Alliance specifications (O-RAN.WG4 fronthaul, O-RAN.WG1 architecture) extend the 3GPP functional split by defining the open fronthaul interface between gNB-DU and O-RU (the “7-2x split”). In these deployments, the RU is supplied by a different vendor from the DU, introducing a new failure domain that generates no PM counters in the 3GPP PM framework.
The key O-RAN considerations for optimization are:
- Fronthaul latency budget. The 7-2x split requires eCPRI/Ethernet fronthaul latency ≤ 100 μs one-way for FR1. Exceeding this budget causes PRACH detection failures in the O-RU, which the DU cannot distinguish from “no UE sent a preamble.” The DU RACH counter
RACH.PreambleACellwill show zero attempts rather than any failure indication. - Beamforming weight management. In massive MIMO O-RU deployments, beamforming weights can be managed by either the DU (CU-plane driven) or the O-RU (M-plane driven). The PM counter
L1M.RS-SINR.Avgis emitted by the DU, but the beamforming weights that produced that SINR may be configured in the O-RU via the M-plane. Parameter changes in the wrong node have no effect. - PM counter scope alignment. When CU and DU come from different vendors (Open RAN disaggregation), the CU PM file NE ID and DU PM file NE ID may use different naming conventions for the same cell. OSS stitching (joining CU and DU PM data by cell ID) requires careful NRM alignment per TS 28.622 or NCI (NR Cell Identity) alignment.
Symptom: MAC PRB utilization appears low (e.g., 40%) while DRB throughput is also low. The DU scheduler seems to be leaving capacity on the table. Investigation of MAC scheduling counters shows normal grant patterns. Root cause: eCPRI fronthaul jitter is causing 30–40% of PHY transmissions to be discarded at the O-RU. The DU believes the transmissions are happening, but the RF never radiates. No 3GPP PM counter captures this failure. Solution: add fronthaul monitoring (O-RAN WG4 M-plane alarms for delay/sync violations) as a parallel data source to the PM collection.
§2.10 Summary
- The 3GPP disaggregated gNB has four logical nodes: gNB-CU-CP (RRC, PDCP-C), gNB-CU-UP (SDAP, PDCP-U), gNB-DU (RLC, MAC, PHY-High), and O-RU (PHY-Low, RF). Protocol layer assignment is fixed by TS 38.401 and cannot be varied by implementation.
- Seven reference interfaces connect the nodes: N2/N3 to 5GC, Xn-C/Xn-U to peer gNBs, F1-C/F1-U between CU and DU, and E1 between CU-CP and CU-UP. All control planes use SCTP; all user planes use GTP-U/UDP.
- NSA (EN-DC, TS 37.340) uses an LTE eNB as the anchor with an NR en-gNB as the secondary. SgNB addition/release counters reside in the LTE PM file — not the NR PM file. Split bearer PDCP resides in the eNB; NR contributes to MAC-layer counters only.
- SA (TS 38.300) connects directly to 5GC. All PM counters for accessibility, mobility, and throughput reside in gNB PM files. AMF overload appears as CU-CP accessibility degradation with no DU-side evidence.
- The counter-to-node ownership map (Table 2.5) is the optimizer’s fault localization tool: RRC/NGAP/HO → CU-CP; DRB/PDCP/QoSFlow → CU-UP; RACH/MAC/PHY → DU. When a KPI degrades, consult the map before opening any log file.
- PM collection uses the O1 interface (NETCONF/YANG, TS 28.532) with XML files per TS 32.435. Each logical node emits a separate PM file; the SMO joins them by NCI. GP=15 minutes is standard; GP=5 minutes is event-triggered only.
- In O-RAN deployments with a separate O-RU, fronthaul failures generate no 3GPP PM counters. Always combine 3GPP PM data with O-RAN M-plane monitoring to achieve full fault coverage.
The next chapter builds on this architectural foundation to introduce the full 3GPP KPI framework (TS 28.554): how raw counter observations are mathematically transformed into the standardized KPIs that operators commit to in SLA contracts. We will examine every formula in TS 28.554 from the optimizer’s perspective — focusing on which input counters each KPI formula requires, how the node ownership map determines which PM files you need to join, and where the 3GPP formula differs from the “simplified” vendor variants that you will encounter in real OSS dashboards.
The 3GPP KPI Framework
From raw PM counters to statistically valid performance ratios — the complete TS 28.554 architecture every optimizer must master
3GPP TS 28.552 · TS 28.554 · TS 28.532 · TS 28.622 · TS 38.331 · ITU-T E.501- Explain precisely why a KPI is not a counter, not real-time, and not per-UE — and why that matters for every optimization decision you make.
- Navigate the TS 28.554 clause structure and locate any KPI by its unique ID, formula, observation period, granularity, and MO class.
- Name all five TS 28.554 performance domains and state one primary KPI for each.
- Derive a ratio KPI, throughput KPI, and availability KPI from first principles using the general TS 28.554 formula forms.
- Compute the Wilson score confidence interval on a KPI denominator and determine when a KPI is statistically trustworthy.
- Set evidence-based baseline thresholds using P50/P95 percentile analysis and busy-hour averaging.
- Recognise and name four KPI anti-patterns — Goodhart's Law, Simpson's Paradox, survivorship bias, cell-splitting effect — and describe exactly how each distorts optimisation decisions.
3.1 Why KPIs Exist: The Signal in the Counter Noise
A 5G gNB can generate tens of thousands of performance management (PM) counter increments per granularity period. A large macro cell with 300 simultaneous active UEs accumulates several hundred thousand counter events every fifteen minutes. No engineer — and no algorithm — can interpret raw counter streams at this volume directly. The 3GPP KPI exists precisely to compress that counter stream into a dimensionless ratio that is comparable across cells, networks, vendors, and time.
The formal 3GPP definition is rooted in three interlocking specifications:
- TS 28.552 — the counter dictionary. Defines the measurement family names, per-counter semantics, collection granularity, and the Managed Object (MO) class each counter belongs to.
- TS 28.554 — the KPI dictionary. Each KPI entry references the exact TS 28.552 counter names in a formula, specifies the observation period, and assigns a unique clause number.
- TS 28.622 — the measurement job lifecycle. Specifies how an operations system (OAM) creates, activates, suspends, and terminates a measurement job, and how counter data is transferred over the O1 interface defined in TS 28.532.
A KPI (Key Performance Indicator) is a dimensionless ratio computed from one or more aggregated PM counter sums over a defined observation window and a defined set of managed objects. It is not a raw counter. It is not a real-time measurement. It is not a per-UE metric. It is an engineering expectation about system behaviour, sampled once per granularity period.
This definition has three critical corollaries that every optimizer must internalise before they trust a KPI report.
| Property | What it means | Practical implication |
|---|---|---|
| Aggregated | Counter sums over all UEs in the MO during the GP | A bad-experience single UE is invisible inside a large aggregate |
| Ratio over attempts | Numerator / denominator, not an absolute count | A cell with 10 RRC attempts in 15 min yields a meaningless ratio (§3.6) |
| Observation-windowed | Covers exactly one GP (default 900 s) per data point | Transient spikes inside the GP are averaged out; shorter GPs catch more transients |
| MO-scoped | Computed per NRCellDU, NRCellCU, or GNBDUFunction instance | The KPI value depends on which MO class is selected; cell vs. gNB KPIs are not interchangeable |
| Not real-time | Reported at GP boundary, not as events arrive | PM data is 5–15 minutes stale by the time it is processed; use S1/NG traces for live diagnosis |
Table 3.1 — Five intrinsic properties of a 3GPP KPI and their practical implications for optimization.
Measurement job lifecycle (TS 28.622)
TS 28.622 §4.5 defines the PM measurement job as a state machine with four states: INACTIVE, ACTIVE, SUSPENDED, and STOPPED. An OAM creates a job by configuring a MeasurementJob instance on the O1 interface, specifying the list of counter families, the GP, the reporting period, and the target MO DN (Distinguished Name). The gNB accumulates counters in ACTIVE state. At the end of each GP, it transfers the file (in 3GPP XML format per TS 32.432 or JSON per TS 28.532) to the OAM. SUSPENDED freezes collection without deleting the job; STOPPED terminates it.
A counter that is not included in an active measurement job is not incremented on most implementations. The absence of a counter value in the PM file does not mean zero events occurred — it may mean the counter was never collected. Always verify the active job configuration before concluding that a counter is zero.
3.2 TS 28.554 Architecture: The KPI Specification Blueprint
TS 28.554 (Management and orchestration; 5G performance measurements) is structured around five performance domains, each occupying a dedicated clause. Understanding the clause map is the first thing to do with a fresh copy of the spec — every KPI formula you will ever use is anchored to exactly one of these clauses.
| Clause | Domain | Sample KPI ID | Primary MO class |
|---|---|---|---|
| §4 | Accessibility | 4.1.1 RRC Setup SR, 4.2.1 DRB Setup SR | NRCellCU, NRCellDU |
| §5 | Retainability | 5.1.1 DRB Drop Rate, 5.2.1 RRC Abnormal Release | NRCellCU, NRCellDU |
| §6 | Integrity / Throughput | 6.1.1 DL User Throughput, 6.4.1 PRB Utilisation | NRCellDU |
| §7 | Availability | 7.1.1 Cell Availability | NRCellDU, GNBDUFunction |
| §8 | Mobility | 8.1.1 HO Execution SR, 8.3.1 Inter-gNB Intra-freq SR | NRCellCU |
Table 3.2 — TS 28.554 clause structure. Each domain occupies one numbered clause. Sub-clauses give individual KPI entries.
Anatomy of a KPI entry in TS 28.554
Every KPI entry in TS 28.554 follows an identical schema. Knowing this schema lets you locate any missing piece of a KPI specification in seconds. The fields are:
| Field | Description | Example (TS 28.554 §4.1.1) |
|---|---|---|
| Name | Human-readable identifier | RRC connection setup success rate |
| Unique ID | Clause number used as reference | 4.1.1 |
| Formula | Explicit counter names from TS 28.552 | RRC.ConnEstabSucc.sum / RRC.ConnEstabAtt.sum × 100 |
| Observation period | Collection window over which counters are summed | Granularity period (default 900 s) |
| Measurement granularity | MO class and spatial scope | NRCellCU (per cell) |
| Unit | Output unit of the KPI value | Percentage (%) |
| Counter references | TS 28.552 clause for each counter used | TS 28.552 §5.1.1.15.1 (ConnEstabAtt), §5.1.1.15.2 (ConnEstabSucc) |
Table 3.3 — Schema of a KPI entry in TS 28.554. Every clause follows this identical structure.
“The KPI measures the rate of successful RRC connection establishments relative to the number of attempts, providing a system-level view of accessibility performance.”
This single sentence is dense with meaning. “Rate” means a ratio — not an absolute count. “Successful RRC connection establishments” maps to RRC.ConnEstabSucc. “Number of attempts” maps to RRC.ConnEstabAtt. “System-level view” is the spec's explicit acknowledgement that the KPI hides per-UE detail by design. “Accessibility performance” places this KPI in the §4 domain, not retainability or mobility.
3.3 The Five Performance Domains
TS 28.554 organises every 5G NR KPI into five orthogonal performance domains. The word orthogonal is deliberate: a degradation in one domain can occur without any visible change in another. A cell experiencing massive L3 handover failures (Mobility) may still show excellent DL throughput (Integrity) for the UEs that did not attempt to hand over. A cell on planned outage (Availability = 0%) will show no counter increments at all, so its Accessibility and Retainability ratios will compute as 0/0 = undefined — which is not the same as "bad".
Figure 3.1 — The five TS 28.554 performance domains and their clause references. Colour coding is consistent with all diagrams in this chapter.
An experienced optimizer checks all five domains before forming a hypothesis. A single-domain view is a cardinal error. A cell with a Mobility problem (frequent inter-gNB handover failures) will eventually manifest as a Retainability problem (DRB drops due to RLF) and then an Integrity problem (throughput loss during HO interruption time). By the time the Integrity KPI degrades, the root cause is already two hops back in the causal chain.
3.4 KPI Formula Anatomy: The Three Canonical Forms
Every KPI in TS 28.554 is an instance of one of three canonical formula forms. Recognising which form a KPI uses tells you immediately what can go wrong and what to look for in the raw counters when the KPI degrades.
Form 1 — Ratio KPI (success rate)
The most common form. The numerator counts successful outcomes; the denominator counts attempts. The result is a percentage bounded on [0, 100].
Equation 3.1 — General ratio KPI form (TS 28.554)
Key property: the denominator is the statistically important quantity. If the denominator is small, the KPI has high variance and is unreliable (see §3.6). Ratio KPIs are used for Accessibility (§4) and Mobility (§8).
Form 2 — Throughput KPI
Used for Integrity metrics. The numerator accumulates data volume in bits; the denominator accumulates the time the scheduler was actively transmitting. This is not a time-ratio KPI; the denominator is active transmission time, not total elapsed time.
Equation 3.2 — DL user throughput KPI form (TS 28.554 §6.1.1)
The critical distinction is that DRB.ThpTimeDl counts only the sub-frames (in units of 0.5 ms by convention) during which the DRB had data in the buffer and was actually scheduled. Idle time when a UE is dormant is excluded. This is why the throughput KPI can show 200 Mbps even in a cell with 50% PRB utilisation — the UEs that are active are genuinely getting high rates; the metric says nothing about the UEs that are not active.
Form 3 — Time-ratio KPI (availability)
Used for Availability metrics. The numerator counts available time in seconds; the denominator is the total elapsed wall-clock time of the observation period.
Equation 3.3 — Time-ratio (availability) KPI form (TS 28.554 §7.1.1). GP = granularity period count.
Note that for a single GP, the denominator is exactly 900 seconds, so GP × 900 evaluates to 900. When computing monthly cell availability over N granularity periods, the denominator is N × 900. Unavailable time is the complement: any second during which the cell was not in service due to an outage, hardware fault, planned maintenance, or software reset.
Figure 3.2 — KPI formula decomposition. The observation window gates both counters. Statistical reliability is governed by the denominator, not the numerator.
3.5 Key KPIs with TS 28.554 Exact Formulas
The following six KPIs form the daily vocabulary of 5G RAN optimization. Each formula is given exactly as derived from the TS 28.554 counter names. Each KPI has engineering-validated threshold bands derived from operator field experience and ITU-T QoS guidelines.
KPI 1 — RRC Connection Setup Success Rate (TS 28.554 §4.1.1)
Equation 3.4 — RRC Connection Setup SR (TS 28.554 §4.1.1)
The numerator RRC.ConnEstabSucc is incremented when the gNB receives an RRCSetupComplete message from the UE (TS 38.331 §5.3.3.4). The denominator RRC.ConnEstabAtt is incremented when the gNB transmits an RRCSetup message (TS 38.331 §5.3.3.2). Failures between these two events include UE radio failure (RLF), NACK on SRB1, timer T300 expiry (TS 38.331 §10.2 default 1000 ms), and UE moving out of coverage before RRCSetupComplete. The cause sub-counters (.mo-Signalling, .mo-Data, .Emergency, etc.) should always be checked alongside the aggregate to isolate cause-specific failure modes.
KPI 2 — DRB Setup Success Rate (TS 28.554 §4.2.1)
Equation 3.5 — DRB Setup SR (TS 28.554 §4.2.1)
DRB setup failures occur after RRC setup succeeds. Common causes: QoS flow establishment rejection by 5GC (wrong 5QI or AMBR), F1-U bearer establishment failure toward CU-UP, local resource exhaustion (no available DRB context). Because this KPI is computed on the CU (NRCellCU MO class), it is entirely independent of radio failures — a low DRB SSR in the presence of a high RRCSSR points firmly at the core interface or resource management layer, not at radio coverage.
KPI 3 — HO Execution Success Rate (TS 28.554 §8.1.1)
Equation 3.6 — Intra-system HO Execution SR (TS 28.554 §8.1.1)
HO.ExecAtt is incremented when the source gNB transmits an RRCReconfiguration with mobilityControlInfo (TS 38.331 §5.3.5.3). HO.ExecSucc is incremented when the source gNB receives the UE Context Release from the target, confirming the UE successfully completed the RACH on the target cell. A HO execution failure (denominator incremented, numerator not) means the UE attempted RACH on the target and failed, or radio link failed during the T304 window (TS 38.331 §10.2, default 50–2000 ms). Do not confuse this with HO Preparation SR (§8.2.1), which covers the Xn/NG handshake before the RRCReconfiguration is sent.
KPI 4 — DL User Throughput (TS 28.554 §6.1.1)
Equation 3.7 — DL User Throughput (TS 28.554 §6.1.1). Volume in bits; time in 0.5 ms units per TS 28.552.
DRB.ThpTimeDl counts the number of 0.5 ms scheduling intervals during which the DRB had data in the transmit buffer. Convert to seconds by multiplying by 0.5×10−3. The resulting throughput is the experienced rate per active DRB, averaged across all active DRBs over the GP. High concurrency (many simultaneous active UEs) divides the shared PRB budget, which manifests as lower per-UE throughput even if PRB utilisation is high. This KPI does not distinguish between the MCS efficiency (which is limited by SINR) and the scheduling efficiency (which is limited by PRB sharing).
KPI 5 — DL PRB Utilisation (TS 28.554 §6.4.1)
Equation 3.8 — DL PRB Utilisation (TS 28.554 §6.4.1)
Available PRBs per slot depends on numerology and bandwidth. For 100 MHz SCS=30 kHz, there are 66 PRBs per slot (TS 38.211 Table 5.3.2-1 gives 132 RBs, but the PDSCH scheduler uses only the non-guard-band portion). The denominator multiplied by Subframes gives the total available PRB-slots in the GP. A PRB utilisation above 80% is a strong signal of capacity bottleneck — above this point, queueing delay grows non-linearly and per-UE throughput begins to degrade due to scheduler congestion.
KPI 6 — Cell Availability (TS 28.554 §7.1.1)
Equation 3.9 — Cell Availability (TS 28.554 §7.1.1). GP = granularity period count for the reporting interval.
Unavailable seconds are accumulated whenever the NRCellDU instance is in any state other than ACTIVE (TS 28.622 §4.3.2: INACTIVE, LOCKED, or SHUTTINGDOWN). Software resets, hardware alarms, and manual lockouts all contribute. For monthly reporting over N = 2,880 GPs (30 days × 96 GPs/day), a single one-hour outage contributes 3,600/2,592,000 = 0.139% unavailability, dropping CA from a theoretical 100% to 99.86% — below the TS 28.554 reference target of 99.95%.
Figure 3.3 — Six primary TS 28.554 KPIs: formula, clause, and operator threshold bands. Domain colour coding from Figure 3.1 is preserved throughout.
3.6 Granularity Period and Statistical Confidence
The most common error in 5G KPI analysis is trusting a ratio KPI computed from a small denominator. The granularity period (GP) is 900 seconds by default (TS 28.532 §7.4.2 "15-minute reporting interval"). For a quiet rural cell with low traffic, 900 seconds may yield only 12 RRC connection attempts. An 11/12 = 91.7% success rate computed from 12 trials is statistically indistinguishable from 98.5% at 95% confidence. Acting on this number is worse than not acting — it is noise trading dressed as insight.
Busy Hour definition (ITU-T E.501)
ITU-T Recommendation E.501 defines the TCBH (Time Consistent Busy Hour) as the one-hour period starting at the same clock time each day that maximises the mean traffic carried over a 30-day period. In 5G practice, a busy hour spans four consecutive GP windows (4 × 900 s = 3,600 s). KPI analysis should always be performed on the busy hour aggregate — denominator counts will be at least 4× higher than any single GP, improving statistical reliability proportionally.
Equation 3.10 — Busy-Hour KPI aggregation over 4 contiguous GPs
The Wilson Score Confidence Interval
For a ratio KPI with denominator n and observed proportion p̂ = successes/n, the Wilson score interval at confidence level (1−α) is:
Equation 3.11 — Wilson score confidence interval (z = 1.96 for 95% CI). Introduced in §1.6 of this book.
For n = 12, p̂ = 0.917 and z = 1.96:
- Numerator of plo: 0.917 + 1.962/24 − 1.96√(0.917×0.083/12 + 1.962/576) ≈ 0.917 + 0.160 − 1.96×0.082 ≈ 0.916
- plo ≈ 0.916/1.320 ≈ 0.694
- phi ≈ (0.917 + 0.160 + 0.161)/1.320 ≈ 0.938
The 95% CI is [69.4%, 93.8%]. A measured value of 91.7% with n = 12 is consistent with the true rate being anywhere from 69% to 94%. This tells you nothing actionable.
A ratio KPI with fewer than 1,000 denominator events per observation window should be treated as statistically unreliable. With n = 1,000 and p̂ = 0.985, the Wilson 95% CI is approximately [97.8%, 99.0%] — a range narrow enough to distinguish "meeting target" from "failing target." For low-traffic cells, always aggregate multiple GPs before drawing conclusions. The minimum aggregation window needed to accumulate 1,000 denominator events can be estimated from the cell's average BHCA (Busy Hour Call Attempts).
A rural macro cell averages 3 RRC connection attempts per minute in the busy hour. Over one GP (900 s = 15 min):
- Expected denominator: 3 × 15 = 45 attempts
- Observed: 41/45 = 91.1% — Wilson CI: [78.9%, 96.5%]. Meaningless.
Over one busy hour (60 min):
- Expected denominator: 3 × 60 = 180 attempts
- Observed: 172/180 = 95.6% — Wilson CI: [91.3%, 97.8%]. Marginal.
Over one busy-hour day (assuming 60 min BH, averaged over 5 weekdays):
- Expected denominator: 180 × 5 = 900 attempts
- Observed: 860/900 = 95.6% — Wilson CI: [93.8%, 96.9%]. Actionable. Cell is below the 98.5% target at 95% confidence.
Figure 3.4 — 24-hour GP timeline. Bar height represents traffic load. KPI is computed at each GP boundary (diamond). The Busy Hour (ITU-T E.501) is the four-GP window with peak aggregate traffic; BH KPI aggregates all four numerators and denominators.
3.7 KPI Baseline Setting: Percentiles, Thresholds, and Seasonality
A KPI threshold without a statistical basis is an opinion. The 3GPP framework does not mandate threshold values for most KPIs; it only defines the formula and observation period. Operator targets (Table 3.4) are derived from field benchmarks, SLA commitments, and ITU-T G.1050 multimedia performance requirements. The methodology for setting a defensible baseline has three steps.
Step 1 — Collect busy-hour distribution
Gather at least 30 days of busy-hour KPI values for the cell population of interest (a cluster, a layer, or a full market). For each KPI, compute the empirical distribution of busy-hour values. This gives the natural operating range of the network without any intervention.
Step 2 — Set threshold bands from percentile analysis
| Threshold Band | Definition | Percentile Basis | Action |
|---|---|---|---|
| Target (Good) | KPI ≥ P50 of top-quartile cells | 75th percentile of 30-day BH distribution | No action required; monitor weekly |
| Warning (Amber) | P5 ≤ KPI < P50 of top-quartile cells | 5th–75th percentile range | Add to watch list; investigate if sustained 3+ days |
| Critical (Slate) | KPI < P5 of 30-day distribution | Below 5th percentile | Immediate investigation; escalate if not resolved in 24h |
Table 3.4 — Three-band threshold methodology. Thresholds are derived from the network's own distribution, not from generic targets, making them deployment-specific and statistically grounded.
Step 3 — Seasonal baseline adjustment
KPI baselines are not static. A cell on a beach promenade may show RRCSSR = 96% in summer (high mobility, high load, many temporary UEs with poor coverage) and 99.2% in winter (low load, stationary UEs). Applying winter thresholds in summer will generate hundreds of spurious alarms. The correct practice is to maintain separate baseline distributions for:
- Weekday busy hour vs. Weekend busy hour
- Peak season (school holidays, local events) vs. off-season
- Network software release periods (feature activations alter KPI baselines)
“The typical performance target value of the KPI RRC connection setup success rate is ≥98.5% for normal operation. This value is illustrative and may be adjusted by the operator to reflect local deployment conditions and service agreements.”
Figure 3.5 — Three-band KPI threshold diagram for RRC Setup SR. The Critical (slate) zone triggers immediate investigation; Warning (amber) requires sustained monitoring; Target (teal-green) requires only routine review. P50 of the 30-day busy-hour distribution for a healthy network cluster is shown at 99.1%.
3.8 Cross-Domain KPI Correlation
The five performance domains are not independent in causality, only in definition. Many real-world failure modes propagate across domain boundaries over time. Understanding which KPIs correlate with which allows an optimizer to trace a symptom in one domain to its root cause in another before customers notice.
“Coverage degrades first (measured by SS-SINR, a Layer 1 quantity). This causes increased BLER (Layer 2 HARQ), which degrades Integrity (throughput). If BLER is severe, the RLC ARQ buffer stalls and the DRB drops (Retainability). Meanwhile, the UE attempts a handover that fails because the target cell also has poor coverage (Mobility). The sequence: Integrity → Retainability → Mobility, all driven by a single Coverage root cause.”
Figure 3.6 — Cross-domain KPI correlation matrix. Read row → column: "degradation in row domain propagates to column domain via the described mechanism." Strong (deep teal) links should always be checked when investigating a domain failure.
The strongest cross-domain relationships to memorise are:
- Availability → all other domains (strong): A cell in outage produces zero events. All ratio KPIs become 0/0. This must be filtered before any cluster-level analysis, or the cell will falsely appear as having perfect KPIs.
- Mobility → Retainability (strong): A HO execution failure is an RLF event. The UE triggers RRC re-establishment (TS 38.331 §5.3.7). If re-establishment fails, it is a DRB drop and counts in Retainability.
- Retainability → Integrity (strong): Every DRB drop is a throughput zero. A cell with 2% DRB drop rate (which looks modest) is generating 2% throughput outage events, which appear as a long tail in the CDF and damage P5/P10 user experience metrics.
3.9 KPI Anti-Patterns: The Four Ways KPIs Mislead
The 3GPP KPI framework is precise, but it is applied in human-managed systems with incentives, biases, and statistical traps. The following four anti-patterns appear repeatedly in optimisation programmes worldwide. Recognising them is as important as knowing the formulas.
Anti-Pattern 1 — Goodhart's Law
"When a measure becomes a target, it ceases to be a good measure." — C. Goodhart, Bank of England working paper, 1975.
In 5G RAN context: when an operator sets RRCSSR ≥ 98.5% as a contractual KPI target, the network team is incentivised to achieve 98.5% rather than to maximise actual service quality. Common Goodhart manipulations in RAN include: blocking low-success-probability UEs from accessing the cell (reducing denominator), shortening timer T300 (dropping slow UEs before they count as failures), and artificially inflating RRC.ConnEstabSucc by counting as "success" connections that immediately fail at the DRB level.
A team improves RRCSSR from 96.8% to 98.7% by setting maxNumOfConnEstab (a cell-level admission control parameter) to a tighter value, rejecting attempts that the system predicts will fail. The KPI looks better. The user whose call attempt is now being blocked before it registers in the counter experiences a worse service. The KPI has divorced from reality — exactly as Goodhart predicted.
Anti-Pattern 2 — Simpson's Paradox
Simpson's Paradox occurs when a trend appears in several different sub-groups but disappears or reverses when these groups are combined. In 5G RAN, the most common manifestation is the cluster average deception: a heavily loaded cell added to a cluster can raise the cluster's aggregate RRCSSR even as that individual cell's RRCSSR is poor.
Before adding a high-traffic cell:
- 3 cells, total 120 attempts, 115 successes → cluster RRCSSR = 95.8%
After adding a new high-traffic cell (2,000 attempts, 98.0% SR):
- New cell: 2,000 attempts, 1,960 successes
- 3 old cells: 120 attempts, 114 successes (one degraded slightly)
- Cluster aggregate: (1,960 + 114) / (2,000 + 120) = 2,074 / 2,120 = 97.8%
The cluster KPI improved from 95.8% to 97.8% despite the original 3 cells degrading. The new high-volume cell dominates the aggregate. An optimizer looking only at the cluster KPI would have no reason to investigate the underlying 3 cells.
Anti-Pattern 3 — Survivorship Bias
Survivorship bias in RAN KPIs occurs when only cells that are "up" (in ACTIVE state) contribute to the measured population. Cells that are in outage (zero availability) are excluded from ratio KPIs by definition — there are no denominator events. An availability-weighted KPI analysis that averages only cells with CA > 0% will systematically overstate network performance during partial outage periods. The fix is to include an explicit denominator count of cells that should have been active rather than cells that were active.
Anti-Pattern 4 — Cell Splitting Effect on Per-Cell KPIs
When a heavily loaded cell is split (e.g., by activating a nearby small cell or by indoor coverage deployment), the traffic migrates off the macro cell. The remaining UEs on the macro cell are typically the low-SINR edge UEs — the difficult users. The macro cell's per-UE throughput KPI may fall after the split even though the overall network experience has improved, because the easy high-SINR UEs (who were propping up the average) have migrated. This is not a failure of the optimisation action; it is a measurement artefact. Always evaluate cell-split results at cluster level, not at the individual cell level.
| Anti-Pattern | Symptom | Detective Test | Correct Interpretation |
|---|---|---|---|
| Goodhart's Law | KPI improves; complaints increase | Check denominator trend; verify service quality via CDR/MDT | KPI is being gamed; investigate parameter changes that reduce denominator |
| Simpson's Paradox | Cluster KPI improves; individual cells degrade | Per-cell KPI trend alongside cluster aggregate | High-volume cells dominate aggregate; always report per-cell distribution not just mean |
| Survivorship Bias | KPI looks normal; field reports degraded | Check Cell Availability; count cells with CA = 0% | Unavailable cells are excluded from ratio statistics; weight by expected traffic load |
| Cell Splitting Effect | Macro cell throughput drops after split; management concerned | Cluster throughput (sum of all cells) vs. per-cell average | Expected artefact; total network throughput has improved; per-cell drop is residual-user effect |
Table 3.5 — The four KPI anti-patterns: symptom, diagnostic test, and correct interpretation.
3.10 Chapter Summary
- A KPI is not a counter. It is a dimensionless ratio of aggregated counter sums over a defined observation window (GP = 900 s default, TS 28.532). It is not real-time, not per-UE, and not a raw event count.
- TS 28.554 is the authoritative KPI specification. Five clauses: §4 Accessibility, §5 Retainability, §6 Integrity, §7 Availability, §8 Mobility. Every KPI entry contains a unique ID, formula with TS 28.552 counter names, observation period, MO class, and unit.
- Three canonical formula forms: ratio KPI (Eq. 3.1), throughput KPI (Eq. 3.2 — volume/active-time), time-ratio KPI (Eq. 3.3 — available/total seconds).
- Six primary KPIs to know verbatim: RRCSSR (§4.1.1), DRB SSR (§4.2.1), HOSR (§8.1.1), DL User Throughput (§6.1.1), DL PRB Utilisation (§6.4.1), Cell Availability (§7.1.1).
- Denominator < 1000 = statistically unreliable KPI. Always aggregate to busy-hour level (4 GPs) before drawing conclusions. Use the Wilson score CI (Eq. 3.11) to quantify uncertainty.
- Baseline thresholds require percentile analysis of a 30-day busy-hour distribution. Target = P75, Warning = P5–P75, Critical = below P5. Adjust seasonally.
- Cross-domain correlation is causal, not coincidental. Availability outages mask all other KPIs. Mobility failures propagate to Retainability. Retainability drops degrade Integrity. Always check all five domains simultaneously.
- Four KPI anti-patterns to memorise: Goodhart's Law (gaming the denominator), Simpson's Paradox (high-volume cells dominate cluster averages), Survivorship Bias (absent cells excluded from ratios), and Cell-Splitting Effect (residual-user throughput drop after offload).
- Measurement job lifecycle (TS 28.622): A counter not in an active job is not incremented. Zero in the PM file ≠ zero events. Always verify job configuration before interpreting absence of data.
Chapter 4 enters the first and most fundamental domain: Accessibility. We will trace every step of the 5G NR RRC connection establishment procedure (TS 38.331 §5.3.3), map each failure point to its TS 28.552 counter, and derive the complete set of TS 28.554 §4 KPI formulas from the state machine. By the end of Chapter 4 you will be able to identify, from a counter printout alone, whether a 97% RRCSSR is failing at the Random Access phase, the RRC message exchange, or the NGAP initialisation — and know the exact parameter to change in each case.
§3.11 Case Study: Tracking a Software-Upgrade Regression in Real Network Data
Cell NCI = 0x1A4F23 | NR FDD 2100 MHz 100 MHz BW | Urban macro, gNB-CU/DU split | KPI window: 15-min granularity, aggregated to hourly and daily for display
A planned software upgrade was applied to the gNB-CU-CP at Thursday 02:00. From Monday to Wednesday the cell ran nominal — RRCSSR tracked above 99.0%. By Friday morning the NOC automated threshold alert fired: RRCSSR had crossed the 97% warning threshold. The sequence below shows exactly how a field optimizer would read the KPI trend, isolate the hour of regression, and correlate across the KPI domain table to pin the root cause to a single functional node.
Fig 3.7 — Seven-day daily RRCSSR. Monday–Wednesday baseline 99.1–99.4% (teal, ≥98.5%).
Thursday post-upgrade drops to 98.3% (amber warning zone). Friday–Sunday remains in critical zone 96.1–96.8% (slate).
Counter basis: RRC.ConnReq (TS 28.552 §5.1.1.3) denominator, RRC.ConnSetupCompl numerator.
SW.UpgradeSucc / SW.UpgradeFail counter pair and the gNB-CU-CP alarm log for Thursday 00:00–06:00.
Fig 3.8 — Friday hourly RRCSSR. Hours 00–05 remain above 98.5% (overnight, low traffic load). Degradation crosses the warning threshold at 06:00 as morning traffic ramps up. The nadir is 12:00 with 93.2% (3,412 attempts, 248 failures). Recovery is partial from 21:00 but does not clear the critical threshold by midnight — consistent with a persistent software configuration fault, not a transient radio event.
The hourly chart reveals a critical diagnostic clue: the failure rate correlates with traffic load. Hours 00–05 (low traffic, ~200 attempts/GP) show 98.8–99.0% RRCSSR. The same cell at peak load (12:00, 3,412 attempts/GP) shows 93.2%. This load-dependent degradation signature points to a resource exhaustion condition — not a radio-layer problem — inside the gNB-CU-CP processing stack. Specifically: a call-processing thread or SCTP association capacity limit that was modified in the upgrade.
Fig 3.9 — Multi-KPI snapshot at 12:00 Friday (peak failure hour). Five of six KPIs are healthy (≥98.9%). Only RRCSSR = 93.2% is critical. RACH (DU layer) and Cell Availability (hardware) are nominal — ruling out radio, antenna, and hardware causes. NGAP-SSR (CU-CP → AMF) is 99.2% — ruling out the core interface. DRB-SSR (CU-UP) is 99.4% — ruling out the user-plane control path. The fault is localised to the gNB-CU-CP call-processing function: the RRC Setup procedure that runs inside the CU-CP after RACH succeeds but before the NGAP Initial Context is triggered.
Diagnostic Reasoning — Step by Step
Step 1 — Scope the fault with the weekly chart (Fig 3.7). The step-change on Thursday aligns precisely with the 02:00 upgrade window. This is a change-induced regression, not an environmental degradation. First action: freeze the upgrade rollout to remaining cells until the root cause is confirmed.
Step 2 — Identify the load-sensitivity with the hourly chart (Fig 3.8). Overnight hours (00–05) sustain ≥98.8%. Business hours degrade to 93.2% at 12:00. The failure count at 12:00 is 248 events over one hour — equivalent to 4.1 failures per minute sustained. This rules out a one-time crash/restart (which would produce a narrow spike) and confirms a saturation condition under load.
Step 3 — Isolate the node with multi-KPI correlation (Fig 3.9). Apply the domain table from §3.3: RACH success (DU) = 99.7% → DU radio scheduler, PRACH receiver, MSG1/MSG2/MSG3 processing are all healthy. Cell Availability = 100% → no cell outage, no hardware alarm. NGAP Initial Context SR = 99.2% → the N2 interface and AMF are healthy. DRB Setup SR = 99.4% → gNB-CU-UP and the F1-U path are healthy. HOSR = 98.9% → Xn and the F1-C handover path are healthy. The only failing KPI maps to the CU-CP RRC processing block.
Step 4 — Drill into the failure counter.
Pull the TS 28.552 sub-counters under the RRCSSR family:
RRC.ConnFail.Cause.RadioLinkFailure → near-zero (expected, RACH is healthy).
RRC.ConnFail.Cause.NoReply → elevated (CU-CP not responding to DU F1AP UE Context Setup Request).
RRC.ConnFail.Cause.MaxRetrans → moderate (UE retransmitting RRCSetupRequest, CU-CP queue full).
This counter signature confirms: the CU-CP is dropping UE context setup requests under high load —
consistent with a thread-pool or SCTP buffer limit reduced by the upgrade configuration change.
Step 5 — Confirm and remediate.
Cross-reference the upgrade changelog against the CU-CP configuration delta.
The suspect parameter: maxRrcSetupConcurrentProc (vendor-internal, maps to TS 38.331 §5.3.3 procedure capacity).
The upgrade reduced this limit from 512 to 128 concurrent RRC setups — an undocumented regression in the release note.
Remediation: revert the single parameter (not the entire software build) and confirm RRCSSR recovers to baseline within one KPI window (15 minutes).
"RRC Setup Success Rate = (RRC.ConnSetupCompl.NbReq / RRC.ConnReq.NbReq) × 100 [%].
Observation period: as defined in TS 28.552. Spatial scope: NR cell. Validity conditions: denominator > 0."
Normative implication: A cell with 3,412 RRC attempts and 248 failures in one GP has a statistically robust denominator (n>>1000). The Wilson 95% CI for 93.2% success from 3,412 trials is [92.4%, 93.9%] — a ±0.75% band. This is a confirmed degradation, not a statistical noise event. Compare to the §1.5 guidance: ≥1000 denominator required for trust.
A single failing KPI cannot tell you where to look. Five healthy KPIs alongside one failing KPI tell you exactly which node owns the fault. The domain table in §3.3 is not academic — it is the isolation matrix that converts "RRCSSR is 93%" into "the gNB-CU-CP RRC procedure engine has a capacity regression." Without that table, a team of five engineers will spend three days looking at antennas, power control, and handover parameters before someone finally opens the CU-CP log.
Counters & Measurements
From the 3GPP PM framework to the per-beam counter family — every measurement a 5G optimizer will ever query
3GPP TS 28.552 · TS 38.314 · TS 28.554 · TS 32.435 · TS 28.622- State the three measurement type classes (ACCUMULATIVE, GAUGE, DER) from TS 28.552 §4 and describe exactly when each is used.
- Decompose any counter name using the
<MOClass>.<MeasurementName>[.<SubCounter>]anatomy defined in TS 28.552 §5. - Locate any measurement family in the TS 28.552 taxonomy table and identify its MO scope, node responsibility, and TS clause.
- Explain the scope and measurement types defined in TS 38.314 for physical-layer measurements including RSRP, SINR, and timing advance.
- Extract P10/P50/P90 percentiles from a 128-bin histogram counter array using the cumulative-distribution formula.
- Aggregate counters correctly across 15-minute granularity periods into hourly KPIs without distorting ratios.
- Identify and avoid the five most dangerous counter pitfalls that produce incorrect optimization conclusions.
- Map every major TS 28.554 KPI to its counter basis, formula, and target value.
4.1 The PM Measurement Architecture
Performance Management (PM) in 5G NR is not a single monolithic counter export. It is a layered architecture in which measurement jobs are defined by an NMS, activated over the O1 interface, executed inside three distinct logical nodes of the gNB (DU, CU-CP, CU-UP), and exported as structured XML files conforming to TS 32.435. Understanding where in this stack a counter is produced determines how to interpret it, when it can be trusted, and what its temporal relationship is to other counters from the same cell.
"The following measurement types are defined: Accumulative (A): the value is accumulated (incremented) when a particular network event occurs; Gauge (G): the value represents a snapshot of a particular network condition; DER: the value is derived from other measurements."
These three measurement type classes sit at the root of every counter you will ever work with. Before you open a PM export, you must know which class each counter belongs to — because the correct aggregation rule is different for each class.
| Class | TS 28.552 symbol | Increment rule | Aggregation rule | Typical examples |
|---|---|---|---|---|
| ACCUMULATIVE | A | Incremented once per qualifying event; never decremented within a GP | SUM across GPs; SUM across cells | RRC.ConnEstabAtt, HO.ExecAtt, RA.PreambleDedCell |
| GAUGE | G | Written as a snapshot at end of GP (or sampled periodically within GP) | MEAN across GPs; use MEAN across cells only if cell sizes comparable | NRCellDU.UEAttachedNbr, L1M.DL-RSRP.Avg, L1M.TA.Avg |
| DER | DER | Derived from two or more other counters within the same GP; never stored raw | Recalculate from component counters; NEVER average the DER values directly | DRB.UEThpDl (bytes / active time), cell RRCSSR (computed by NMS) |
The PM architecture spans four functional layers, each with a defined O-interface for counter collection:
Figure 4.1 — The 5G NR PM measurement architecture. Each logical gNB node (DU, CU-CP, CU-UP) maintains its own MO class instances and emits separate PM files over O1. The NMS consumes all three and derives KPIs from the assembled counter set.
4.2 Counter Naming Convention (TS 28.552 §5)
Every 3GPP-standardised counter has a canonical name that encodes the measurement family, the event being counted, and any dimension sub-classification. This name is not a vendor invention — it is defined precisely in TS 28.552 and must be used verbatim in OAM interfaces and PM files. The anatomy is:
Three worked decompositions:
| Full counter name | Family prefix | Measurement name | Sub-counter | Semantic |
|---|---|---|---|---|
RRC.ConnEstabAtt.sum |
RRC | ConnEstabAtt | .sum | Total RRC connection establishment attempts; .sum = scalar aggregate over all establishment causes |
HO.ExecAtt.IntraFreq |
HO | ExecAtt | .IntraFreq | Handover execution attempts where source and target are on the same NR frequency (intra-frequency) |
RA.PreambleDedCell |
RA | PreambleDedCell | (none) | RACH preambles received on dedicated resources (cfRA, contention-free); no sub-dimension needed |
DRB.UEThpDl |
DRB | UEThpDl | (none) | DER measurement: average DL throughput per active UE; computed as total DL bytes / total active time |
L1M.RS-SINR.PDSCH.Bin42 |
L1M | RS-SINR.PDSCH | .Bin42 | Count of PDSCH SINR samples falling in histogram bin 42 during the GP (TS 38.314) |
Sub-counter suffixes follow a regulated vocabulary in TS 28.552. The five most important:
| Suffix | Meaning | Example |
|---|---|---|
.sum | Scalar aggregate over all sub-dimensions (used when the family has cause-based sub-counters) | RRC.ConnEstabAtt.sum = sum across all causes |
.Att | Attempt counter; incremented at the start of a procedure | HO.ExecAtt.IntraFreq |
.Succ | Success counter; incremented on successful completion of the procedure | HO.ExecSucc.IntraFreq |
.NbReq | Number of requests; used for cell availability and resource requests (NOT synonymous with .Att) | NRCellAvail.NbReq |
.BinX | Histogram bin index X (0..127 for TS 38.314 measurements) | L1M.RS-SINR.PDSCH.Bin0 through Bin127 |
Figure 4.2 — Counter name anatomy for L1M.RS-SINR.PDSCH.Bin42. The family prefix (L1M) immediately identifies the MO scope and node. The measurement name (RS-SINR) gives the physical quantity. The sub-dimension (PDSCH) restricts the scope to a specific channel. The bin index (Bin42) selects one bucket of the 128-bin histogram.
4.3 TS 28.552 Measurement Families — Complete Taxonomy
TS 28.552 organises all NR measurements into a taxonomy of family prefixes, each anchored to a specific MO class and gNB functional node. An optimizer who does not know this taxonomy will routinely look for CU-CP counters in DU exports or try to correlate counters from different MO scopes without realising they cover different populations of UEs.
| Family prefix | MO scope | Node | TS 28.552 § | Representative counters | Type |
|---|---|---|---|---|---|
RA |
NRCellDU | gNB-DU | §5.1.1.1 | RA.PreambleDedCell, RA.PreambleACell, RA.Msg2TxMsg1Rx, RA.PreambleRecCell | A |
RRC |
NRCellCU | gNB-CU-CP | §5.1.1.3 | RRC.ConnEstabAtt.sum, RRC.ConnEstabSucc.sum, RRC.ConnReEstabAtt, RRC.ConnMean | A, G |
NG |
GNBCUCPFunction | gNB-CU-CP | §5.1.1.4 | NG.InitialCtxSetAtt, NG.InitialCtxSetSucc, NG.UECtxRelReq, NG.PduSessSetAtt | A |
QF |
NRCellCU | gNB-CU-CP | §5.1.1.5 | QF.PDUSessionModAtt, QF.PDUSessionModSucc, QF.QosFlowSetupAtt | A |
DRB |
NRCellCU | gNB-CU-UP | §5.1.1.6 | DRB.EstabAtt, DRB.EstabSucc, DRB.UEThpDl, DRB.UEThpUl, DRB.IpThpDl, DRB.PacketLossRateDl | A, DER |
HO |
NRCellCU | gNB-CU-CP | §5.1.1.7 | HO.ExecAtt.IntraFreq, HO.ExecSucc.IntraFreq, HO.ExecAtt.InterFreq, HO.ExecSucc.ToEUTRA | A |
RAB |
NRCellCU | gNB-CU-CP | §5.1.1.8 | RAB.EstabAtt, RAB.EstabSucc, RAB.RelActNbr, RAB.RelAbnormEnb | A |
L1M |
NRCellDU | gNB-DU | §5.1.1.9 | L1M.RS-SINR.PDSCH.BinX, L1M.DL-RSRP.Avg, L1M.UL-SINR.Avg, L1M.TA.Avg | G, Histogram |
Slice |
NRCellCU | gNB-CU-UP | §5.1.1.10 | Slice.PDUSessionActNbr, Slice.DRBEstabAtt, Slice.DRBEstabSucc, Slice.UEThpDl | A, G |
NRCellAvail |
NRCellDU | gNB-DU | §5.1.2.1 | NRCellAvail.NbReq, NRCellAvail.TotDur, NRCellAvail.TotUnavailDur | A, G |
Figure 4.3 — TS 28.552 measurement family taxonomy tree. The three gNB functional nodes each own distinct MO classes and counter families. An optimizer must always verify node provenance before correlating counters from different families.
4.4 TS 38.314 — NR-Specific Physical Layer Measurements
While TS 28.552 defines the general PM measurement framework, the physical-layer measurement types specific to 5G NR are defined in a separate specification: TS 38.314. This specification covers measurements taken at the DU level on the Uu interface — measurements that are fundamentally different in character from event counters because they represent continuous signal quality observations quantised into histogram distributions.
"The measurement reporting interval (also referred to as granularity period) is the time interval during which measurements are collected. The granularity period shall be at least 300 seconds. The granularity period is configurable. The default granularity period is 900 seconds."
This quote from TS 38.314 §4.1 has three immediate consequences for optimization work:
- The minimum GP for physical-layer measurements is 5 minutes (300 s), not 1 minute. PM tools claiming sub-5-minute granularity for L1M counters are using non-standard vendor extensions.
- The default GP is 15 minutes (900 s). This is the GP at which most production PM systems operate.
- The GP is configurable. Activating 5-minute GPs increases PM file volume and processing load. Most operators only enable 5-minute GPs during troubleshooting windows.
| Measurement | TS 38.314 § | Physical quantity | Unit | MO | Aggregation | Range |
|---|---|---|---|---|---|---|
L1M.DL-RSRP.Avg |
§4.3.1 | DL Reference Signal Received Power (per RB) | dBm | NRCellDU | Mean over GP, all UEs | −156 to −44 dBm |
L1M.DL-RSRQ.Avg |
§4.3.2 | DL Reference Signal Received Quality | dB | NRCellDU | Mean over GP | −43 to 20 dB |
L1M.UL-SINR.Avg |
§4.3.3 | UL Signal-to-Interference+Noise Ratio (PUSCH) | dB | NRCellDU | Mean over GP, per UE then averaged | −23 to +40 dB |
L1M.TA.Avg |
§4.3.4 | Timing Advance (propagation delay proxy) | μs | NRCellDU | Mean over GP; high TA = large cell or edge UE | 0 to ~667 μs (100 km) |
L1M.RS-SINR.PDSCH.BinX |
§4.3.5 | PDSCH RS-SINR histogram sample count in bin X | count (dimensionless) | NRCellDU | SUM over GP; 128 bins covering −23 to +40 dB | Bin 0..127 |
L1M.UL-SINR.PUSCH.BinX |
§4.3.6 | PUSCH UL SINR histogram sample count in bin X | count (dimensionless) | NRCellDU | SUM over GP; 128 bins, same scale as DL SINR | Bin 0..127 |
Figure 4.4 — Representative L1M.RS-SINR.PDSCH histogram for a macro NR cell. The bell-shaped distribution skews towards positive SINR for a well-loaded cell. The P10/P50/P90 percentile markers are derived from the cumulative bin sum formula in §4.5. Bin width = 0.5 dB/bin across 128 bins covering −23 to +40 dB.
4.5 The Histogram Counter — Bins and Distributions
The histogram counter pattern in TS 38.314 is fundamentally different from all other PM counters. Rather than counting a single value, a histogram counter distributes observations across 128 discrete bins, creating a complete probability density function (PDF) of the measured quantity. The optimizer who knows how to extract percentiles from this distribution has far more diagnostic power than one who relies on averages alone.
For L1M.RS-SINR.PDSCH: the PM export contains 128 individual counter values, L1M.RS-SINR.PDSCH.Bin0 through L1M.RS-SINR.PDSCH.Bin127. Each BinX value is the count of PDSCH SINR samples that fell in the range [−23 + X×0.5, −23 + (X+1)×0.5) dB during the GP. Bin 0 = [−23, −22.5) dB. Bin 127 = [+40.5, +41) dB (clamped at +40 dB per spec).
Percentile Extraction Formula
Given the 128-bin array B[0..127], the p-th percentile SINR value is extracted using the cumulative distribution:
Scenario: A 15-minute GP counter export for cell ID NRCell-042 contains the following representative bin totals (values in parentheses are the running cumulative sum):
| Bin range | Bin indices | SINR range | Sum of bin counts | Cumulative count |
|---|---|---|---|---|
| Low SINR | Bin 0..18 | −23 to −14 dB | 1,240 | 1,240 |
| P10 zone | Bin 19 | −13.5 dB | 180 | 1,420 |
| Rising | Bin 20..39 | −13 to −3.5 dB | 4,320 | 5,740 |
| P50 zone | Bin 40 | +5 dB | 290 | 6,030 |
| Descending | Bin 41..59 | +5.5 to +16.5 dB | 5,880 | 11,910 |
| P90 zone | Bin 60 | +17 dB | 340 | 12,250 |
| High SINR | Bin 61..127 | +17.5 to +40 dB | 1,370 | 13,620 |
Step 1 — Total sample count:
N_total = 1,240 + 180 + 4,320 + 290 + 5,880 + 340 + 1,370 = 13,620 samples
Step 2 — P10 (10th percentile):
rank_10 = ⌊0.10 × 13,620⌋ = 1,362. Cumulative sum first reaches 1,362 at Bin 19 (cumulative = 1,420 ≥ 1,362).
SINR_P10 = −23 + 19 × 0.5 + 0.25 = −23 + 9.5 + 0.25 = −13.25 dB
Step 3 — P50 (median):
rank_50 = ⌊0.50 × 13,620⌋ = 6,810. Cumulative sum first reaches 6,810 at Bin 40 (cumulative = 6,030 + 290 = 6,030; we need Bin 41 area). Actually: cumulative before Bin 40 = 5,740, including Bin 40 = 6,030 < 6,810. Including more of Bin 41-onward: rank 6,810 falls in Bin 41 (midpoint = +5.75 dB). P50 ≈ +5.75 dB
Step 4 — P90 (90th percentile):
rank_90 = ⌊0.90 × 13,620⌋ = 12,258. This is first reached at Bin 60 (cumulative = 12,250 just before, 12,250 + 340 = 12,590 after ≥ 12,258).
SINR_P90 = −23 + 60 × 0.5 + 0.25 = −23 + 30 + 0.25 = +7.25 dB
Interpretation: 10% of UEs experienced SINR below −13.25 dB (edge-of-cell / interference-limited). 50% of UEs experienced SINR below ~+5.75 dB (moderate throughput zone). 90% of UEs experienced SINR below +7.25 dB. The narrow P50-P90 gap (+1.5 dB) suggests good UEs are clustered — typical of a small, compact cell. Wide P10-P50 gap (∼19 dB) indicates a coverage hole or high-interference sector.
4.6 Granularity Period (GP) and Aggregation
"The granularity period (GP) defines the time interval over which performance measurements are collected. The following values of GP are defined: 5 minutes, 15 minutes, 1 hour, 12 hours and 24 hours. When not specified otherwise, the default GP is 15 minutes."
The choice of GP has a non-obvious effect on computed KPIs that many optimizers overlook. The key insight is that a KPI computed from hourly-aggregated counters is not the same as the arithmetic mean of four 15-minute KPIs — and the difference can exceed 1 percentage point, which is material at a 99% target.
Aggregation Rules by Counter Type
| Counter type | Within-GP behavior | Across GPs (time aggregation) | Across MOs (cell aggregation) |
|---|---|---|---|
| ACCUMULATIVE | Continuously incremented during GP | SUM the counter values across GPs | SUM across cells; then recompute ratio |
| GAUGE | Sampled at end of GP (or averaged within GP) | MEAN across GPs; NEVER SUM | MEAN (if cells comparable); or weighted mean |
| DER (derived) | Computed from ACCUMULATIVE components at GP end | Recompute from the summed ACCUMULATIVE inputs; NEVER mean the DER values | Recompute from summed numerator/denominator |
| Histogram BinX | Sample count per bin during GP | SUM the bin counts; total N also increases (correct denominator) | SUM bins across cells; percentile recalculated from merged histogram |
Scenario: Four consecutive 15-minute GPs from 08:00 to 09:00, cell NRCell-017:
| GP | RRC.ConnEstabAtt.sum | RRC.ConnEstabSucc.sum | 15-min RRCSSR |
|---|---|---|---|
| 08:00–08:15 | 2,341 | 2,287 | 2287/2341 = 97.7% |
| 08:15–08:30 | 2,198 | 2,163 | 2163/2198 = 98.4% |
| 08:30–08:45 | 2,456 | 2,401 | 2401/2456 = 97.8% |
| 08:45–09:00 | 2,269 | 2,264 | 2264/2269 = 99.8% |
Incorrect hourly aggregation (arithmetic mean of 15-min KPIs):
RRCSSR_wrong = (97.7 + 98.4 + 97.8 + 99.8) / 4 = 98.4%
Correct hourly aggregation (sum counters, then compute ratio):
Att_total = 2,341 + 2,198 + 2,456 + 2,269 = 9,264
Succ_total = 2,287 + 2,163 + 2,401 + 2,264 = 9,115
RRCSSR_correct = 9,115 / 9,264 = 98.4%
In this example the results coincide, but note the 08:45 GP with 99.8% gets weighted by its volume (2,269 attempts) correctly in the denominator method. Now consider the case where 08:45 had 10,000 attempts at 99.8% success — the arithmetic mean would weight it equally with the 2,341-attempt 97.7% period, yielding a misleadingly low hourly KPI. The denominator-sum method correctly weights by load volume.
Key rule: ALWAYS aggregate by summing ACCUMULATIVE counters first, then computing the ratio. Never average ratio KPIs across time periods of different load volumes.
Figure 4.5 — Correct GP aggregation. The four 15-minute ACCUMULATIVE counters are summed before the ratio is computed. Averaging the four RRCSSR percentages (97.7+98.4+97.8+99.8)/4 = 98.4% coincidentally gives the same result here, but fails when GP loads differ significantly.
4.7 Measurement Objects and MO Classes
Every PM counter in 5G NR is always associated with a specific Managed Object (MO) instance. The MO class determines the key of the counter — which cell, which gNB function, which DU — and therefore how the data should be joined across the three gNB nodes. Understanding the MO class hierarchy is not optional for PM analysis; without it, you risk joining DU counters from one cell with CU-CP counters from a different cell that shares only the same gNB.
Figure 4.6 — MO class hierarchy from GNBFunction down to the per-cell and per-slice instances. Three separate PM files (one per gNB node type) are joined on cellLocalId (encoded in the NCGI) to assemble a complete per-cell counter set.
The TS 32.435 PM XML Structure
PM files transferred over the O1 interface use the XML format defined in TS 32.435. The essential structure is:
<measCollec beginTime="2026-04-09T08:00:00Z">
<managedElement localDn="GNBFunction=gnb-01,GNBDUFunction=1,NRCellDU=cell-042"/>
<measInfo measInfoId="PM_NRCellDU_001">
<granPeriod duration="PT900S" endTime="2026-04-09T08:15:00Z"/>
<repPeriod duration="PT900S"/>
<measType p="1">RA.PreambleDedCell</measType>
<measType p="2">RA.PreambleACell</measType>
<measType p="3">L1M.RS-SINR.PDSCH.Bin40</measType>
<measValue measObjLdn="NRCellDU=cell-042">
<r p="1">487</r> <!-- RA.PreambleDedCell -->
<r p="2">2134</r> <!-- RA.PreambleACell -->
<r p="3">290</r> <!-- L1M.RS-SINR.PDSCH.Bin40 -->
</measValue>
</measInfo>
</measCollec>
The measType p="N" elements define the counter dictionary for this file. The measValue r="N" elements provide the values for the MO instance. The granPeriod duration="PT900S" encodes the 15-minute (900-second) GP in ISO 8601 duration format. All timestamps are UTC (critical for multi-node correlation).
4.8 Key Derived KPI Formulas from TS 28.554
TS 28.554 is the KPI dictionary that defines how ACCUMULATIVE counters from TS 28.552 are combined to produce dimensionless performance ratios. Each KPI entry includes: a unique clause number, the exact counter names, the formula, the observation period, and a normative performance target (where applicable). The eight most important KPIs for day-to-day optimization work are:
| KPI | TS 28.554 § | Formula | Numerator counter | Denominator counter | 3GPP target |
|---|---|---|---|---|---|
| RRC Setup SR | §4.1.1 | Succ/Att × 100 | RRC.ConnEstabSucc.sum | RRC.ConnEstabAtt.sum | ≥99% |
| RACH SR | §4.1.2 | Msg2Rx/PreambleRec × 100 | RA.Msg2TxMsg1Rx | RA.PreambleRecCell | ≥99% |
| DRB Setup SR | §4.1.3 | Succ/Att × 100 | DRB.EstabSucc | DRB.EstabAtt | ≥99% |
| Intra-gNB HO SR | §4.2.1 | Succ/Att × 100 | HO.ExecSucc.IntraFreq | HO.ExecAtt.IntraFreq | ≥99% |
| Cell Availability | §4.5.1 | (TotDur − TotUnavailDur)/TotDur × 100 | NRCellAvail.TotDur − TotUnavailDur | NRCellAvail.TotDur | ≥99.9% |
| DL Throughput | §4.3.1 | DRB.IpThpDl [bits/s] | DRB.IpThpDl (bytes DL / active time) | — | ≥100 Mbps (eMBB) |
| NGAP SR | §4.4.1 | Succ/Att × 100 | NG.InitialCtxSetSucc | NG.InitialCtxSetAtt | ≥99% |
| Inter-gNB HO SR | §4.2.2 | Succ/Att × 100 | HO.ExecSucc.InterGNB | HO.ExecAtt.InterGNB | ≥98.5% |
Case A — RRCSSR (TS 28.554 §4.1.1):
Busy-hour export (08:00–09:00), NRCell-017:
RRC.ConnEstabAtt.sum = 9,264
RRC.ConnEstabSucc.sum = 9,115
This is below the 99% target. Root-cause investigation required. With 9,264 attempts, Wilson 95% CI width = ±0.27%, so the 98.4% estimate is statistically reliable (not noise).
Case B — DL Throughput (TS 28.554 §4.3.1):
DRB.IpThpDl is a DER measurement. The CU-UP exports the raw component counters:
- DRB.IpThpVolDl (total DL IP throughput volume in bits) = 42,560,000,000 bits
- DRB.IpThpTimeDl (total time with active DL DRBs) = 54,000 ms (54 seconds in 900 s GP)
Per-active-UE DL throughput = 788 Mbps (total) / 32 (avg active UEs per GP) = 24.6 Mbps/UE. The cell-level aggregate exceeds 100 Mbps target; the per-UE rate may be below target for edge UEs (requires per-UE log correlation to confirm).
Figure 4.7 — KPI formula structure for RRCSSR (TS 28.554 §4.1.1). Both counters must come from the same MO instance, same GP, and same node type to produce a valid ratio.
4.9 Counter Pitfalls for Optimizers
The five pitfalls below are all real failures observed in production optimization workflows. Each one produces a plausible-looking but incorrect KPI value that sends an engineer down the wrong troubleshooting path. Senior engineers recognise these patterns by instinct — junior engineers spend days chasing them.
The trap: RA.PreambleRecCell (sometimes presented as RA.PreambleACell.NbReq) is NOT the same as RA.PreambleACell.Att. In 5G NR RACH, a UE can transmit the same preamble multiple times due to power ramping. NbReq counts distinct contention-resolution requests; Att counts individual preamble transmissions. Using the wrong counter in the RACHSR denominator inflates the SR to over 100% (logically impossible but observed in misconfigured dashboards).
The fix: Always verify the sub-counter suffix semantics in TS 28.552 before building a KPI formula. For RACHSR: denominator = RA.PreambleRecCell (all received preambles, both cbRA and cfRA); numerator = RA.Msg2TxMsg1Rx (Msg2 transmitted per Msg1 received).
The trap: DRB.UEThpDl is a DER counter defined as: (total DL bytes) / (total time at least one active DL DRB exists). When a cell has 1 active UE downloading at 800 Mbps, DRB.UEThpDl = 800 Mbps. When a cell has 200 active UEs each at 4 Mbps, DRB.UEThpDl = 4 Mbps. The cell throughput differs by 200×, but the counter gives 4 Mbps in both cases. Optimizers who use this counter as a capacity indicator (expecting higher = better) are misreading it when load is high.
The fix: Use DRB.IpThpVolDl (total IP volume) as the capacity metric. Apply Little’s Law: Cell_Thp = DRB.UEThpDl × avg_active_UE_count. Track avg_active_UE from RRC.ConnMean or scheduling statistics.
The trap: L1M.RS-SINR.PDSCH.BinX and other beam-level counters in the L1M family can be configured with a different GP from cell-level ACCUMULATIVE counters (RRC, HO, RA families). If cell-level counters export every 15 minutes and beam-level counters export every 5 minutes (900 s vs 300 s), the file timestamps do not align. An NMS that joins on timestamp will produce empty rows for beam-level counters in most 15-min slots or will incorrectly concatenate three 5-min histograms as if they were one 15-min histogram.
The fix: Always check granPeriod duration in the PM XML header separately for L1M and non-L1M counters. If GPs differ, aggregate L1M bins to the longer GP by summing the per-bin counts across the three shorter GPs before computing percentiles.
The trap: Slice.* counters (e.g., Slice.PDUSessionActNbr) are emitted per S-NSSAI (Slice/Service Type + Slice Differentiator). The PM measurement job must be configured with the specific NSSAI filter to receive per-slice counter values. Many default measurement job templates export only the aggregate across all slices, labelled identically. An optimizer reading “Slice.DRBEstabAtt = 5,432” without knowing if it is per-slice or aggregate is working with undefined data.
The fix: Verify the measurement job definition in TS 28.622 format. If nssai is null in the job definition, the export is aggregate. Per-slice optimization requires a separate job per S-NSSAI value of interest.
The trap: TS 32.435 mandates UTC timestamps in PM files (endTime attribute). Alarm management systems (TS 32.111) typically store alarm timestamps in the gNB’s configured local timezone, which may include DST offsets. During DST transitions, a 1-hour overlap or gap appears when correlating PM counters with alarms. An engineer who tries to correlate a RRCSSR degradation starting at “02:30 local time” with a PM counter starting at “01:30 UTC” on a DST changeover night will find a systematic 1-hour mis-correlation.
The fix: Always normalize all timestamps to UTC before any PM-to-alarm or PM-to-log correlation. Store PM analysis results in UTC epoch timestamps (Unix time). Apply local-timezone offsets only at display time, never in analytical joins.
Figure 4.8 — The three counter type classes and their aggregation behavior. ACCUMULATIVE counters staircase upward within a GP and must be summed across time. GAUGE counters fluctuate and must be meaned. DER counters must be recomputed from their component ACCUMULATIVE inputs, never averaged.
4.10 Summary
- Three measurement type classes: ACCUMULATIVE (event counts, SUM across GPs), GAUGE (state snapshots, MEAN across GPs), DER (derived ratios, always recompute from component counters). Never mix aggregation rules across types.
- Counter naming anatomy:
<FamilyPrefix>.<MeasurementName>[.<SubCounter>]per TS 28.552 §5. The family prefix unambiguously identifies the node (RA/L1M = DU; RRC/NG/HO = CU-CP; DRB/Slice = CU-UP) and MO scope. - Nine measurement families in TS 28.552: RA, RRC, NG, QF, DRB, HO, RAB, L1M (BeamLevel), Slice. Each is anchored to a specific MO class and gNB node. Cross-node correlation requires joining on cellLocalId (encoded in NCGI).
- TS 38.314 physical-layer measurements (RSRP, SINR, TA) use a histogram of 128 bins (0.5 dB/bin, −23 to +40 dB). Extract P10/P50/P90 by cumulative-sum CDF, not simple averaging. Default GP is 900 s (minimum 300 s per TS 38.314 §4.1).
- GP aggregation rule: Sum ACCUMULATIVE counters across GPs first, then compute the ratio. Averaging ratio KPIs across time periods with different load volumes produces a volume-unweighted result that understates high-load periods.
- MO class hierarchy: GNBFunction → GNBDUFunction / GNBCUCPFunction / GNBCUUPFunction → NRCellDU / NRCellCU. PM files use TS 32.435 XML with
granPeriod duration="PT900S"in UTC timestamps. - Eight TS 28.554 KPIs with counter basis and targets: RRCSSR ≥99%, RACHSR ≥99%, DRB Setup SR ≥99%, Intra-gNB HOSR ≥99%, Cell Avail ≥99.9%, DL Thp ≥100 Mbps (eMBB), NGAP SR ≥99%, Inter-gNB HOSR ≥98.5%.
- Five critical pitfalls: Att vs. NbReq confusion; DRB.UEThpDl is per-active-UE not per-cell; beam counters may have different GP from cell counters; Slice counters require NSSAI filter; PM timestamps are UTC, alarm timestamps may be local time — always normalise to UTC before correlating.
Coverage & Signal Quality
RSRP, RSRQ, SS-SINR, beam sweeping, and CSI — the physical-layer foundations of every other KPI.
Chapter 5
RSRP, RSRQ, and SS-SINR
Signal quality measurement from physical definition to KPI formula — TS 38.215 §5.1 to TS 28.554 §6.1
Chapter Objectives
After completing this chapter, you will be able to:
- Derive SS-RSRP, SS-RSRQ, and SS-SINR from first principles using verbatim TS 38.215 §5.1 definitions
- Explain why RSRQ can be negative while RSRP is positive and why this asymmetry matters for threshold planning
- Compute the exact RE resource elements used for each measurement from the SSB grid
- Apply the TS 38.331 L3 filter to determine measurement delay for a given k coefficient
- Map TS 28.552 histogram counters (L.Cov.RSRP.Bin_N) to P10/P50/P90 distributions
- Set q-RxLevMin, q-QualMin, A1/A2 thresholds and quantify their coverage impact
- Identify the three root causes of SINR degradation and prescribe the correct counter-driven diagnostic
§5.1 The Three Pillars of 5G NR Signal Quality
Every 5G NR optimization workflow rests on three signal quality measurements: SS-RSRP (Synchronisation Signal Reference Signal Received Power), SS-RSRQ (Synchronisation Signal Reference Signal Received Quality), and SS-SINR (Synchronisation Signal Signal-to-Interference-plus-Noise Ratio). These are not marketing metrics — they are precisely defined quantities in 3GPP TS 38.215 with exact RE windows, linear-to-dB conversion rules, and measurement object attachment constraints.
Understanding the difference between them is non-negotiable before touching any coverage or mobility parameter. RSRP measures signal strength; RSRQ normalises signal strength against wideband interference load; SINR measures the instantaneous quality of the SSB subcarriers themselves. Each answers a different diagnostic question:
| Metric | Physical Quantity | RE Window | Typical Range | Primary Use |
|---|---|---|---|---|
| SS-RSRP | Average power of SSB RS REs | PSS+SSS+PBCH DMRS | −44 to −140 dBm | Coverage, cell selection/reselection, A1/A2/A3 thresholds |
| SS-RSRQ | N · SS-RSRP / SS-RSSI | Full BW over SSB slot | −3 to −43 dB | Interference load, HO hysteresis when load varies |
| SS-SINR | (Signal power) / (I + N) on SSB SCs | SSB subcarriers only | −23 to +40 dB | Link quality, throughput prediction, MCS steering |
§5.2 SS-RSRP: Definition, RE Grid, and Measurement Window
"SS reference signal received power (SS-RSRP) is defined as the linear average over the power contributions (in [W]) of the resource elements that carry secondary synchronisation signals. The reference point for the SS-RSRP shall be the antenna connector of the UE. If the UE can reliably detect that SS/PBCH block transmissions are made with a single SSB, SS-RSRP is defined as the linear average over the power contributions (in [W]) of the resource elements that carry secondary synchronisation signals. If the UE can reliably detect that SS/PBCH block transmissions are made with multiple SSBs, SS-RSRP is defined as the linear average over the power contributions (in [W]) of the resource elements that carry secondary synchronisation signals in the SS/PBCH block with the highest SS-RSRP."
Three critical facts flow from this definition:
- PSS is excluded. The SS-RSRP average is over secondary synchronisation signal (SSS) and PBCH DMRS resource elements. PSS contributes to timing/frequency acquisition but not to the RSRP figure.
- Linear averaging. The average is in Watts, then converted to dBm. This differs from an average in dB. For N REs: SS-RSRP [W] = (1/N)·Σ P_RE,i.
- Best-SSB rule for multi-beam. For FR2 where the gNB transmits multiple beams (up to 64 SSBs per burst), the UE reports the SSB with highest RSRP. This is why a FR2 cell can report strong RSRP even at cell edge when one beam is aligned.
§5.3 SS-RSRQ: Normalised Quality Under Load
"SS reference signal received quality (SS-RSRQ) is defined as the ratio N×SS-RSRP/(SS-RSSI), where N is the number of resource blocks of the SS-RSSI measurement bandwidth. The measurements in the numerator and denominator shall be made over the same set of resource blocks. SS-RSSI is measured over the OFDM symbols containing SSS."
Why RSRQ Can Be Negative (Even Below −30 dB)
RSRP is a power in watts — always positive in linear, always negative in dBm (since < 1 mW). RSRQ is a ratio of powers. In a fully loaded cell where RSSI ≫ N·RSRP, RSRQ dips deeply negative. The worst case is a cell with many interferers: RSSI is dominated by co-channel interference while RSRP reflects only SSS signal power. Result: RSRQ = −20 to −30 dB even with acceptable RSRP of −100 dBm.
Worked Example 5.1 — RSRQ Linear Computation
Given: SS-RSRP = −100 dBm per RE. SS-RSSI = −87 dBm (total over 20 PRBs = N=20). Compute SS-RSRQ.
Step 1: Convert RSRP to linear: −100 dBm → 10⁻¹⁰ mW = 1×10⁻¹³ W/RE
Step 2: SS-RSSI in linear: −87 dBm → 10⁻⁸·⁷ mW = 2.00×10⁻¹² mW = 2.00×10⁻¹⁵ W
Step 3: RSRQ = N·RSRP/RSSI = 20 · (1×10⁻¹³) / (2×10⁻¹²) = 20/20 = 1.0×10⁻³
Step 4: RSRQ [dB] = 10·log₁₀(1.0×10⁻³) = −30 dB? Wait — check units. RSRP is per RE but RSSI is over all REs of the symbol. Let's restate correctly:
RSRP (per RE, dBm) = −100 dBm. N=20 PRBs = 240 REs. N·RSRP in dBm = 10·log₁₀(240) + (−100) = 23.8 − 100 = −76.2 dBm. RSSI = −87 dBm. RSRQ = −76.2 − (−87) = +10.8... this is wrong — RSRQ must be ≤ 0 dB. The ratio N·RSRP/RSSI ≤ 1 because RSSI includes signal + interference. With RSSI = −87 and N·RSRP = −76.2, RSSI < N·RSRP means the interference-free case; a realistic scenario:
Realistic values: RSRP = −100 dBm, N=20, RSSI = −70 dBm. RSRQ = 10·log₁₀(240) + (−100) − (−70) = 23.8 − 100 + 70 = −6.2 dB. This is typical for a lightly loaded cell.
High-load scenario: Same RSRP, RSSI = −56 dBm (heavy interference). RSRQ = 23.8 − 100 + 56 = −20.2 dB. Typical threshold for A2-RSRQ event = −14 dB; UE triggers handover at −20 dB.
§5.4 SS-SINR: Signal-to-Interference-plus-Noise Ratio
"SS signal to noise and interference ratio (SS-SINR) is defined as the linear average over the power contributions (in [W]) of the resource elements that carry secondary synchronisation signals divided by the linear average of the noise and interference power contributions (in [W]) over the resource elements within the same frequency bandwidth that are not used for SS/PBCH block transmission."
SS-SINR is the most direct predictor of achievable throughput because it feeds directly into Shannon capacity. However it is also the most volatile metric — it fluctuates within a slot as fast fading changes the instantaneous S/I ratio on each subcarrier. The L3 filter (§5.7) smooths this before reporting.
| SS-SINR (dB) | Likely MCS (TS 38.214 T5.1.3.1-2) | Code Rate | Peak SE (bps/Hz) | Est. Throughput |
|---|---|---|---|---|
| < −5 | MCS 0 (QPSK, r=0.12) | 120/1024 | 0.23 | ~23 Mbps |
| −5 to 0 | MCS 4 (QPSK, r=0.30) | 308/1024 | 0.60 | ~60 Mbps |
| 0 to 5 | MCS 9 (QPSK, r=0.60) | 616/1024 | 1.18 | ~118 Mbps |
| 5 to 10 | MCS 15 (16QAM, r=0.50) | 514/1024 | 2.06 | ~206 Mbps |
| 10 to 20 | MCS 22 (64QAM, r=0.67) | 682/1024 | 4.06 | ~406 Mbps |
| > 20 | MCS 27 (256QAM, r=0.93) | 948/1024 | 7.41 | ~741 Mbps |
§5.5 RSRP Reporting Range and UE Measurement Accuracy
TS 38.133 Table 10.1.2.1-1 specifies UE measurement accuracy requirements. In practice, the optimizer must understand several constraints:
| Property | SS-RSRP | SS-RSRQ | SS-SINR |
|---|---|---|---|
| Reporting range | −44 to −140 dBm (0–97 index) | −3 to −43 dB (0–127 index) | −23 to +40 dB (0–127 index) |
| Reporting step size | 1 dB | 0.5 dB | 0.5 dB |
| UE accuracy (normal cond.) | ±6 dB (rel.), ±2 dB (abs.) (TS 38.133 §10.1.2) | ±3 dB (TS 38.133 §10.1.3) | ±4 dB (TS 38.133 §10.1.4) |
| Measurement period | Min 200 ms, max 800 ms (one SSB occasion) | Same as RSRP | Same as RSRP |
| Minimum number of samples | ≥ 1 SSB per measurement period | Same | Same |
| L3 filter applied before report | Yes (TS 38.331 §5.5.3.2) | Yes | Yes (if configured) |
Optimizer's Insight: ±6 dB RSRP Accuracy Means Thresholds Have Uncertainty
If you set A1-RSRP threshold = −80 dBm, the UE may trigger anywhere from −74 to −86 dBm (±6 dB relative accuracy). This is not a measurement bug — it is the specified tolerance in TS 38.133. For coverage KPI thresholds, design your RSRP target with at least 6–8 dB headroom above the specification limit (e.g., q-RxLevMin = −126 dBm → plan coverage to −118 dBm or better at cell edge).
§5.6 SINR Decomposition: Three Root Causes of Degradation
§5.7 Layer-3 Filtering: Measurement Delay vs. Mobility Speed
"The UE shall filter each measurement result, before using for evaluation of reporting criteria or for measurement reporting, using the following formula: Fn = (1 − a) · Fn−1 + a · Mn, where Mn is the latest measurement result from the physical layer, Fn is the updated filtered measurement result, a = 2−k/4 and k is the filterCoefficient."
| k | a = 2⁻ᵏ/⁴ | τ (intervals) | 95% settling (s) | Distance at 60 km/h | Distance at 120 km/h | Recommendation |
|---|---|---|---|---|---|---|
| 0 | 1.000 | 0 | 0 | 0 m | 0 m | No filtering (raw measurement) |
| 1 | 0.841 | 0.83 | 0.5 s | 8 m | 17 m | High-speed rail >300 km/h |
| 4 | 0.707 | 1.41 | 0.85 s | 14 m | 28 m | Vehicular (60–120 km/h) |
| 7 | 0.595 | 2.5 | 1.5 s | 25 m | 50 m | Suburban pedestrian |
| 11 | 0.445 | 5.0 | 3.0 s | 50 m | 100 m | Indoor static (default many networks) |
| 15 | 0.354 | 8.0 | 4.8 s | 80 m | 160 m | Low-mobility IoT only |
| 19 | 0.281 | 12.7 | 7.6 s | 127 m | 254 m | Not recommended for mobile UE |
§5.8 TS 28.552 Histogram Counters and Coverage Statistics
Network-level RSRP statistics are captured via histogram counters defined in TS 28.552 §5.1.1.28 (RSRP distribution). Each bin represents a 1-dBm RSRP bucket reported by the UE and accumulated at the gNB. The KPI engine computes coverage KPIs from these distributions.
| Counter Family | TS 28.552 § | Bin Range | Step | Derived KPI |
|---|---|---|---|---|
| L.Cov.RSRP.Bin_N (N=1..97) | §5.1.1.28 | −44 to −140 dBm | 1 dBm | RSRP_P10, RSRP_P50 (TS 28.554 §6.1.1) |
| L.Cov.RSRQ.Bin_N (N=1..127) | §5.1.1.29 | −3 to −43 dB (0.5 dB step) | 0.5 dB | RSRQ_P10, RSRQ_P50 |
| L.Cov.SINR.Bin_N (N=1..127) | §5.1.1.30 | −23 to +40 dB (0.5 dB step) | 0.5 dB | SINR_P10 |
| L.UE.RSRP.Bin_N | §5.1.1.31 | Same as RSRP | 1 dBm | UE-weighted RSRP CDF |
Worked Example 5.2 — P50 Extraction from Histogram Counters
Scenario: A cell has the following L.Cov.RSRP.Bin_N counts (selected bins shown):
Bin_65 (−78 dBm): 1,200. Bin_66 (−79 dBm): 1,450. Bin_67 (−80 dBm): 1,800. Bin_68 (−81 dBm): 2,100. Bin_69 (−82 dBm): 2,400. Total across all bins: 36,000 samples.
Step 1: Cumulative sum up to bin_66: 31,200 (87%). Up to bin_65: 29,750 (82.6%). So P50 falls at approximately −75 dBm (earlier bins sum to 50%×36,000 = 18,000 → Bin_62, −75 dBm).
Step 2: The P10 threshold (10th percentile = 3,600 samples) falls in the low-RSRP bins. If Σ bins_1..42 = 3,600, then P10 = −101 dBm (bin_42).
Step 3: KPI per TS 28.554: RSRP_Coverage_Rate = (samples with RSRP ≥ −110 dBm) / total × 100%. If 34,560/36,000 = 96% ≥ −110 dBm threshold → Coverage_Rate = 96%.
Key: Never average RSRP bins in dBm — aggregate in the count domain, then read out the percentile bin index.
§5.9 Coverage Threshold Parameters: q-RxLevMin, q-QualMin, A1/A2
| Parameter | TS 38.331 IE | Typical Value | Range | Function |
|---|---|---|---|---|
| q-RxLevMin | Q-RxLevMin | −126 dBm (−63 × 2) | −70 to −22 (×2 dBm) | Min RSRP for cell selection (S-criterion) |
| q-QualMin | Q-QualMin | −20 dB (−10 × 2) | −43 to −12 (×2 dB) | Min RSRQ for cell selection |
| threshServingLowP | ReselectionThreshold | −100 dBm (50 × 2) | 0 to 62 (×2 dBm) | Serving RSRP threshold for reselection |
| a1-Threshold (RSRP) | MeasTriggerQuantity | −80 dBm | −140 to −44 dBm | RSRP above which intra-freq stops |
| a2-Threshold (RSRP) | MeasTriggerQuantity | −90 dBm | −140 to −44 dBm | RSRP below which inter-freq/RAT starts |
| a2-Threshold (RSRQ) | MeasTriggerQuantity | −14 dB | −43 to −3 dB | RSRQ below which inter-freq/RAT starts |
§5.10 RSRP → Throughput Chain: From Measurement to Scheduler
§5.11 Worked Example: S-Criterion and Cell Selection Floor
Worked Example 5.3 — S-Criterion Computation
Given: UE measures RSRP = −115 dBm. SIB1 broadcasts q-RxLevMin = −63 (IE value) → Q_rxlevmin = −63 × 2 = −126 dBm. Q_rxlevminoffset = 0 (not present). PEMAX = 23 dBm, PUMAX = 23 dBm → P_compensation = MAX(0,0) = 0.
S_rxlev: = −115 − (−126 + 0) − 0 = −115 + 126 = +11 dB > 0 → cell SUITABLE
Now suppose: Optimiser sets q-RxLevMin = −56 (→ −112 dBm) to increase cell selectivity in a dense network. S_rxlev = −115 − (−112) = −3 dB < 0 → cell UNSUITABLE. UE rejects this cell and continues searching.
Lesson: Raising q-RxLevMin (making it less negative) shrinks the cell's "acceptable" service area. Use this deliberately for load balancing in dense networks but never raise it above the cell-edge RSRP budget or you will create a coverage hole.
Anti-Pattern: Setting q-RxLevMin Too High for VoNR Load Balancing
Several networks have set q-RxLevMin = −100 dBm to force outdoor UEs to prefer macro cells. This unintentionally fails the S-criterion for indoor UEs with RSRP = −105 to −115 dBm (penetration loss). These UEs cannot camp — they enter "No Service" rather than accepting the indoor cell. The correct approach is to use frequency-priority reselection (cellReselectionPriority), not q-RxLevMin manipulation.
| Measurement | TS 28.552 Counter | KPI Formula (TS 28.554) | Target |
|---|---|---|---|
| RSRP Coverage Rate | L.Cov.RSRP.Bin_N (N=1..97) | Σ(Bin_N | RSRP ≥ −110) / Σ(all Bins) × 100 | ≥ 95% |
| RSRP P10 (cell-edge) | L.Cov.RSRP.Bin_N CDF inverse | RSRP at 10th percentile of CDF | ≥ −107 dBm |
| RSRQ P10 | L.Cov.RSRQ.Bin_N CDF inverse | RSRQ at 10th percentile of CDF | ≥ −15 dB |
| SINR P10 | L.Cov.SINR.Bin_N CDF inverse | SINR at 10th percentile of CDF | ≥ 0 dB |
| Pilot Pollution Ratio | L.Cov.RSRP.Top3Gap | % samples with (RSRP_1 − RSRP_3) < 6 dB | ≤ 5% |
Chapter 5 Summary
- SS-RSRP (TS 38.215 §5.1.1): linear average over SSS and PBCH DMRS REs. Best-SSB rule applies for multi-beam FR2.
- SS-RSRQ (TS 38.215 §5.1.3): N·RSRP/RSSI. Encodes both signal strength and wideband interference load. Can be deeply negative (−20 to −30 dB) under heavy load even with acceptable RSRP.
- SS-SINR (TS 38.215 §5.1.4): S/(I+N) over SSB subcarriers. Direct predictor of MCS and throughput. Three root causes: weak signal, high interference, high noise floor.
- L3 filter (TS 38.331 §5.5.3.2): F_n = (1−a)F_{n−1} + a·M_n, a = 2^{−k/4}. Large k = slow response. k=11 introduces ~2 seconds delay — fatal for fast-moving UEs.
- TS 28.552 histogram counters: L.Cov.RSRP.Bin_N enable P10/P50/P90 statistics. Coverage KPI = % samples ≥ −110 dBm threshold per TS 28.554.
- Threshold parameters: q-RxLevMin governs S-criterion cell selection floor. A1/A2-RSRP govern measurement event triggering. Never raise q-RxLevMin above cell-edge RSRP budget.
- Causation chain: RSRP → SINR → CQI → MCS → TBS → PRB utilisation → throughput. Always diagnose left-to-right. RSRP alone cannot explain low throughput.
Chapter 6
SSB Beam Sweeping & Beam-Level Measurements
From SSB burst periodicity to beam failure recovery — TS 38.213 §4, TS 38.331 §5.5.5, TS 38.215 §5.1
Chapter Objectives
- State the exact SSB burst timing structure for FR1 and FR2 from TS 38.213 §4.1
- Compute the maximum number of SSBs per burst set for each frequency range and subcarrier spacing
- Explain how the UE performs beam-level RSRP measurement and reports the best SSB index
- Configure L1-RSRP measurement using CSI-RS for beam management (P1–P3 procedures)
- Describe beam failure detection, candidate beam selection, and BFR random access procedure
- Map beam-level measurements to TS 28.552 counters and beam SINR KPIs
- Identify the top three beam sweeping anti-patterns and their counter signatures
§6.1 Why Beamforming Demands a New Measurement Paradigm
In 4G LTE, a single CRS covered the entire cell bandwidth on every subframe. Every UE measured the same reference signal. In 5G NR — particularly FR2 (mmWave, 24.25–52.6 GHz) — the free-space path loss at 28 GHz is 20–30 dB higher than at 3.5 GHz. The only way to achieve cell-edge coverage is directional beamforming. The gNB must sweep multiple narrow beams to cover the angular space, and the UE must identify which beam provides the best link.
This creates a fundamental change in measurement architecture: instead of one omnidirectional pilot, the gNB transmits up to 64 SSBs per burst set (FR2), each in a different spatial direction. The UE measures each SSB separately and reports the best one. The network uses these beam-level measurements for beam management, handover, and beam failure recovery — all governed by TS 38.213 §4, TS 38.331 §5.5.5, and TS 38.215 §5.1.
§6.2 SSB Burst Structure: Periodicity, Count, and Timing
"For FR1: The SS/PBCH block time index in a half-frame is indicated by the 3 LSBs of the SFN and the slot index within the half-frame. The following number of SS/PBCH blocks per half-frame are defined: L_max = 4 for frequency range from 3 GHz to 6 GHz, L_max = 8 for frequency range up to 3 GHz and from 6 GHz to 52.6 GHz ... For FR2: L_max = 64."
| Frequency Range | Band Examples | SCS (μ) | L_max | SSB Periodicity (default) |
|---|---|---|---|---|
| FR1: < 3 GHz | n1, n3, n28 (700/900/1800 MHz) | 15 kHz (μ=0) | 4 | 20 ms |
| FR1: 3–6 GHz | n77, n78, n79 (3.3–4.9 GHz) | 30 kHz (μ=1) | 8 | 20 ms |
| FR2: 24.25–52.6 GHz | n257, n258, n260, n261 | 120 kHz (μ=3) | 64 | 20 ms |
| FR2: 24.25–52.6 GHz | n257, n258 (when μ=4) | 240 kHz (μ=4) | 64 | 20 ms |
§6.3 Beam-Level RSRP Measurement and SSB Index Reporting
"If the UE can reliably detect that SS/PBCH block transmissions are made with multiple SSBs, SS-RSRP is defined as the linear average over the power contributions (in [W]) of the resource elements that carry secondary synchronisation signals in the SS/PBCH block with the highest SS-RSRP. The UE shall measure and report, for each detected SS/PBCH block, the SS-RSRP according to the layer-3 filtering defined in TS 38.331."
The UE thus maintains a per-SSB RSRP table. The MeasResultNR IE carries both the strongest-beam RSRP (for cell-level measurement) and the SSB index (for beam management). The gNB uses the reported SSB index to steer subsequent PDSCH transmissions toward the best beam.
§6.4 Beam Management: P1, P2, P3 Procedures (TS 38.214 §5.2.1)
3GPP defines three beam management procedures distinguished by their spatial granularity and reference signal type:
| Procedure | Reference Signal | Granularity | Purpose | Trigger |
|---|---|---|---|---|
| P1 — Beam Sweeping | SSB (downlink) | Wide beam / sector | Initial beam acquisition, cell-level best beam | Cell selection, initial access |
| P2 — Beam Refinement (DL) | CSI-RS (downlink) | Narrow beam / sub-beam | Refine TX beam from P1 candidate set | After P1, or beam RSRP degrades |
| P3 — Beam Refinement (UL) | SRS (uplink) | RX beam at gNB | Optimise gNB receiver beam for UL | UL link degradation |
§6.5 Beam Failure Detection and Recovery (BFR)
"The UE shall declare beam failure if the following conditions are met: (1) The UE has failed to decode PDCCH in a PDCCH monitoring occasion; (2) The L1-RSRP of the reference signal(s) for beam failure detection has dropped below beamFailureDetectionTimer becomes zero, beamFailureRecoveryTimer has expired, or beamFailureMaxNumberOfBeamFailure events have been counted."
| Parameter | TS 38.331 IE | Typical Value | Effect |
|---|---|---|---|
| beamFailureDetectionTimer | BeamFailureDetectionTimer | 60 ms | Consecutive symbol-failures before BFI increment |
| maxBeamFailure | MaxBeamFailure | 3 | Number of BFIs before BFR RA triggered |
| beamFailureRecoveryTimer | BeamFailureRecoveryTimer | 200 ms | Time allowed for BFR RA procedure |
| rsrp-ThreshSSB (candidate) | RSRP-Range | −100 dBm (28) | Min RSRP for a beam to be BFR candidate |
| ra-ssb-OccasionMaskIndex | RACH config | Per beam | PRACH occasion mapped to each candidate SSB |
§6.6 SSB Periodicity Optimisation
Worked Example 6.1 — SSB Periodicity Impact on Discovery Delay
Question: A UE enters idle mode in a building (FR1, n78). How long does it take to receive at least 1 SSB with T_period = 20 ms vs. T_period = 80 ms?
T_period = 20 ms: Maximum wait = 20 ms (1 burst set period). Average wait ≈ 10 ms. Cell acquisition delay ≈ 50–100 ms (T_period + L3 filter settling). Suitable for all mobility scenarios.
T_period = 80 ms: Maximum wait = 80 ms. Average wait ≈ 40 ms. Cell reselection delay increases ~60 ms. Acceptable for static indoor UEs; reduces SSB power consumption by 4×.
High-speed scenario (120 km/h): UE crosses a cell boundary every ~3 seconds (1 km cell, 300 m overlap). With T_period = 80 ms, HO measurement delay is tolerable but leaves less margin. With T_period = 160 ms, risk of missing HO trigger window. Recommendation: never exceed T_period = 40 ms for vehicular layers.
§6.7 Beam-Level Counter Framework (TS 28.552)
| Counter | TS 28.552 § | Description | Derived KPI | Target |
|---|---|---|---|---|
| L.Beam.RSRP.Bin_N | §5.1.1.50 | Per-beam RSRP histogram (best SSB per UE) | Beam RSRP P10/P50 | P10 ≥ −100 dBm |
| L.BFR.Req | §5.1.1.51 | BFR requests (BFR RA triggers) | BFR Rate = BFR.Req / RRC.Conn.Active | ≤ 0.5% |
| L.BFR.Succ | §5.1.1.52 | Successful BFR restorations | BFR Success Rate = Succ/Req | ≥ 95% |
| L.BFR.Fail.NoCandidate | §5.1.1.53 | BFR failures due to no candidate beam | No-Candidate Rate | ≤ 1% |
| L.Beam.Switch.Inter | §5.1.1.55 | Inter-beam switches (beam handovers) | Beam Switch Rate/min | Stable < 5/min |
§6.8 SSB Index and Antenna Panel Troubleshooting
§6.9 Common Anti-Patterns in Beam Sweeping
Anti-Pattern 1: Reducing L_max to Reduce Overhead
Some network configurations set actualSsbNumBeams = 1 (single-beam mode) to reduce SSB overhead in dense urban FR1 deployments. This disables beam diversity entirely. When the UE moves to the cell edge, there is no secondary beam to fall back to. BFR.Req spikes. BFR.Fail.NoCandidate jumps to 5–10%. In reality, SSB overhead for L_max=8 at T_period=20 ms is only 0.55% of total air time (Eq 6.2) — not worth disabling beam management.
Anti-Pattern 2: Same smtc-Offset for All Cells on Same Frequency
If two co-channel cells transmit SSBs at identical subframe offsets (smtc-subframeOffset), a UE positioned between them measures both cells' SSBs simultaneously. This creates inter-SSB interference. The UE's L1-RSRP for both cells degrades. Result: premature A2 triggers and unnecessary inter-freq searches. Correct configuration: stagger smtc-subframeOffset by at least 2 subframes between adjacent co-channel cells.
Anti-Pattern 3: Too-Aggressive BFD Timer
Setting beamFailureDetectionTimer = 10 ms with maxBeamFailure = 1 means a single 10 ms period of low RSRP triggers BFR. This causes massive BFR.Req inflation in fast-moving UEs where RSRP fluctuates naturally. The BFR RA procedure itself consumes RACH resources and introduces latency. Correct values: beamFailureDetectionTimer ≥ 60 ms, maxBeamFailure ≥ 3 for vehicular UEs. Only tighten for URLLC slices where beam failure = service interruption.
§6.10 Worked Example: BFR Rate Analysis
Worked Example 6.2 — BFR Rate Diagnosis
Observation: A cell reports L.BFR.Req = 450 over a 15-minute PM period. RRC Connected active UEs ≈ 3,000 (averaged). L.BFR.Succ = 380. L.BFR.Fail.NoCandidate = 70.
BFR Rate: 450 / 3,000 × 100 = 15% — drastically above target (≤ 0.5%). This is a beam configuration alarm.
BFR Success Rate: 380 / 450 × 100 = 84.4% — below target (≥ 95%). 70 UEs per 15 min are failing BFR entirely → likely triggering RLF.
Diagnostic questions:
- Check L.Beam.RSRP.Bin_N: is P10 < −105 dBm? If yes → coverage gap driving BFD events.
- Check beam load distribution (Fig 6.5 pattern): is one SSB index carrying >50% of UEs? If yes → beam alignment issue.
- Check BFR.Fail.NoCandidate distribution by beam: if all failures are on SSB 0 and SSB 7 (edge beams) → physical tilt mismatch at cell edge.
- Check if beamFailureDetectionTimer was recently changed: too-aggressive timer can inflate BFR.Req without genuine beam degradation.
Resolution steps: (1) Verify antenna physical tilt and electrical tilt match beam weight configuration. (2) Check rsrp-ThreshSSB for BFR candidates — if set too high (e.g., −80 dBm), no candidates available at cell edge. (3) Review maxBeamFailure setting.
Chapter 6 Summary
- SSB burst set (TS 38.213 §4.1): L_max = 4/8/64 beams per burst depending on frequency range. Default periodicity = 20 ms. SSB overhead ≈ 0.55% for L_max=8.
- Beam-level RSRP (TS 38.215 §5.1.1): linear average over SSS REs per SSB. Best-SSB rule applies. UE reports SSB index + RSRP via MeasResultNR.
- P1/P2/P3 procedures (TS 38.214 §5.2.1): P1 uses SSB (wide beam), P2 uses CSI-RS (sub-beam refinement), P3 uses SRS (gNB receive beam). Each refines spatial resolution.
- BFR procedure (TS 38.331 §5.17): maxBeamFailure × beamFailureDetectionTimer determines BFR trigger delay. Candidate beam must have RSRP ≥ rsrp-ThreshSSB. BFR RA uses dedicated PRACH occasions.
- Key counters: L.BFR.Req (triggers), L.BFR.Succ (restores), L.BFR.Fail.NoCandidate (coverage gap indicator). BFR_SR target ≥ 95%.
- Anti-patterns: never reduce L_max to save overhead (cost too high); stagger smtc-offset between co-channel cells; use beamFailureDetectionTimer ≥ 60 ms to avoid false BFR triggers.
Chapter 7
CSI Framework — CSI-RS, CQI, PMI, RI
Channel State Information from reference signal to closed-loop precoder — TS 38.214 §5.2, TS 38.331 §5.5.5.2
Chapter Objectives
- Describe the CSI-RS resource configuration parameters and RE mapping from TS 38.211 §7.4.1.5
- Explain the difference between Type I Single-Panel and Type II CSI feedback codebooks
- Derive the CQI table index from the target BLER operating point (TS 38.214 Table 5.2.2.1-2)
- Compute effective throughput from RI × MCS table values and PRB allocation
- Identify when OLLA (Outer-Loop Link Adaptation) should correct the CQI bias
- Map CSI counters (L.DL.CQI.Bin_N, L.DL.RI.Bin_N) to diagnostic KPIs
- Diagnose the four most common CSI-RS misconfiguration patterns using counter evidence
§7.1 Why CSI Matters More Than RSRP for Throughput
RSRP tells you whether a UE can hear the cell. CSI tells the gNB scheduler how to transmit to that UE: which precoder matrix (PMI) to use for beamforming, how many spatial layers (RI) the channel can support, and what modulation and code rate (CQI) will meet the BLER target. A UE with RSRP = −80 dBm can have wildly different throughput depending on whether its CSI feedback is accurate, fresh, and configured optimally.
The CSI framework has three components that the optimizer must understand independently:
- CSI-RS: the downlink reference signal the UE uses to estimate the channel matrix H.
- CSI Report: the UE's feedback (CQI + PMI + RI) sent uplink in UCI on PUSCH or PUCCH.
- Link Adaptation: the gNB scheduler uses reported CSI to select MCS and precoder, then adjusts via HARQ OLLA.
§7.2 CSI-RS Resource Configuration (TS 38.211 §7.4.1.5)
"The UE shall assume that NZP CSI-RS resource elements are not used by PDSCH. The mapping of CSI-RS to resource elements (k, l) within a PRB according to the row of Table 7.4.1.5.3-1, where k is the subcarrier index within the PRB and l is the OFDM symbol index within the slot."
| Parameter | IE Name | Values | Effect |
|---|---|---|---|
| Number of ports | nrofPorts | 1, 2, 4, 8, 12, 16, 24, 32 | Determines codebook type and precoder resolution |
| Density | density | 0.5, 1, 3 (RE per PRB per symbol) | Measurement accuracy vs. overhead trade-off |
| Periodicity | resourceType (periodic/aperiodic/semi-persistent) | 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 160, 320, 640 slots | How often UE measures channel state |
| Resource mapping (row) | resourceMapping | Table 7.4.1.5.3-1 row 1–18 | Selects symbol+subcarrier pattern for RE placement |
| CDM type | cdmType | noCDM, fd-CDM2, cdm4-FD2-TD2, cdm8-FD2-TD4 | Code-division multiplexing for multi-port CSI-RS |
§7.3 CQI: Channel Quality Indicator
"If the UE reports a wideband CQI value, the wideband CQI is derived from the wideband CQI table 5.2.2.1-3 or table 5.2.2.1-4 for 256QAM. The CQI index corresponds to the highest MCS in the MCS table such that the transport block error probability does not exceed 0.1."
| CQI Index | Modulation | Code Rate (×1024) | Spectral Efficiency (bps/Hz) | SINR (approx) |
|---|---|---|---|---|
| 0 | — | — | out of range | < −5 dB |
| 1 | QPSK | 78 | 0.152 | ≈ −5 dB |
| 4 | QPSK | 308 | 0.602 | ≈ 0 dB |
| 7 | 16QAM | 378 | 1.477 | ≈ 8 dB |
| 10 | 64QAM | 490 | 2.863 | ≈ 15 dB |
| 13 | 64QAM | 754 | 4.418 | ≈ 22 dB |
| 15 | 64QAM | 948 | 5.555 | ≈ 26 dB |
§7.4 RI: Rank Indicator and Spatial Multiplexing
The Rank Indicator (RI) tells the gNB how many spatially independent data streams (layers) the channel can support. Maximum RI = min(N_T, N_R) where N_T = gNB transmit antenna ports and N_R = UE receive antenna ports. However the achievable RI depends heavily on the channel matrix H's condition number:
§7.5 PMI: Precoder Matrix Indicator and Codebook Types
"For single-panel Type I CSI, the precoder matrix W is defined as W = W₁W₂, where W₁ is a 2D DFT-based beam selection matrix and W₂ is a co-phasing matrix. W₁ selects a beam from a codebook of size (O₁N₁)×(O₂N₂) beams with oversampling factors O₁ and O₂."
| Type | Name | Codebook Structure | PMI Bits | Overhead | Best For |
|---|---|---|---|---|---|
| Type I-SP | Single-Panel, Type I | W=W₁W₂: DFT beam + co-phasing | 2×(ceil(log₂(N₁O₁)) + ceil(log₂(N₂O₂))) | Low | FDD macro, moderate MIMO ≤8 layers |
| Type I-MP | Multi-Panel, Type I | Independent per-panel codebooks | Higher than SP | Medium | Multi-panel arrays, FR2 |
| Type II | Type II (Rel-15) | Linear combination of beams with amplitude+phase | Very high | High | MU-MIMO, high spatial resolution |
| Type II enh. | Enhanced Type II (Rel-16) | Frequency-domain compression, partial band | Compressed | Medium-High | MU-MIMO with frequency selective precoding |
Key Concept: W₁ vs. W₂ in Type I Codebook
W₁ (wideband): selects which DFT beam (angular direction) to use. Changes slowly — typically once per 10–20 ms. Reported as i₁ PMI index. Represents the dominant spatial direction of the channel.
W₂ (subband, optional): selects co-phasing between polarisations (cross-pol antenna). Can vary per subband. Reported as i₂. Exploits polarisation diversity for additional gain.
Optimizer implication: If RI=1 dominates but throughput is below target, check W₂ co-phasing distribution. If mostly index 0 (same phase), cross-polarisation gain is not being realised — may indicate antenna tilt or orientation mismatch.
§7.6 CSI Reporting Modes and Periodicity
| Report Type | Trigger | Periodicity | Contents | Use Case |
|---|---|---|---|---|
| Periodic | Slot-based timer | 4–160 slots (configurable) | CQI + RI + PMI (configured) | Active UE, continuous scheduling |
| Semi-Persistent (on PUCCH) | MAC CE activation | As configured in CSI-ReportConfig | CQI + RI + PMI | VoNR semi-persistent scheduling |
| Aperiodic (triggered) | DCI format 0_1 bit | One-shot per trigger | Full wideband + subband CQI | Burst traffic, scheduler decision point |
| L1-RSRP reporting | Periodic | Configurable | Per-beam RSRP (beam management) | Beam tracking during connected mode |
§7.7 OLLA: Outer-Loop Link Adaptation
§7.8 CSI Counter Framework (TS 28.552)
| Counter | TS 28.552 § | Description | Derived KPI |
|---|---|---|---|
| L.DL.CQI.Bin_N (N=0..15) | §5.1.1.21 | CQI histogram per cell | CQI P10, P50, CQI Mean |
| L.DL.RI.Bin_N (N=1..8) | §5.1.1.22 | RI histogram per cell | RI Mean = Σ(N×Bin_N)/Σ(Bin_N) |
| L.DL.MCS.Bin_N (N=0..27) | §5.1.1.23 | MCS distribution histogram | MCS Mean, % MCS≥20 |
| L.DL.BLER.Init | §5.1.1.24 | DL first-transmission BLER counter | Init BLER = NACK/(ACK+NACK) |
| L.DL.CSI.Period.Rx | §5.1.1.25 | Periodic CSI reports received | CSI report gap = expected − actual |
| L.DL.PMI.Bin_N | §5.1.1.26 | PMI index histogram | Beam weight diversity index |
§7.9 Worked Example: CSI Configuration Diagnostics
Worked Example 7.1 — Low Throughput with Adequate RSRP
Observation: Cell RSRP P50 = −82 dBm (excellent). Cell DL throughput per active UE = 42 Mbps against a target of 150 Mbps. 100 MHz, 4×4 MIMO, FR1 n78.
Counter analysis:
L.DL.CQI.Bin_N: Mean CQI = 7 (16QAM, r=0.46). Expected for RSRP = −82 dBm: CQI ≥ 11 (64QAM). → CQI is suppressed.
L.DL.RI.Bin_N: 85% RI=1, 12% RI=2, 3% RI=3, 0% RI=4. → MIMO layers not being utilised. Expected for urban NLoS at −82 dBm: RI≥2 for ~75% of UEs.
L.DL.BLER.Init = 18% (target 10%). → OLLA offset is large positive (compensating for unreliable CSI).
Root cause: CSI-RS periodicity set to 80 slots (~6.5 ms at μ=1). Channel coherence time at 3.5 GHz for pedestrian velocity = ~10 ms. CSI reports are stale relative to actual channel. PMI is outdated → gNB precoder misaligned → SINR loss → lower CQI, fewer viable layers.
Fix: Reduce CSI-RS periodicity to 20 slots (~1.7 ms). Re-measure. Expected outcome: CQI Mean → 11–12, RI Mean → 2.5, BLER → 9%, throughput → 120–140 Mbps.
§7.10 CSI Anti-Patterns and Tuning Guidelines
Anti-Pattern: Setting CSI-RS Periodicity Equal to SSB Periodicity
Both CSI-RS and SSB at 20 ms means the scheduler updates precoder once per 20 ms. At pedestrian speed (1.4 m/s) and 3.5 GHz, channel coherence time ≈ 60 ms — acceptable. But at 30 km/h (8.3 m/s), coherence time ≈ 10 ms. CSI report at 20 ms is 2× stale. The gNB precoder is misaligned → SINR loss → CQI drops 3–4 indices → throughput loss ~30%. Fix: set CSI-RS period to 5–10 slots for vehicular layers.
Chapter 7 Summary
- CSI-RS (TS 38.211 §7.4.1.5): configurable RE mapping, 1–32 ports, density 0.5/1/3. Higher port count = better precoding resolution, higher overhead. 8-port fd-CDM2 occupies 4.8% slot overhead vs. 0.6% for 1-port.
- CQI (TS 38.214 §5.2.2.1): 4-bit index mapping to max MCS at 10% BLER target. CQI=1 → QPSK r=0.12. CQI=15 → 64QAM r=0.93. OLLA corrects CQI bias using ACK/NACK asymmetric steps.
- RI: determined by channel matrix singular value ratio. Urban NLoS: RI≥2 for 85% of UEs. Indoor LoS: RI=1 for 70%. Low RI at good RSRP = stale CSI or antenna issue.
- PMI Type I: W=W₁W₂. W₁ = wideband DFT beam direction. W₂ = subband co-phasing. Type II provides linear combination codebook for MU-MIMO but at significantly higher feedback overhead.
- OLLA (Eq 7.3): asymmetric step − after ACK, +step×(1−BLER_target)/BLER_target after NACK. Converges to BLER target in ~400–600 TTIs from cold start.
- CSI counters: L.DL.CQI.Bin_N (CQI distribution), L.DL.RI.Bin_N (RI distribution), L.DL.BLER.Init (inner-loop performance). Joint CQI-RI heat map is the primary CSI health diagnostic.
Chapter 8
Coverage Optimization Methodology
From drive test to parameter change — a systematic 3GPP-grounded coverage RCA workflow
Chapter Objectives
- Apply the 5-step coverage optimisation workflow from complaint triage to parameter change
- Compute downlink link budget from transmit power to cell-edge RSRP using path loss models
- Distinguish coverage holes (low RSRP, low RSRQ) from pilot pollution (adequate RSRP, low SINR, RSRQ top-3 gap <6 dB)
- Select correct antenna parameter adjustments (downtilt, power, pattern) for each coverage failure type
- Apply the pilot pollution KPI (top-3 RSRP spread) and its counter-based detection via TS 28.552
- Design measurement-based coverage audit using RSRP histogram counters and TS 28.554 KPI formulas
- Identify and correct the four most common coverage parameter misconfiguration patterns
§8.1 The Coverage Optimization Problem Space
Coverage optimisation addresses a deceptively simple question: can the UE communicate with the right cell at every location in the network footprint? In practice, this decomposes into four distinct failure modes, each requiring different diagnostic evidence and corrective actions:
| Failure Type | RSRP | RSRQ | SINR | Top-3 Gap | Root Cause |
|---|---|---|---|---|---|
| Coverage Hole | < −110 dBm | < −15 dB | < 0 dB | > 6 dB (1 server) | Insufficient TX power / path loss / obstruction |
| Pilot Pollution | −90 to −70 dBm | < −15 dB | < 5 dB | < 3 dB (>3 servers) | Too many cells at similar RSRP (no dominant server) |
| Interference | > −90 dBm | < −15 dB | < 5 dB | > 6 dB | Co-channel interference from distant cell (overshoot) |
| Overshoot | > −80 dBm | Good | Good | Large | Antenna tilt too high, serving cells far from site |
§8.2 Downlink Link Budget: From TX Power to Cell-Edge RSRP
Worked Example 8.1 — Cell-Edge Link Budget (n78, 3.5 GHz, Outdoor)
Parameters: P_TX = 43 dBm total (8 TX ports, Pfwd/port = 43−9 = 34 dBm). G_TX = 19 dBi (64T panel boresight). Cable loss = 0 dB (integrated RU). BPL = 0 dB (outdoor). G_RX = 0 dBi. Target RSRP = −107 dBm (cell edge budget).
Maximum allowed path loss: PL_max = 34 + 19 − 0 − 0 + 0 − (−107) = 160 dB
3GPP TR 38.901 UMa path loss (LoS): PL = 28 + 22·log₁₀(d) + 20·log₁₀(f_c) where d in metres, f_c in GHz.
PL = 28 + 22·log₁₀(d) + 20·log₁₀(3.5) = 28 + 22·log₁₀(d) + 10.9
Solve for d: 160 = 38.9 + 22·log₁₀(d) → log₁₀(d) = (160−38.9)/22 = 5.5 → d = 10^5.5 = 316,000 m? — too high. Check: for NLoS (more realistic): PL = 13.54 + 39.08·log₁₀(d) + 20·log₁₀(f_c). 160 = 13.54 + 39.08·log₁₀(d) + 10.9 → log₁₀(d) = (160−24.44)/39.08 = 3.47 → d = 2,950 m. Typical macro cell radius at 3.5 GHz = 300–800 m urban NLoS.
Lesson: The 2.95 km NLoS budget is the LoS upper bound. In dense urban NLoS (additional shadowing σ = 7.8 dB, margin = 3σ/2 = 12 dB), effective cell edge drops to ~800 m. Link budget must include a shadow fade margin.
§8.3 The 5-Step Coverage Optimisation Workflow
§8.4 Pilot Pollution: Definition, Detection, and Correction
"The NR cell coverage level — interference KPI is defined as: 1 − (number of samples where serving cell RSRP is at least 6 dB above the second-strongest cell RSRP) / (total samples). This metric captures pilot pollution: when multiple cells transmit at similar power levels to a UE, none provides a sufficiently dominant pilot to enable high SINR."
§8.5 Antenna Parameter Optimisation: Tilt, Power, Pattern
| Failure | Electrical Tilt Change | TX Power Change | Azimuth Change | Expected RSRP Effect |
|---|---|---|---|---|
| Coverage hole (insufficient reach) | Decrease (uptilt) by 1–2° | Increase by 1–3 dB | Rotate toward hole | P10 improves 3–5 dBm per 1° uptilt at cell edge |
| Pilot pollution (overshoot) | Increase (downtilt) by 2–4° | No change or slight decrease | None | Reduces coverage footprint, increases top-3 gap by 3–6 dB |
| Inter-cell interference (distant interferer) | Downtilt interfering cell | Reduce interfering cell power | Azimuth away from victim | SINR P10 improves 3–8 dB |
| Overshoot into adjacent cell | Downtilt by 3–5° | Reduce by 2–3 dB | Check sector overlap | Reduces HO distance, improves mobility |
§8.6 Coverage KPIs from TS 28.554
| KPI Name | TS 28.554 § | Formula | Target |
|---|---|---|---|
| NR DL Coverage RSRP | §6.1.1.1 | % UE samples with RSRP ≥ −107 dBm = Σ(Bin_N | N≥threshold) / Σ(all Bins) | ≥ 95% |
| NR DL Coverage RSRQ | §6.1.1.2 | % samples with RSRQ ≥ −15 dB | ≥ 90% |
| NR DL Coverage SINR | §6.1.1.3 | % samples with SINR ≥ 0 dB | ≥ 90% |
| Pilot Pollution Ratio | §6.1.2 | 1 − (dominant server samples) / total | ≤ 5% |
| RSRP P10 (cell-edge) | §6.1.3 | 10th percentile of L.Cov.RSRP CDF | ≥ −107 dBm |
§8.7 Worked Example: Full Coverage Investigation
Worked Example 8.2 — Cell XYZ Coverage Degradation RCA
Week-over-week KPI change (Monday PM report): Cell XYZ, n78, 100 MHz. RSRP Coverage Rate: 96.2% → 83.4% (−12.8pp). RSRQ Coverage Rate: 92% → 71% (−21pp). Pilot Pollution Ratio: 4% → 22% (+18pp).
Step 1 — Identify: Two KPIs failed simultaneously. RSRP rate drop of −12.8pp exceeds alert threshold (±3pp). PPR spike of +18pp is most unusual — suggest interference/overshoot rather than pure coverage hole (which would not affect PPR).
Step 2 — Classify: PPR spike + RSRQ degradation without matching RSRP P50 drop (P50 unchanged at −88 dBm) → Pilot Pollution. Top-3 gap counter: L.Cov.RSRP.Top3Gap dropped from 9.2 dB to 2.4 dB average — confirms >3 servers at similar RSRP.
Step 3 — Root Cause: Check OMC: new cell commissioned adjacent to XYZ on Tuesday (2 days before degradation appeared). New cell n78, same PCI mod-3 group, pointing toward XYZ coverage area. Azimuth 185°, tilt 2° (too shallow for urban). Physical distance = 650 m → should be tilted to ~6° for h_BS=35 m.
Step 4 — Prescribe: New cell: increase electrical tilt from 2° to 6°. Also check PCI assignment: new cell PCI = 143 → mod-3 = 2. XYZ PCI = 89 → mod-3 = 2. SAME mod-3 group → CRS (4G) and DMRS confusion if EN-DC involved. Change new cell PCI to 144 (mod-3 = 0).
Step 5 — Verify (48 hours post-change): RSRP Coverage Rate: 83.4% → 95.8%. PPR: 22% → 5.1%. Top-3 gap: 2.4 → 8.1 dB. RSRQ Coverage Rate: 71% → 90.5%. Closed.
§8.8 PCI Planning and Mod-3 Conflict Prevention
PCI Mod-3 Rule for NR
In NR, the PSS sequence is derived from PCI mod 3 (values 0, 1, 2) and the SSS from floor(PCI/3) (0–335). Co-channel neighbor cells with the same PCI mod 3 have identical PSS sequences — this creates PSS interference during UE cell detection. For optimal initial access performance: adjacent co-channel cells must have different PCI mod 3 values (0, 1, 2 rotation). For 3-sector sites, use PCI = {3k, 3k+1, 3k+2} per site (k = site index).
§8.9 Indoor Coverage: Building Penetration Loss and Small Cell Strategy
| Building Type | BPL at 700 MHz | BPL at 3.5 GHz | BPL at 28 GHz |
|---|---|---|---|
| Traditional (wood/brick) | 12–15 dB | 18–23 dB | 35–40 dB |
| Modern (glass facade) | 15–20 dB | 25–30 dB | 45–55 dB |
| Energy-efficient (low-E glass) | 20–30 dB | 35–45 dB | 55–70 dB |
| Basement (deep indoor) | 30–50 dB | 50–70 dB | N/A (unusable) |
Indoor Coverage Strategy: Frequency vs. Penetration Trade-off
At 3.5 GHz (n78), BPL for modern glass buildings = 25–30 dB. Combined with path loss to the building facade, RSRP at the indoor edge drops below −120 dBm — insufficient for reliable 5G service. Three strategies in order of cost:
- 700 MHz carrier (n28): BPL ≈ 15–18 dB. Add 10–12 dB indoor penetration. Requires NR 700 MHz deployment. Best for large buildings at cell range > 200 m.
- Outdoor power boost: Increase TX power by 3 dB. Adds 3 dB indoor but regulatory limit (EIRP) may constrain. Also increases pilot pollution risk outdoors.
- Indoor small cell: Distributed Antenna System (DAS) or O-RU deployed inside the building. Eliminates BPL problem. Cost O(€100K per building). Required for basements and Energy-efficient glass buildings at 3.5 GHz.
§8.10 Coverage Optimisation Anti-Patterns
Chapter 8 Summary
- Four failure types: coverage hole (low RSRP, high top-3 gap), pilot pollution (adequate RSRP, low SINR, low top-3 gap), interference (adequate RSRP, low SINR, distant interferer), overshoot. Each requires a different fix.
- Link budget (Eq 8.1): RSRP = P_TX + G_TX − PL(d) − CL − BPL + G_RX. Always include shadow fade margin (3σ/2 dB). Cell edge budget for n78 urban NLoS = −107 dBm at 500 m with 14 dB margin.
- 5-step workflow: Identify (P10 threshold) → Classify (RSRQ+SINR+top-3 gap) → Root Cause (antenna/parameter audit) → Prescribe (one change) → Verify (48–72 hr post-change window).
- Pilot pollution KPI (Eq 8.2): PPR = 1 − (dominant server samples) / total. Target ≤ 5%. Fix: downtilt overshooting cells. Never boost power to fix PPR.
- TS 28.554 KPIs: RSRP coverage rate ≥ 95% (≥ −107 dBm samples), RSRQ ≥ 90% (≥ −15 dB), SINR ≥ 90% (≥ 0 dB), PPR ≤ 5%, RSRP P10 ≥ −107 dBm.
- Tilt impact (Eq 8.4): 1° uptilt ≈ +2 dBm at cell edge. Always verify with post-change counters. Drive tests show roads only — PM counters are authoritative.
RACH Procedure: 4-Step & 2-Step
Preamble transmission, RAR window, contention resolution, and Release-16 two-step RA — from first-principles to TS 28.552 counters
3GPP TS 38.321 §5.1 · TS 38.211 §6.3.3 · TS 38.213 §8Chapter Learning Objectives
After completing this chapter, you will be able to:
- Derive why timing alignment requires a contention-based channel before any UL transmission is possible
- Trace all four messages of 4-step RACH (Msg1–Msg4) to their exact TS 38.321 §5.1 state machine steps
- Calculate preamble transmission power using the TS 38.213 §8.1 formula, including path loss estimation and power ramping
- Explain the 2-step RACH (MsgA/MsgB) procedure introduced in 3GPP Release 16 and identify when the network falls back to 4-step
- Map every TS 28.552 L.RA.* counter to the exact RACH state machine transition it monitors
- Compute RA Success Rate, RA Setup Time, and contention-resolution failure rate from raw counters
- Diagnose the root cause of a degraded RACH KPI from the counter signature pattern
- Configure preambleReceivedTargetPower, powerRampingStep, ra-ResponseWindow, and ra-ContentionResolutionTimer for a target RACH success rate ≥99%
§9.1 The Timing Alignment Problem
Every UL transmission in 5G NR must arrive at the gNB antenna within the cyclic prefix window. A UE 1 km from the gNB experiences a one-way propagation delay of approximately 3.33 µs. For a 30 kHz SCS slot (33.3 µs), this delay represents 10% of the CP duration — a non-trivial misalignment that causes inter-symbol interference at the gNB DFT output.
The gNB cannot pre-correct the UE's timing because it does not yet know the UE's propagation delay. Equally, the UE cannot transmit a scheduled PUSCH because it has no uplink grant — it has not yet identified itself to the network. This is the bootstrap deadlock of cellular access: you cannot transmit without timing, but you cannot obtain timing without transmitting.
The Random Access Channel (RACH) breaks this deadlock by three design choices:
- Guard period: The PRACH preamble sequence is designed with a long cyclic prefix (up to 2.5 ms for Format 0) that absorbs the round-trip propagation delay even for UEs at cell edge, making collision in time acceptable without prior timing alignment.
- Tone separation: The preamble sequence occupies a dedicated frequency resource (PRACH occasion) and does not interfere with PUSCH/PUCCH.
- TA command in RAR: The gNB measures the exact arrival time of the preamble and returns a Timing Advance (TA) command in Msg2, allowing the UE to advance its UL transmission by the measured delay before sending Msg3.
§9.2 4-Step RACH: The Complete State Machine
"The MAC entity shall initiate the Random Access procedure in the following cases: when requested by RRC upon initiation of RRC connection establishment procedure, RRC connection re-establishment procedure, RRC connection resume procedure, handover, or when a PDCCH order is received, or when a Scheduling Request (SR) has failed, or when a beam failure recovery is initiated."
The 4-step RACH procedure consists of exactly four message exchanges defined by TS 38.321 §5.1:
| Message | Direction | Channel | Key Content | Spec Clause |
|---|---|---|---|---|
| Msg1 (Preamble) | UE → gNB | PRACH | Zadoff-Chu preamble sequence (index 0–63) | TS 38.321 §5.1.2 |
| Msg2 (RAR) | gNB → UE | PDSCH (RA-RNTI) | RAPID, TA command (11 bits), UL grant (27 bits), TC-RNTI | TS 38.321 §5.1.3 |
| Msg3 (RRC Request) | UE → gNB | PUSCH (TC-RNTI) | RRC Setup Request + UE identity (C-RNTI or random 40-bit) | TS 38.321 §5.1.4 |
| Msg4 (Resolution) | gNB → UE | PDSCH (C-RNTI or TC-RNTI) | Contention resolution: UE-ID echo + RRC Setup / RRC Resume | TS 38.321 §5.1.5 |
§9.3 Preamble Sequences: Zadoff-Chu, Format, and Groups A/B
The RACH preamble is a Zadoff-Chu (ZC) sequence of length LRA. For short PRACH formats, LRA = 139; for long formats 0–3, LRA = 839. The ZC root sequence u and cyclic shift NCS uniquely determine each of the 64 available preambles per cell (TS 38.211 §6.3.3.1):
where Cv = v·NCS is the cyclic shift index, and xu is the root ZC sequence of root index u. The NCS parameter determines how many preambles fit per root: if NCS = 0 (unrestricted set), cyclic shift allocation is cell-specific and derived from rootSequenceIndex.
The 64 preambles are split into Group A and Group B (TS 38.321 §5.1.2). The split is controlled by msg1-SubcarrierSpacing, ra-Msg3SizeGroupA, and messageSizeGroupA:
| Parameter | Group A | Group B |
|---|---|---|
| Preamble count | NA (= totalNumberOfRA-Preambles − NB) | NB = cbPreamblesPerSSB |
| Intended Msg3 size | Small (< messageSizeGroupA) | Large (≥ messageSizeGroupA) |
| Path loss condition | High PL or rsrp < rsrp-ThresholdSSB | Low PL and rsrp ≥ rsrp-ThresholdSSB |
| UL grant in Msg2 | Smaller grant | Larger grant (supports bigger Msg3) |
| Typical usage | Cell-edge UEs, SR failure, BFR | Cell-center UEs requesting large Msg3 |
Key Concept: Preamble Group Selection Algorithm (TS 38.321 §5.1.2)
The UE selects Group B if ALL of the following hold:
- Group B is configured (ra-Msg3SizeGroupA is present)
- Msg3 size ≥ messageSizeGroupA
- Pathloss < PCMAX,f,c − preambleReceivedTargetPower − deltaPreamblemsg3GroupB − messagePowerOffsetGroupB
Otherwise the UE selects Group A. This is an interference control mechanism: at cell edge, smaller preambles with lower power keep the UE in Group A where the gNB can more easily detect it.
§9.4 Msg2 — Random Access Response
"After the transmission of the PRACH preamble, the MAC entity shall monitor the PDCCH for a Random Access Response addressed to the RA-RNTI associated with the PRACH transmission, starting from the first symbol of the first PDCCH monitoring occasion that is at least 2 ms after the end of the corresponding PRACH transmission, up to and including the last symbol of the period defined by ra-ResponseWindow."
The RA-RNTI is computed from the PRACH occasion coordinates (TS 38.321 §5.1.3):
where s_id is the first OFDM symbol of the PRACH (0–13), t_id is the slot number within the system frame (0–79), f_id is the frequency domain occasion index (0–7), and ul_carrier_id indicates NUL (0) or SUL (1). A UE monitors the PDCCH for an RAR scheduled within the ra-ResponseWindow parameter window.
| MAC subPDU type | E/T bits | Key fields | Purpose |
|---|---|---|---|
| Backoff Indicator (BI) | E=1, T=0 | BI value (4 bits, 0–12 → 0–960 ms) | Instructs UEs to back off before retrying, applied when congestion detected |
| RAR (matched) | E=0/1, T=1 | RAPID (6 bits, 0–63), TA command (11 bits), UL grant (27 bits), TC-RNTI (16 bits) | Timing advance + UL resource grant for Msg3 transmission |
| TA command | — | 11 bits: 0–3846 → N_TA ∈ [0, 61,536] × T_c | Adjusts UE uplink timing; 1 TA unit = 16·κ·T_c ≈ 0.521 µs |
Worked Example 9.1 — RA-RNTI Calculation
Scenario: PRACH preamble transmitted in slot 14 of a 10-ms frame. The preamble starts at OFDM symbol 0 of the slot, frequency occasion f_id=2, NUL carrier (ul_carrier_id=0).
Given: s_id=0, t_id=14, f_id=2, ul_carrier_id=0
RA-RNTI: = 1 + 0 + 14×14 + 14×80×2 + 0 = 1 + 0 + 196 + 2,240 + 0 = 2,437
The gNB schedules the RAR on a PDCCH addressed to RNTI 0x0985 (2437 decimal). All UEs that transmitted a preamble in the same PRACH occasion monitor PDCCH for this RNTI during the ra-ResponseWindow. A UE confirms the RAR is for it by matching the 6-bit RAPID field to its selected preamble index.
§9.5 Msg4 — Contention Resolution
Multiple UEs may select the same preamble index in the same PRACH occasion (a preamble collision). The gNB cannot distinguish them from Msg1 alone. Both UEs receive the same RAR (same RAPID match) and both transmit Msg3. The gNB can only schedule one of them. The contention is resolved in Msg4:
- Contention NOT detected: If the UE-contention-ID in Msg4 matches the UE-ID the UE included in Msg3, the UE considers contention resolved. It stores the C-RNTI and transitions to RRC_CONNECTED.
- Contention detected: If the UE-contention-ID in Msg4 does NOT match, the UE considers itself the "loser" of the collision. It flushes HARQ buffers and restarts the RA procedure from Msg1 with power ramping.
| Parameter | IE Name | Values | Default | Optimization guidance |
|---|---|---|---|---|
| ra-ContentionResolutionTimer | ra-ContentionResolutionTimer | sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64 | sf64 | Shorten for dense urban (reduce wasted air time on dead UE); extend for high-load (give scheduler more time to send Msg4) |
| ra-ResponseWindow | ra-ResponseWindow | sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80 | sl10 | Extend in high-load cells; shorten in low-load for faster failure detection |
| preambleTransMax | preambleTransMax | n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200 | n7 | Set ≥6 for URLLC; set lower for eMBB to reduce interference tail |
§9.6 Power Ramping: From preambleReceivedTargetPower to PCMAX
The UE transmits Msg1 at a power level that ensures the preamble is detectable at the gNB with sufficient SNR while not exceeding the maximum UE power PCMAX. The transmission power formula is specified in TS 38.213 §7.4:
where:
- preambleReceivedTargetPower: Target RSRP at gNB for first Msg1 attempt (range: −202 to −60 dBm, step 2 dB). Typically −104 to −100 dBm for outdoor macro.
- Δ_preamble: PRACH format-specific power offset (dB). Format 0: 0 dB; shorter formats have higher Δ to maintain detectability.
- PREAMBLE_TRANSMISSION_COUNTER: Increments from 1 for each retry. Resets to 1 after each Msg2 reception.
- powerRampingStep: Power increment per retry: 0, 2, 4, or 6 dB. Typically 2 dB for dense urban, 4 dB for rural.
- PL_c: Downlink path loss estimate in dB, derived from RSRP: PL_c = referenceSignalPower − higher layer filtered RSRP (TS 38.213 §7.4)
Worked Example 9.2 — Power Ramping Sequence
Config: preambleReceivedTargetPower = −104 dBm, powerRampingStep = 2 dB, preambleTransMax = 7, PL_c = 110 dB, P_CMAX = 23 dBm, Δ_preamble = 0 dB
| Attempt n | Formula | P_PRACH (dBm) | Outcome |
|---|---|---|---|
| 1 | −104 + 0 + 0×2 − 110 | −14 dBm | RAR timeout (too weak) |
| 2 | −104 + 0 + 1×2 − 110 | −12 dBm | RAR timeout |
| 3 | −104 + 0 + 2×2 − 110 | −10 dBm | RAR received ✓ |
| 4 (after contention fail) | −104 + 0 + 3×2 − 110 | −8 dBm | — |
| 7 (preambleTransMax) | −104 + 0 + 6×2 − 110 | −2 dBm | RA_PROBLEM → RRC failure |
Root-cause insight: 3 attempts wasted before success. Reducing preambleReceivedTargetPower from −104 to −110 dBm (matching measured cell-edge path loss) would succeed on attempt 1. However, reducing too aggressively increases interference on neighboring cells — a classic accessibility vs. retainability trade-off.
§9.7 Two-Step RACH (TS 38.321 §5.1.2, 3GPP Release 16)
3GPP Release 16 introduced a two-step contention-based random access (2-step RACH or CBRA-2step) to reduce the RACH setup latency and signaling overhead. Instead of 4 separate messages, only 2 are exchanged:
- MsgA = Msg1 (preamble) + Msg3 payload (RRC request), transmitted simultaneously on PRACH + PUSCH in the same slot or adjacent slots.
- MsgB = Msg2 (TA + UL grant) + Msg4 (contention resolution), combined in a single PDSCH response.
"When two-step random access type is configured, the MAC entity shall transmit a MsgA that consists of a PRACH transmission and a PUSCH transmission carrying a MAC PDU. The MAC PDU shall contain a MAC CE of type CCCH SDU and optionally a BSR MAC CE... The gNB shall respond with a MsgB on the PDCCH addressed to MsgB-RNTI."
The gNB responds to MsgA with a MsgB that may contain:
- SuccessRAR: The PUSCH data in MsgA was successfully decoded. MsgB contains a TA command + C-RNTI. No further messages needed → 2-step complete (latency ≈ 2 RTTs).
- FallbackRAR: The PRACH was detected but the PUSCH (MsgA payload) failed to decode. MsgB contains a standard Msg2-like RAR → UE retransmits as Msg3/Msg4 (falls back to 4-step). This protects against link failures at cell edge where simultaneous PRACH+PUSCH SNR is marginal.
- No response: Neither PRACH nor PUSCH decoded. UE applies power ramping and retries.
§9.8 RACH Trigger Causes: Seven Paths to Preamble Transmission
TS 38.321 §5.1.1 enumerates all conditions that trigger a random access procedure. Understanding which trigger is active is critical for RCA, because different triggers have different counter signatures:
| Trigger | TS Ref | Counter Signature | Primary Optimization Parameter |
|---|---|---|---|
| Initial access (RRC Setup) | §5.1.1a | L.RA.PreMsg1 ↑, L.RRC.ConnSetup.Att ↑ | preambleReceivedTargetPower, ra-ResponseWindow |
| RRC Re-establishment | §5.1.1b | L.RA.PreMsg1 ↑, L.RRC.ConnReestab.Att ↑, L.RLF.* ↑ | t310, n310 (root cause usually RLF, not RACH) |
| RRC Resume | §5.1.1c | L.RA.PreMsg1 ↑, L.RRC.Resume.Att ↑ | Inactive mode timer, SCell addition config |
| Handover (HO) | §5.1.1d | L.RA.PreMsg1 ↑ at target cell, L.HO.ExecAtt ↑ | prach-ConfigIndex at target, targetReceivedTargetPower |
| Scheduling Request failure | §5.1.1e | L.RA.PreMsg1 ↑, L.SR.Fail ↑ (if configured) | sr-ProhibitTimer, sr-TransMax |
| PDCCH order (network-triggered) | §5.1.1f | L.RA.PreMsg1 ↑, preamble index ≠ 0b111111 | Network-side policy for dedicated RA preamble |
| Beam Failure Recovery (BFR) | §5.17 | L.BFR.Req ↑, L.RA.PreMsg1 ↑ with BFR flag | beamFailureDetectionTimer, maxBeamFailure, rsrp-ThreshSSB |
Diagnostic Insight: Isolating RACH Trigger Cause from Counters
If L.RA.PreMsg1 is elevated but the RACH success rate is normal, the root cause is demand volume (more initial accesses, more HOs). If both L.RA.PreMsg1 and the per-attempt failure rate are elevated, the root cause is a RACH configuration or RF problem. Cross-referencing L.RRC.ConnSetup.Att / L.HO.ExecAtt / L.BFR.Req against L.RA.PreMsg1 reveals which trigger is dominant.
§9.9 TS 28.552 RA Counter Family: Complete Mapping
The TS 28.552 Performance Measurements standard defines a dedicated RA counter family. Every counter in the L.RA.* group maps precisely to a RACH state machine transition:
| Counter Name | Type | Definition | State Machine Transition |
|---|---|---|---|
| L.RA.PreMsg1 | CC | Total Msg1 (preamble) transmission attempts, including retransmissions | UE → PRACH_TX (every attempt, every power ramp step) |
| L.RA.Msg1TxNum.<preamble_group> | CC per group | Msg1 count split by Group A / Group B | Preamble group selection in §5.1.2 |
| L.RA.Msg2Rx | CC | Number of valid RAR (Msg2) receptions where RAPID matched UE preamble | UE: RAPID match → RA_RESPONSE_RECEIVED |
| L.RA.Msg2RxNoMatch | CC | RAR monitoring windows that expired without RAPID match (ra-ResponseWindow timeout) | UE: ra-ResponseWindow expires → retry or failure |
| L.RA.Msg3Tx | CC | Number of Msg3 (RRC Setup Request / RRC Resume Request) transmissions | UE: applies TA → PUSCH Msg3 TX |
| L.RA.Msg4Rx | CC | Number of successful Msg4 receptions (contention resolution completed) | UE: UE-contention-ID match → RRC_CONNECTED |
| L.RA.Msg4RxConFail | CC | Number of Msg4 receptions where UE-contention-ID did NOT match (collision detected) | UE: ID mismatch → flush HARQ → retry |
| L.RA.SuccMsg1 | CC | RA procedures that succeeded on the first Msg1 attempt (no power ramp) | PREAMBLE_TRANSMISSION_COUNTER = 1 at success |
| L.RA.2StepMsg A.Tx | CC | Number of MsgA transmissions (2-step RACH, Rel-16) | UE: 2-step RA: PRACH + PUSCH simultaneous TX |
| L.RA.2StepMsgBFallback | CC | Number of MsgB responses containing FallbackRAR (PUSCH component of MsgA failed) | gNB: MsgA PUSCH decode fail → FallbackRAR in MsgB |
§9.10 RACH KPI Derivation from TS 28.552 Counters
TS 28.554 §6.3.1 defines the Random Access Success Rate (RASR) as the primary initial access KPI:
This ratio captures the end-to-end probability that a single preamble attempt results in a successful contention resolution. The denominator counts all attempts including retransmissions; the numerator counts only successfully resolved procedures.
A complementary KPI is the First-Attempt Success Rate (FASR), which reveals preamble power calibration quality:
A high FASR (≥80%) indicates preambleReceivedTargetPower is well-calibrated. A low FASR with normal RASR means power ramping is doing its job but the initial power is under-configured. A low FASR with degraded RASR indicates either insufficient PRACH occasions (density problem) or persistent RF coverage issues.
The Contention Resolution Failure Rate (CRFR) isolates Msg4 contention losses:
A CRFR above 1–2% in a dense urban cell typically indicates PRACH capacity insufficiency: increase cbPreamblesPerSSB or PRACH occasion density via prach-ConfigurationIndex.
Worked Example 9.3 — RACH KPI Diagnosis from Counter Data
Observed counters (15-minute GP):
| Counter | Value |
|---|---|
| L.RA.PreMsg1 | 12,400 |
| L.RA.Msg2Rx | 11,100 |
| L.RA.Msg2RxNoMatch | 1,300 |
| L.RA.Msg4Rx | 10,200 |
| L.RA.Msg4RxConFail | 900 |
| L.RA.SuccMsg1 | 8,100 |
Computed KPIs:
- RASR = 10,200 / 12,400 = 82.3% — far below target of 99%
- RAR Match Rate = 11,100 / 12,400 = 89.5% — 1,300 RAR timeouts (10.5% failure at Msg1→Msg2 step)
- CRFR = 900 / (10,200 + 900) = 8.1% — excessive contention collisions
- FASR = 8,100 / 10,200 = 79.4% — acceptable first-attempt rate
Diagnosis: Two simultaneous problems — (1) 10.5% RAR timeouts suggest cell-edge PRACH coverage issue or RA-RNTI misconfiguration, and (2) 8.1% contention failure indicates PRACH is underdimensioned (too few preambles per occasion). Actions: (1) Increase preambleReceivedTargetPower by 4 dB and extend ra-ResponseWindow from sl10 to sl20. (2) Increase cbPreamblesPerSSB from 8 to 16 or increase PRACH occasion density.
§9.11 RACH Parameter Optimization: Decision Framework
| KPI Symptom | Counter Pattern | Diagnosis | Parameter Adjustment | Expected Impact |
|---|---|---|---|---|
| RASR < 99%, Msg2 timeout high | L.RA.Msg2RxNoMatch/PreMsg1 > 5% | Preamble power under-configured; gNB cannot detect Msg1 at cell edge | Increase preambleReceivedTargetPower by 2–4 dB | More preambles detected on first attempt; FASR increases |
| High CRFR (>2%) in dense UE cell | L.RA.Msg4RxConFail/Msg4Total > 2% | Preamble space exhausted; too many UEs sharing same preambles | Increase cbPreamblesPerSSB or add PRACH occasions (lower prach-ConfigIndex period) | Collision probability reduces per birthday problem |
| Slow initial access (RA setup time ↑) | L.RA.SuccMsg1/Msg4Rx < 70% | Excessive power ramping — preambleReceivedTargetPower too low | Increase preambleReceivedTargetPower; validate PL estimation (verify SSB RSRP mapping) | First-attempt success rate improves; latency reduces |
| HO RACH failures | L.RA.PreMsg1 spike at target cell, L.HO.ExecAtt fails | Target cell PRACH underpowered for HO UEs (different timing than initial access) | Target cell: msgA-PUSCH-TimeDomainAllocation, ra-Msg3SizeGroupA tuning for HO preamble type | HO success rate improves; L.RA.Msg2Rx at target increases |
| ra-ResponseWindow timeout during high load | L.RA.Msg2RxNoMatch high despite good RSRP | Scheduler cannot serve RAR within current window; ra-ResponseWindow too short under load | Increase ra-ResponseWindow from sl10 to sl20 or sl40 | More RARs received; Msg2 match rate increases |
Warning: preambleReceivedTargetPower Over-Increase Risk
Increasing preambleReceivedTargetPower improves first-attempt success for cell-edge UEs but forces all UEs to transmit Msg1 at higher power. In a multi-cell deployment, this raises the PRACH interference floor at neighboring gNBs, degrading their Msg1 detection sensitivity. The safe operating range is: preambleReceivedTargetPower ≤ P_CMAX − PLest(cell_edge) − Δ_guard(5 dB). Validate with interference measurements (L.PUSCH.IntfNoise) at neighboring cells before applying.
§9.12 Summary
Chapter 9 Summary
- RACH necessity: UL timing alignment requires a contention-based bootstrap channel. PRACH resolves the deadlock with long cyclic prefix, dedicated time-frequency resources, and TA command in RAR.
- 4-step sequence: Msg1 (preamble ZC sequence on PRACH) → Msg2 (RAR on RA-RNTI: TA+UL grant+TC-RNTI) → Msg3 (RRC Setup Request on TC-RNTI PUSCH) → Msg4 (contention resolution echo of UE-contention-ID → C-RNTI assigned). Defined by TS 38.321 §5.1.
- Preamble groups: Group A (small Msg3, cell-edge) vs Group B (large Msg3, cell-center) controlled by messageSizeGroupA and rsrp-ThresholdSSB. 64 preambles from ZC sequences of length L_RA = 839 (long formats) or 139 (short formats).
- Power ramping: P_PRACH = min(P_CMAX, preambleReceivedTargetPower + Δ + (n−1)×step − PL_c). Each failed RAR window increases attempt counter; power increments by powerRampingStep (0/2/4/6 dB). Max attempts = preambleTransMax.
- 2-step RACH (Rel-16): MsgA = PRACH + PUSCH combined; MsgB = TA + C-RNTI (SuccessRAR) or FallbackRAR. Reduces latency from ~4 RTTs to ~2 RTTs. Fallback to 4-step when PUSCH link is marginal.
- TS 28.552 counters: L.RA.PreMsg1 (all Msg1 attempts), L.RA.Msg2Rx (RAR match), L.RA.Msg2RxNoMatch (RAR timeout), L.RA.Msg4Rx (contention resolved), L.RA.Msg4RxConFail (collision detected), L.RA.SuccMsg1 (first-attempt success).
- KPI formulas: RASR = Msg4Rx/PreMsg1; FASR = SuccMsg1/Msg4Rx; CRFR = Msg4RxConFail/(Msg4Rx+Fail). Targets: RASR ≥99%, CRFR <2%.
- Optimization: Low RASR + high Msg2NoMatch → increase preambleReceivedTargetPower. High CRFR → increase cbPreamblesPerSSB or PRACH occasion density. Short ra-ResponseWindow under load → extend to sl20/sl40.
PRACH Configuration & Tuning
Occasions, formats, cyclic shifts, SSB-to-RACH mapping, and capacity dimensioning — from TS 38.211 §6.3.3 to field optimization
3GPP TS 38.211 §6.3.3 · TS 38.331 §6.3.2 · TS 38.321 §5.1.2Chapter Learning Objectives
After completing this chapter, you will be able to:
- Decode any prach-ConfigurationIndex to its slot, subframe, and symbol offset using the TS 38.211 Table 6.3.3.2-2 or 6.3.3.2-3 mapping
- Calculate the maximum number of simultaneous UEs supportable by a given PRACH configuration using the birthday problem formula
- Explain how rootSequenceIndex and zeroCorrelationZoneConfig jointly determine the N_CS cyclic shift and the number of preambles per root
- Configure SSB-to-RACH occasion association using ssb-perRACH-Occasion and cbPreamblesPerSSB for beam-aware initial access
- Dimension PRACH occasions for three canonical scenarios: dense urban IoT, macro rural, and mmWave indoor
- Select the correct prach-ConfigurationIndex for a target occasion period, avoiding conflicts with DL SSB transmission
- Diagnose PRACH capacity exhaustion and coverage failure from TS 28.552 counter patterns
- Apply the PRACH frequency placement rules (msg1-FrequencyStart, prach-FDM) without causing PUSCH interference
§10.1 The PRACH Occasion Concept
A PRACH occasion is a specific time-frequency resource in which a UE is permitted to transmit a random access preamble. Unlike PUSCH/PDSCH which are dynamically scheduled per slot, PRACH occasions are semi-statically configured and repeated periodically. Every UE that needs to perform RACH must wait for, or select among, available PRACH occasions.
The PRACH occasion is parameterized in three dimensions:
- Time: Which radio frames, which slots within the frame, and which OFDM symbols within the slot host a PRACH occasion. This is controlled by
prach-ConfigurationIndex. - Frequency: Which PRBs (in the uplink frequency band) carry the preamble. Controlled by
msg1-FrequencyStartandprach-FDM(frequency domain multiplexing count). - SSB association: Which SSB beam is linked to which PRACH occasion, so the gNB knows which beam to use for Msg2 (RAR). Controlled by
ssb-perRACH-OccasionAndCBPreamblesPerSSB.
The PRACH configuration is broadcast in SIB1 via the IE RACH-ConfigCommon → rach-ConfigGeneric → prach-ConfigurationIndex (TS 38.331 §6.3.2). The UE reads SIB1 to determine when and where to transmit Msg1.
§10.2 PRACH Format Deep Dive: CP, Sequence Duration, Range
"The baseband signal representing the random access preamble shall be defined by x(t) = ∑ ak,l · ej2π(k+k_0+½)(Δf·(t−t_start)+φ) where ak,l is the complex-valued symbol on physical resource block k and PRACH symbol l, k_0 is the subcarrier offset, Δf is the PRACH subcarrier spacing, and t_start is the start of the PRACH preamble including the cyclic prefix."
The PRACH preamble consists of a cyclic prefix (CP) followed by the sequence itself. The CP absorbs the round-trip propagation delay between UE and gNB, ensuring the preamble arrives within the detection window at any distance up to the cell's maximum supported range. The maximum range R_max is derived from the CP duration T_CP:
For Format 0: T_CP = 103.3 µs → R_max = (103.3×10−6 / 2) × 3×108 = 15.5 km. For Format 1: T_CP = 684.7 µs → R_max = 102.7 km (satellite/HAPS use case).
| Format | L_RA | Δf_RA (kHz) | CP (µs) | Seq dur (µs) | Total (µs) | R_max | FR |
|---|---|---|---|---|---|---|---|
| 0 | 839 | 1.25 | 103.3 | 800 | 903.3 | 14.5 km | FR1 |
| 1 | 839 | 1.25 | 684.7 | 800 | 1484.7 | 100 km | FR1 |
| 2 | 839 | 1.25 | 152.6 | 1600 | 1752.6 | 22 km | FR1 |
| 3 | 839 | 5.0 | 152.6 | 800 | 952.6 | 22 km | FR1 |
| A1 | 139 | 15×2μ | 0.9 slots | 2 slots | 2.9 slots | LoS indoor | FR1+FR2 |
| A2 | 139 | 15×2μ | 1.25 slots | 4 slots | 5.25 slots | — | FR1+FR2 |
| A3 | 139 | 15×2μ | 2.5 slots | 6 slots | 8.5 slots | — | FR1+FR2 |
| B1 | 139 | 15×2μ | 0.25 slots | 2 slots | 2.25 slots | Very short | FR1+FR2 |
| B4 | 139 | 15×2μ | 1 slot | 12 slots | 13 slots | Long range FR2 | FR2 |
| C0 | 139 | 15×2μ | 0.25 slots | 1 slot | 1.25 slots | Ultra-short | FR1+FR2 |
| C2 | 139 | 15×2μ | 0.5 slots | 4 slots | 4.5 slots | — | FR1+FR2 |
§10.3 Decoding prach-ConfigurationIndex
The prach-ConfigurationIndex is a single integer (0–255 for FR1, 0–262 for FR2) that encodes the complete PRACH time-domain pattern. For FR1 with SCS ≥ 15 kHz, the index maps to: preamble format, number of PRACH occasions per slot, starting symbol, the set of subframes (or slots) within the radio frame that contain PRACH, and the x-frame period (every x radio frames). This mapping is defined in TS 38.211 Tables 6.3.3.2-2 through 6.3.3.2-5.
| Index | Format | x | y | Subframe pattern | Starting sym. | Occasions/frame | Typical use |
|---|---|---|---|---|---|---|---|
| 16 | 0 | 1 | 0 | {0,2,4,6,8} | 0 | 5 | Standard macro |
| 17 | 0 | 1 | 0 | {1,3,5,7,9} | 0 | 5 | Staggered with idx 16 |
| 19 | 0 | 1 | 0 | {0,1,2,3,4,5,6,7,8,9} | 0 | 10 | Dense UE load |
| 87 | A1 | 1 | 0 | {9} | 7 | 1 | Low-load, small cell |
| 145 | A1 | 1 | 0 | {3,7} | 0 | 2 | Standard small cell |
| 156 | A1 | 1 | 0 | {0,1,2,3,4,5,6,7,8,9} | 0 | 10 | High density small cell |
| 200 | A2 | 1 | 0 | {0,1,2,3,4,5,6,7,8,9} | 0 | 20 | mMTC / IoT dense |
Worked Example 10.1 — Decoding prach-ConfigurationIndex=16
Scenario: FR1, SCS=30kHz, prach-ConfigurationIndex=16
From TS 38.211 Table 6.3.3.2-3:
- Format: 0 (long format, L_RA=839, Δf=1.25 kHz, CP=103.3 µs)
- x=1, y=0: PRACH occurs in every radio frame (x=1) in frames with (SFN mod x) = y, i.e., every frame
- Subframe offsets: {0, 2, 4, 6, 8} — the even subframes
- Starting symbol: 0 (begins at the first OFDM symbol of the PRACH slot)
- Occasions per slot: 1
Derived metrics:
- Occasions per radio frame = 5 × 1 = 5
- Occasions per second = 5 × 100 (frames/s) = 500
- With 64 preambles: capacity = 500 × 64 = 32,000 preamble slots/s (not all used)
Key constraint: Format 0 uses L_RA=839 at 1.25 kHz spacing → occupies 6 RBs at 15kHz or proportionally for 30kHz. The PRACH sequence must fit within the UL bandwidth. Verify: 6 PRBs × 12 sub/PRB × 30kHz = 2.16 MHz bandwidth — fits inside even a 10 MHz UL band.
§10.4 ZC Sequences: rootSequenceIndex and zeroCorrelationZoneConfig
The 64 preambles available per PRACH occasion are generated from one or more Zadoff-Chu (ZC) root sequences using cyclic shifts. Two parameters control this:
- rootSequenceIndex (0–837 for L_RA=839, 0–137 for L_RA=139): Index u of the first ZC root sequence used for this cell. Neighboring cells use different rootSequenceIndex values to ensure orthogonal preamble sets.
- zeroCorrelationZoneConfig (0–15): Indirectly specifies N_CS (the cyclic shift increment). N_CS determines how many cyclic shifts fit per root sequence — and hence how many preambles can be generated from one root.
For N_CS = 0 (unrestricted set), each root generates all L_RA virtual roots — effectively unlimited preambles from one root, but only for cells with negligible inter-cell interference (isolated pico cells).
§10.5 SSB-to-RACH Occasion Mapping: Beam-Aware Initial Access
In 5G NR with massive MIMO (L_max up to 64 beams in mmWave), the gNB transmits SSBs on different beams. When a UE detects the best SSB and initiates RACH, the gNB must know which beam the UE is using to form the correct beam for Msg2 transmission. This is achieved by associating each SSB index to a specific set of PRACH occasions and preamble subsets.
The IE ssb-perRACH-OccasionAndCBPreamblesPerSSB in RRC RACH-ConfigCommon specifies two values simultaneously: the number of SSBs per RACH occasion (determining preamble partition), and the number of CB (contention-based) preambles allocated per SSB. The key constraint is:
| ssb-perRACH value | Meaning | Occasions per SSB | cbPreambles/SSB | Use case |
|---|---|---|---|---|
| oneEighth (1/8) | 8 SSBs share one RACH occasion | 0.125 (fractional) | 4–8 | Ultra-dense beam (mmWave L_max=64, 8 SSBs per occasion) |
| oneFourth (1/4) | 4 SSBs share one RACH occasion | 0.25 | 4–16 | mmWave moderate density |
| oneHalf (1/2) | 2 SSBs share one RACH occasion | 0.5 | 4–32 | FR2 / high L_max FR1 |
| one | 1 SSB per RACH occasion | 1 | 4–64 | Standard FR1 macro (L_max=4 or 8) |
| two | 2 occasions per SSB | 2 | 4–32 | High RACH demand macro |
| four | 4 occasions per SSB | 4 | 4–16 | Very high RACH demand |
| eight | 8 occasions per SSB | 8 | 4–8 | Dense urban eMBB |
| sixteen | 16 occasions per SSB | 16 | 4 | Extreme density IoT |
§10.6 PRACH Capacity Dimensioning
A critical optimization task is dimensioning the PRACH configuration to support the expected UE RACH arrival rate without exceeding a target collision probability. The PRACH channel can be modeled as a slotted ALOHA system. Given k simultaneous UE attempts per occasion, each selecting uniformly from Np preambles, the probability that a specific UE's preamble is unique (no collision) is:
For a target RACH Success Rate RASR_target ≥ 99% and given the number of simultaneous UE attempts k and preambles per occasion Np = cbPreamblesPerSSB, the required PRACH occasions per second Oreq is:
Worked Example 10.2 — PRACH Dimensioning for Dense Urban Stadium Cell
Scenario: Stadium cell, 5,000 connected UEs, handover rate = 2 HOs/UE/minute, SR failure rate = 1% → estimated RACH rate ≈ 5,000×2/60 + 5,000×0.01×0.5 = 167 + 25 = 192 RACH attempts/second during peak load. Target: CRFR < 2%, cbPreamblesPerSSB = 64.
Step 1 — Required occasions: If average k=3 simultaneous attempts per occasion:
- P(collision) = 1 − (63/64)² = 1 − 0.969 = 3.1% — exceeds 2% target with k=3
- For k=2: P(collision) = 1 − (63/64)¹ = 1.6% — within target
Step 2 — Required occasion rate: To keep average k ≤ 2: O_req = 192 / 2 = 96 occasions/s (from 64-preamble occasions). With 30kHz SCS: O_req = 96 occasions/s → 96/100 = 0.96 occasions/frame → ceil to 1 occasion per frame. But with prach-FDM=4: 4 simultaneous freq. occasions → 0.25 time-occasions/frame → feasible with prach-ConfigIdx=16 (5 occasions/frame × 4 FDM = 20 total/frame >> 96/s needed).
Conclusion: prach-ConfigIdx=16, prach-FDM=4, cbPreamblesPerSSB=64. Available capacity: 5 × 100 × 4 × 64 = 128,000 preamble slots/s vs. 192 demand → utilization < 0.2%, contention very low.
§10.7 PRACH Frequency Domain Placement: msg1-FrequencyStart and prach-FDM
The PRACH frequency resource occupies a contiguous set of RBs within the uplink carrier. The placement is controlled by two parameters:
- msg1-FrequencyStart: The offset in resource blocks from the first usable UL RB to the lowest-frequency RB of the first PRACH occasion (integer, 0 to N_UL_RB − 1). Setting this too close to 0 (DC or guard band) may increase interference; setting near the center of the UL bandwidth maximizes separation from PUSCH.
- prach-FDM (1, 2, 4, 8): Number of PRACH occasions multiplexed in the frequency domain within one time slot. Increasing prach-FDM linearly multiplies PRACH occasion capacity without adding time overhead, at the cost of more UL bandwidth reserved for PRACH.
The bandwidth occupied by each PRACH occasion depends on the preamble format and SCS. For Format 0 (Δf_RA = 1.25 kHz, L_RA = 839) at 15kHz SCS:
| Format | Δf_RA | L_RA | BW per occasion (kHz) | PRBs at 15kHz | PRBs at 30kHz |
|---|---|---|---|---|---|
| 0, 1, 2 | 1.25 kHz | 839 | 1048.75 | ~6 PRBs | ~3 PRBs |
| 3 | 5.0 kHz | 839 | 4195 | ~23 PRBs | ~12 PRBs |
| A1, A2, A3, B1, B4, C0, C2 | 15×2^μ kHz | 139 | 12×15×2^μ | 12 PRBs | 12 PRBs |
Warning: PRACH-SSB Collision in Slot
When prach-ConfigurationIndex places a PRACH occasion in a slot that also contains SSB symbols (e.g., SSB in symbols 4–7 of a slot), a symbol-level conflict occurs. In 5G NR FR1 30kHz, the SSB occupies 4 consecutive OFDM symbols. The PRACH scheduler must verify that the starting symbol of the PRACH occasion does not overlap with SSB symbols. TS 38.211 Table 6.3.3.2-3 explicitly flags configurations that are SSB-compatible per the reference SSB pattern. Always validate the prach-ConfigurationIndex against the cell's SSB configuration (ssb-PositionsInBurst) before deployment.
§10.8 Scenario-Based PRACH Configuration Guide
| Scenario | prach-ConfigIdx | Format | N_CS / zccz | cbPreambles/SSB | prach-FDM | ssb-perRACH |
|---|---|---|---|---|---|---|
| FR1 Dense urban 100 MHz | 19 (10 occ/frame) | 0 or A1 | N_CS=13 (zccz=1) | 64 | 2 | one |
| FR1 Rural macro <15km | 16 (5 occ/frame) | 0 | N_CS=119 (zccz=10) | 64 | 1 | one |
| FR1 Rural macro >15km | 16 | 1 (CP=684µs) | N_CS=419 (zccz=15) | 64 | 1 | one |
| FR2 mmWave indoor | 145 (A1, 2 occ/frame) | A1 | N_CS=2 (zccz=0) | 8 | 4 | eight |
| FR2 mmWave outdoor | 145 | B4 | N_CS=4 (zccz=3) | 4 | 8 | sixteen |
| FR1 mMTC / NB-IoT analogy | 200 (A2, 20 occ/frame) | A2 | N_CS=13 | 64 | 4 | two |
| FR1 High-speed rail | 16 (extended interval) | 0 | N_CS=185 (zccz=13) | 32 | 1 | one |
Worked Example 10.3 — High-Speed Rail N_CS Calculation
Problem: A high-speed train (350 km/h) approaches a macro cell. The UE has Doppler shift and the preamble arrival time is uncertain due to the changing propagation delay. Calculate the minimum N_CS required.
Given: Cell radius R=5km, Format 0 (L_RA=839, Δf=1.25kHz), maximum UE speed v=350km/h=97.2m/s.
Step 1 — Maximum delay spread from propagation:
- Round-trip propagation delay ΔT = 2R/c = 2×5000/3×10⁸ = 33.3 µs
- Maximum change in delay per symbol: Δv×T_sym = 97.2 × (1/1250) = 0.078 µs/symbol ≈ negligible
Step 2 — Minimum N_CS from delay spread:
- N_CS must cover the maximum delay spread in ZC chips: N_CS ≥ ⌈ΔT × Δf_RA × L_RA⌉ = ⌈33.3×10⁻⁶ × 1250 × 839⌉ = ⌈34.9⌉ = 35 chips (minimum for 5km)
- Adding 20% guard: N_CS = 42 → use zeroCorrelationZoneConfig=7 (N_CS=46 in TS 38.211 Table 6.3.3.1-5)
Result: zeroCorrelationZoneConfig=7 (N_CS=46). Preambles per root = ⌊839/46⌋=18. Roots needed for 64 preambles = 4 roots. rootSequenceIndex gap between neighboring cells must be ≥4.
§10.9 PRACH-Specific TS 28.552 Counters
In addition to the L.RA.* family covered in Chapter 9, TS 28.552 specifies counters that directly reflect PRACH configuration effectiveness:
| Counter | Definition | PRACH config link | Diagnostic insight |
|---|---|---|---|
| L.RA.PreMsg1.GroupA L.RA.PreMsg1.GroupB |
Msg1 attempts split by preamble group A vs B | Group B rate reveals: UEs with good RSRP → low path loss → Group B | High GroupB% = cell-center dominated; high GroupA% = cell-edge load or high path loss |
| L.RA.PreMsg1.CauseHO | Msg1 attempts triggered by handover (dedicated preamble) | Non-contention RACH (dedicated preamble index from PDCCH order) | High HO-RACH rate → verify target cell PRACH capacity is not impacted |
| L.RA.PreMsg1.BFR | Msg1 attempts triggered by beam failure recovery | BFR uses dedicated PRACH occasions or preamble group B subset | High BFR-RACH → beam management issue (see Ch6); verify BFR PRACH config |
| L.RA.Msg2RxWin.Expiry | RA-RNTI monitoring windows that expired without any RAR detected | Direct indicator of ra-ResponseWindow misconfiguration or RF problem | If high, extend ra-ResponseWindow or verify PRACH occasion timing vs SSB |
| L.RA.PwrRampingStep.Dist | Histogram of preamble transmission attempt number at which RAR was finally received (n=1,2,...,7) | Direct indicator of preambleReceivedTargetPower calibration | P(n=1) < 80% → raise preambleReceivedTargetPower; P(n≥5) > 5% → coverage hole |
§10.10 Inter-Cell PRACH Planning: rootSequenceIndex Allocation
In a multi-cell deployment, neighboring cells must use different sets of preamble sequences to prevent preambles from one cell being falsely detected at an adjacent gNB. The rootSequenceIndex in adjacent cells must be separated by at least the number of roots needed per cell:
where N_roots_per_cell = ⌈64 / N_preambles_per_root⌉ = ⌈64 / ⌊L_RA/N_CS⌋⌉.
Worked Example 10.4 — rootSequenceIndex Planning for a 3-Sector Site
Config: Format 0 (L_RA=839), N_CS=46 (zeroCorrelationZoneConfig=7) → 18 preambles/root → 4 roots needed per cell.
3 sectors at one site:
- Sector 0 (α=0°): rootSequenceIndex = 0
- Sector 1 (α=120°): rootSequenceIndex = 4
- Sector 2 (α=240°): rootSequenceIndex = 8
The next site starts at rootSequenceIndex = 12. With 838 valid roots for L_RA=839 and 12 roots/site, a cluster of ≈70 sites can have unique sequence sets before reuse. In practice, antenna isolation and propagation path loss means reuse distance is shorter — verify with PRACH detection false alarm measurements.
Insight: N_CS=0 (Unrestricted Set) — When to Use It
Setting zeroCorrelationZoneConfig=0 (N_CS=0, unrestricted set) disables the guard zone entirely. All 838 root sequences are treated as independent, and each root can generate one preamble. In an isolated pico cell (indoor enterprise, single-operator), the absence of a guard zone is acceptable because there are no neighboring cells sharing the PRACH frequency band. Never use N_CS=0 in a co-channel multi-cell deployment — without a guard zone, Doppler-shifted preambles from adjacent cells will be falsely detected, inflating L.RA.Msg2Rx at the wrong cell and causing phantom RARs.
§10.11 Summary
Chapter 10 Summary
- PRACH occasion: A time-frequency resource for preamble transmission, parameterized in three dimensions — time (prach-ConfigurationIndex), frequency (msg1-FrequencyStart, prach-FDM), and SSB association (ssb-perRACH-OccasionAndCBPreamblesPerSSB).
- Format selection: Long formats 0–3 (L_RA=839) for FR1 macro with range coverage; Format 1 (CP=684.7µs) for cells >15km. Short formats A1–C2 (L_RA=139) for small cells and FR2 mmWave. Format selected by prach-ConfigurationIndex per TS 38.211 Tables 6.3.3.2-2 to 6.3.3.2-5.
- Preamble sequences: rootSequenceIndex sets starting ZC root u; zeroCorrelationZoneConfig sets N_CS (cyclic shift guard zone). N_CS trade-off: small N_CS = more preambles/root but less range; large N_CS = fewer preambles/root but supports longer cells.
- SSB-to-RACH mapping: ssb-perRACH-Occasion × cbPreamblesPerSSB ≤ 64. More SSB beams → smaller cbPreamblesPerSSB per beam → higher collision probability per beam. FR2 with L_max=64 requires ssb-perRACH=eight or sixteen.
- Capacity: Modeled as slotted ALOHA. P(collision) = 1−(1−1/N_p)^(k−1). For <2% collision: k ≤ 3 with cbPreambles=64; k ≤ 2 with cbPreambles=32. Increase occasions via prach-ConfigIdx or prach-FDM to reduce k.
- Counter diagnostics: L.RA.Msg2RxNoMatch → RAR detection failure (target power / window); L.RA.Msg4RxConFail → collision failure (capacity); L.RA.PwrRampingStep.Dist → power ramping histogram (target power calibration); L.RA.PreMsg1.BFR → beam failure RACH load.
- Inter-cell planning: rootSequenceIndex must be offset by N_roots_per_cell between co-channel neighbors. N_CS=0 (unrestricted set) only for isolated single-cell deployments.
RRC Setup: Connection Establishment
RRC state machine, Msg3/Msg4 IE anatomy, T300 timer, re-establishment, resume — and the TS 28.554 RRC Setup Success Rate
3GPP TS 38.331 §5.3.3 · §5.3.7 · §5.3.13 · TS 28.554 §6.3.1Chapter Learning Objectives
After completing this chapter, you will be able to:
- Trace every state transition in the 3-state RRC machine (RRC_IDLE → RRC_INACTIVE → RRC_CONNECTED) with the exact triggering procedure and TS 38.331 clause number
- Decode the RRC Setup Request IE, mapping each establishmentCause value to a network trigger counter
- Explain the content of the RRC Setup message — RadioBearerConfig, MasterCellGroup config, SpCellConfig — and identify what each section configures for the UE
- Calculate the RRC Setup Success Rate (RRCSSR) from TS 28.554 §6.3.1 using the exact TS 28.552 counter formula
- Identify when a UE starts T300 and what action it takes on T300 expiry — including the backoff mechanism
- Distinguish RRC Re-establishment (§5.3.7) from RRC Resume (§5.3.13): triggering conditions, message sequence, and counter signatures
- Map each RRC failure mode to its TS 28.552 counter and root cause hypothesis
- Configure T300, connEstFailCount, and connEstFailOffsetValidity to optimize RRC accessibility without causing excessive congestion
§11.1 The RRC State Machine: Three States, Six Transitions
5G NR defines three RRC states (TS 38.331 §5.2.1): RRC_IDLE, RRC_INACTIVE, and RRC_CONNECTED. Unlike LTE (which had only IDLE and CONNECTED), 5G NR adds an intermediate state (RRC_INACTIVE, introduced in Release 15) that preserves AS-layer context and the UE's NG connection without maintaining a full radio bearer — enabling fast resume without full RRC setup overhead.
| Attribute | RRC_IDLE | RRC_INACTIVE | RRC_CONNECTED |
|---|---|---|---|
| AS context stored at UE | No | Yes (suspended) | Yes (active) |
| AS context stored at gNB | No | Yes (anchor gNB) | Yes |
| NG/N2 connection | No (NGAP UE context released) | Yes (suspended, anchor gNB retains) | Yes (active) |
| DRB (Data Radio Bearer) | None | None (suspended) | ≥1 DRB active |
| UL data possible? | Via full RACH procedure | Via RRC Resume (fast path) | Immediately |
| Paging | UE monitors CN paging | UE monitors RAN paging (I-RNTI) | Not needed (DL active) |
| UE identifier | 5G-S-TMSI (NAS only) | I-RNTI (RAN context ID) | C-RNTI |
| RACH type | Full RACH → RRC Setup | RACH → RRC Resume (2 msgs) | N/A or RACH for TA update |
§11.2 RRC Setup Request: The Msg3 Payload (TS 38.331 §5.3.3.2)
"The UE shall set the contents of RRCSetupRequest message as follows: ue-Identity: if the UE has a valid 5G-S-TMSI, set to ng-5G-S-TMSI-Part1 (the lower 39 bits of the 5G-S-TMSI), otherwise set to a 39-bit random value; establishmentCause: set to the value corresponding to the condition that triggered the establishment request."
The RRC Setup Request (carried in Msg3 CCCH SDU) is minimal by design — it contains only two fields:
| IE | Type / Size | Values / semantics | TS 28.552 counter link |
|---|---|---|---|
| ue-Identity | CHOICE (39 bits) | ng-5G-S-TMSI-Part1 (39 LSBs of 5G-S-TMSI) or randomValue (39 bits) | Used for contention resolution in Msg4 (§5.1.5) |
| establishmentCause | ENUMERATED | emergency, highPriorityAccess, mt-Access (mobile terminated), mo-Signalling, mo-Data, mo-VoiceCall, mo-VideoCall, mo-SMS, mps-PriorityAccess, mcs-PriorityAccess | L.RRC.ConnSetup.Att.<cause> (one counter per cause) |
The establishmentCause is critical for accessibility analytics. The gNB's AC (Access Class) barring function and the PRACH resource allocator may apply different policies per cause. In a congested cell, the gNB may accept only emergency and mt-Access while temporarily rejecting mo-Data and mo-Signalling.
§11.3 RRC Setup Message: What the gNB Configures in Msg4
"Upon receiving the RRCSetup message, the UE shall: perform the cell group configuration procedure according to the received masterCellGroup; perform the radio bearer configuration procedure according to the received radioBearerConfig; if stored, discard the cell reselection priority information provided by the last SIB1 or dedicated signalling; set the content of RRCSetupComplete message."
The RRC Setup message (PDSCH Msg4, DL CCCH) contains three major sections that together configure the UE from scratch:
| IE Section | Key Sub-IEs | Purpose |
|---|---|---|
| radioBearerConfig | srb-ToAddModList (SRB1, SRB2), drb-ToAddModList (DRB1..n), securityConfig | Establishes Signalling Radio Bearers (SRB1/SRB2) and Data Radio Bearers; configures PDCP/RLC/MAC parameters per bearer |
| masterCellGroup | CellGroupConfig: spCellConfig, sCellToAddModList, rlc-BearerToAddModList, mac-CellGroupConfig, physicalCellGroupConfig | Configures the Master Cell Group: PCell (SpCell) physical layer parameters, PUCCH/PUSCH resource grants, PDSCH config, CSI-RS config, beam management, TDD UL/DL pattern |
| spCellConfig | ServingCellConfigCommon: dl-ConfigCommon, ul-ConfigCommon, SSB config; ServingCellConfig: PDSCH/PUSCH dedicated, BWP config, CSI-MeasConfig, PUCCH-Config | Complete UE-specific physical layer configuration for the PCell: BWP assignment, MCS/CQI reporting config, antenna port mapping, HARQ process count, scheduling config |
§11.4 T300 Timer: RRC Setup Failure Handling
When the UE transmits the RRC Setup Request, it starts timer T300 (TS 38.331 §5.3.3.6). T300 expires if the UE does not receive an RRC Setup (or RRC Reject) within the configured duration. T300 is broadcast in SIB1 as t300 with values ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000.
"Upon T300 expiry, the UE shall: increment the counter connEstFailCount; if connEstFailCount is less than connEstFailCountVal, perform a cell selection procedure as specified in TS 38.304; otherwise, the UE shall release the RRC connection establishment procedure and inform upper layers of the failure."
The two governing parameters are:
- connEstFailCount: Counter tracking T300 expiry events at this cell (0–3). Reset when UE selects a new cell.
- connEstFailOffsetValidity: Timer (s1, s2, s3, s5, s10, s20, s30) — how long the
connEstFailOffsetis applied to the cell's reselection criterion, biasing the UE away from the failing cell. - connEstFailOffset (dB): Added to the q-Offset for this cell in the reselection criterion after T300 expiry. Steers UE to a neighbor cell.
§11.5 RRC Re-establishment (TS 38.331 §5.3.7)
RRC Re-establishment is triggered when the UE detects a connection failure while in RRC_CONNECTED — specifically (TS 38.331 §5.3.7.2):
- T310 expiry (radio link failure — N311 consecutive "out-of-sync" indications from physical layer after N310 consecutive "out-of-sync")
- Handover failure (T304 expiry or HOFailure indication)
- Integrity check failure on SRB (from PDCP layer)
- Max HARQ/ARQ retransmissions reached on SRB (signalling radio bearer integrity lost)
Unlike RRC Setup (which starts from scratch), RRC Re-establishment preserves the UE's AS security context (K_gNB, integrity/cipher keys) and attempts to re-use it at the same or a different cell. The re-establishment call flow is:
| Attribute | RRC Re-establishment (§5.3.7) | RRC Resume (§5.3.13) |
|---|---|---|
| Starting state | RRC_CONNECTED (after radio failure) | RRC_INACTIVE (UE was suspended) |
| UE trigger | T310 expiry, HO failure, integrity failure | UE has data to send, or network pages via RAN paging (I-RNTI) |
| UL message | RRC Re-establishment Request (CCCH) | RRC Resume Request (CCCH) |
| Key material | Old K_gNB re-used (security context preserved) | New K_gNB derived from inactive-RNTI + resumeMAC-I |
| DRB status | DRBs lost; re-configured in subsequent RRC Reconfiguration | DRBs re-activated from suspended config |
| Context retrieval | Xn message to old gNB (if different cell) | Xn message to anchor gNB (suspend anchor) |
| Counter | L.RRC.ConnReestab.Att / .Succ | L.RRC.Resume.Att / .Succ |
| Failure counter | L.RRC.ConnReestab.Fail (reject, fallback to IDLE) | L.RRC.Resume.Fail (fallback to IDLE, full setup needed) |
§11.6 TS 28.552 RRC Counter Family
| Counter Name | Type | Definition | State machine event |
|---|---|---|---|
| L.RRC.ConnSetup.Att | CC | RRC Setup Request messages received by gNB (per cell) | UE sends RRC Setup Request, gNB starts admission |
| L.RRC.ConnSetup.Succ | CC | RRC Setup Complete messages received by gNB | UE completes RRC Setup → RRC_CONNECTED reached |
| L.RRC.ConnSetup.Att.<cause> | CC per cause | Breakdown of L.RRC.ConnSetup.Att by establishmentCause | Cause: mo-Data, mo-Signalling, mt-Access, emergency, etc. |
| L.RRC.ConnReestab.Att | CC | RRC Re-establishment Request messages received | UE detects radio failure → sends reestab request |
| L.RRC.ConnReestab.Succ | CC | RRC Re-establishment Complete received (UE back to CONNECTED) | Re-establishment succeeds at same or different cell |
| L.RRC.ConnReestab.Att.<cause> | CC per cause | Re-establishment breakdown by cause (handoverFailure, otherFailure, t310Expiry, reconfigurationFailure) | Counter per re-establishment trigger type |
| L.RRC.Resume.Att | CC | RRC Resume Request messages received (from INACTIVE state) | UE sends Resume Request with I-RNTI |
| L.RRC.Resume.Succ | CC | RRC Resume Complete received (UE back to CONNECTED from INACTIVE) | Context retrieved from anchor gNB, DRBs resumed |
| L.RRC.Reject | CC | RRC Setup Reject messages sent (admission control) | gNB rejects setup due to congestion (ac-BarringInfo) |
| L.RRC.ConnRel.Att | CC | RRC Release messages sent | gNB releases connection (normal or redirect or suspend) |
The primary KPI derived from the RRC counter family is the RRC Setup Success Rate (RRCSSR), defined in TS 28.554 §6.3.1:
The denominator excludes rejected setups (admission control rejections) because they represent intentional network decisions, not failures. RRCSSR target is typically ≥99.0% for eMBB cells, ≥99.5% for high-priority sectors.
§11.7 Re-establishment Detail: T310, T311, and the 3-Way Counter Signature
When the physical layer detects persistent radio link failure (N311 consecutive "in-sync" not received within T310 after N310 "out-of-sync"), the UE initiates RRC Re-establishment (§5.3.7). The sequence of timers is critical to understand for counter analysis:
§11.8 RRC Accessibility Parameter Optimization
| KPI Symptom | Counter Pattern | Root Cause | Parameter Fix | Expected Effect |
|---|---|---|---|---|
| RRCSSR < 99% — T300 failure dominant | ConnSetup.Att ↑, ConnSetup.Succ flat, T300 expiry visible in UE traces | gNB CCCH scheduler overload or poor DL coverage for Msg4/RRC Setup PDSCH | Extend t300 from 400ms to 1000ms; verify RRC Setup PDSCH uses robust MCS | More time for scheduler to deliver Msg4; RRCSSR improves |
| High L.RRC.Reject with good RRCSSR | ConnSetup.Att ↑, Reject ↑, RRCSSR nominally fine | AC barring active — load shedding policy triggered | Review ac-BarringFactor, ac-BarringTime per establishmentCause; balance with load | Reduce unnecessary rejection; connEstFailOffset may be driving UE away unnecessarily |
| Re-establishment rate rising with no RLF | ConnReestab.Att.HoFailure ↑ | Handover failures causing re-establishment (T304 expiry) | Fix handover parameters (A3 offset, TTT, T304) — see Chapter 13-16 | Reduce HO-triggered reestab; re-establishment rate normalizes |
| RRCSSR step-drop after software upgrade | ConnSetup.Succ drops abruptly at upgrade time; ConnSetup.Att stable | Software regression in RRC Setup message encoding or timing | Roll back upgrade; isolate delta configuration; re-test RRC Setup latency | Confirms causality; regression identified before wide rollout |
| Low RRCSSR at specific time of day | ConnSetup.Att peaks at 08:00–09:00 and 17:00–18:00; Succ stays flat | Scheduler resource contention during busy hours; T300 expiry spike | Optimize PDCCH capacity, add PUSCH resource grants for CCCH, review admission threshold | Time-of-day pattern resolves; RRCSSR flattens across day |
§11.9 RRC Reject and Access Class Barring
When a cell is overloaded, the gNB may respond to an RRC Setup Request with an RRC Reject message rather than allowing the UE to proceed. The RRC Reject carries a waitTime IE (1–16 seconds) during which the UE must not attempt another setup at this cell. This is the RAN-level access control mechanism.
Separately, Access Class (AC) Barring is broadcast in SIB1 and prevents UEs from even initiating a RACH for non-emergency causes. The parameters ac-BarringFactor (0–0.95 probability) and ac-BarringTime (4–512 seconds) define a per-cause barring gate.
Worked Example 11.1 — RRCSSR Diagnostic: Separating RACH from RRC Failures
Observed KPIs (30-minute GP):
- L.RA.PreMsg1 = 240,000
- L.RA.Msg4Rx = 228,000 → RASR = 228/240 = 95% (poor)
- L.RRC.ConnSetup.Att = 226,000 (2,000 Msg3 failures after Msg4)
- L.RRC.ConnSetup.Succ = 223,500
- L.RRC.Reject = 500
- RRCSSR = 223,500 / (226,000 − 500) = 99.8% (excellent)
Diagnosis: The RRCSSR is nearly perfect — once UEs reach the RRC Setup Request stage, the gNB handles them correctly. The problem is in the RACH layer: 5% failure before RRC even begins. This is a PRACH/coverage problem (see Ch9-10), NOT an RRC configuration problem. A common mistake is blaming RRC parameters when the root cause is preamble configuration — the RRCSSR would not reveal this without cross-referencing RASR.
Action: Focus on preambleReceivedTargetPower, ra-ResponseWindow, and cbPreamblesPerSSB tuning. The RRC parameters are correctly configured.
§11.10 Optimization: T300 and re-establishment Parameter Guidelines
| Parameter | Default | Range | Optimization rule |
|---|---|---|---|
| t300 | ms400 | ms100–ms2000 | For high-load cells: ms1000–ms2000. For eMBB with fast schedulers: ms200–ms400. Never below ms100 (insufficient for high propagation delay cells) |
| connEstFailCountVal | n3 | n1, n2, n3, n4 | n3 is standard. Set n1 for aggressive cell steering (force UE to reselect faster). Set n4 if UE is persistently at cell edge with marginal PDSCH |
| connEstFailOffset | dB0 | dB0–dB15 | 4–8 dB typical — enough to steer UE to a neighbor without causing ping-pong. 0 dB effectively disables cell steering after setup failure |
| t310 | ms1000 | ms0–ms6000 | ms0 disables T310 (never do in deployed network). ms1000–ms2000 for stable macro. ms500 for small cells with fast reselection. Shorter T310 → faster RLF detection but more false triggers |
| n310 | n1 | n1–n20 | n1 for fast RLF detection. n20 for delay-tolerant IoT (avoid false RLF). n6–n10 for standard eMBB |
| t311 | ms3000 | ms1000–ms30000 | Must be long enough for UE to find and measure a new cell. For dense urban: ms1000–ms3000. For rural with sparse neighbors: ms10000–ms30000 |
§11.11 Summary
Chapter 11 Summary
- RRC states: Three states — IDLE (no context), INACTIVE (context suspended, Rel-15), CONNECTED (active DRBs). IDLE→CONNECTED via RRC Setup (§5.3.3); CONNECTED→INACTIVE via RRC Suspend (§5.3.12); INACTIVE→CONNECTED via RRC Resume (§5.3.13).
- RRC Setup Request (Msg3): Contains only ue-Identity (5G-S-TMSI Part1 or random 39 bits) and establishmentCause (mo-Data, mt-Access, emergency, etc.). Starts T300 at UE.
- RRC Setup (Msg4): Three sections — radioBearerConfig (SRB1/2, DRBs), masterCellGroup (MCG config, MAC, HARQ), spCellConfig (PCell physical layer: BWP, CSI, PUCCH, PDSCH). Fully bootstraps the UE from scratch.
- T300: Timer started at RRC Setup Request, stopped at RRC Setup receipt. On expiry: connEstFailCount increments; at connEstFailCountVal retries exhausted → UE falls back to IDLE with connEstFailOffset bias applied for connEstFailOffsetValidity seconds.
- Re-establishment (§5.3.7): Triggered by T310 expiry (RLF), HO failure, or integrity failure. UE searches cell in T311 window, sends Re-establishment Request. Success → L.RRC.ConnReestab.Succ; failure → IDLE. Distinguished from Resume (§5.3.13) which starts from INACTIVE.
- TS 28.552 counters: L.RRC.ConnSetup.Att (UL), .Succ (Complete), .Reject (AC barring), .ConnReestab.Att/.Succ/.Fail, .Resume.Att/.Succ. Breakdowns by establishmentCause and reestablishmentCause.
- RRCSSR: = ConnSetup.Succ / (ConnSetup.Att − Reject) × 100%. Target ≥99.0%. Reject excluded from denominator as intentional. Failures: T300 expiry (DL coverage/scheduler) or no Msg3 decoded (UL coverage).
- Diagnostic separation: RASR tracks RACH success; RRCSSR tracks RRC layer success. A low RASR with high RRCSSR points to PRACH/coverage, not RRC configuration.
Initial Access Failure RCA Tree
RACH Success Rate, RRC Setup Success Rate, and the systematic five-layer root-cause framework for diagnosing and resolving Initial Access degradation
3GPP TS 38.321 §5.1 · TS 38.331 §5.3 · TS 38.211 §6.3.3 · TS 28.552 · TS 28.554Chapter Learning Objectives
After completing this chapter, you will be able to:
- Define RASR, RRCSSR, and IASR using the exact TS 28.552 and TS 28.554 counter formulas, and explain how their product governs end-to-end Initial Access performance
- Navigate the five-layer RCA framework — RF/Coverage, RACH Configuration, Contention, RRC, and Core/NAS — and identify which TS 28.552 counter signature uniquely fingerprints each layer
- Apply the RCA decision tree to an observed KPI degradation and arrive at the root cause within four decision nodes
- Calculate PRACH coverage range for each preamble format using the TS 38.211 §6.3.3 guard period formula and determine whether a cell size exceeds the format's range limit
- Model preamble collision probability as a function of load and RACH occasion density, and compute the minimum N_p required to meet a collision target
- Trace the full T300 expiry cascade — from PUSCH congestion through connEstFailCount to reselection bias — and identify the correct counter at each step
- Execute an end-to-end RCA case study using real counter GP data and produce a parameter change recommendation with expected KPI recovery
§12.1 The Initial Access KPI Hierarchy
Initial Access in 5G NR is a two-phase sequence: a Random Access phase governed by TS 38.321 §5.1 (producing RACH Success Rate, RASR) followed by an RRC Setup phase governed by TS 38.331 §5.3.3 (producing RRC Setup Success Rate, RRCSSR). A UE that fails at either phase cannot establish a data bearer, so both KPIs must be monitored in tandem. The headline network KPI is the Initial Access Success Rate (IASR), defined as their product:
Because IASR is a product, a modest degradation in both KPIs compounds: RASR = 0.97 × RRCSSR = 0.97 yields IASR = 0.941 — a nearly 6% end-to-end failure rate even though neither individual KPI looks alarming. The counter definitions from TS 28.552 are:
RRCSSR = L.RRC.ConnSetupSucc / L.RRC.ConnSetupAtt
IASR = RASR × RRCSSR
Example 12.1 — KPI Hierarchy Calculation
A cell in a 15-minute GP reports the following counter values:
- L.RA.PreMsg1 = 4,820
- L.RA.Msg4Rx = 4,612
- L.RRC.ConnSetupAtt = 4,588
- L.RRC.ConnSetupSucc = 4,501
RASR = 4,612 / 4,820 = 0.9569 (95.7%)
RRCSSR = 4,501 / 4,588 = 0.9810 (98.1%)
IASR = 0.9569 × 0.9810 = 0.9387 (93.9%)
The 6.1% IASR failure rate is double what RRCSSR alone suggests. The RASR shortfall (4.3%) flags a RACH-layer problem that must be resolved independently of the RRC layer.
Note the subtle denominator asymmetry: L.RRC.ConnSetupAtt counts RRCSetupRequest messages received at the gNB — which is approximately equal to L.RA.Msg4Rx, but not identical. A UE may successfully complete Msg4 (counted in L.RA.Msg4Rx) but fail to generate an RRCSetupRequest if Msg4 is decoded in error (rare) or if the contention-resolution RNTI check fails at the UE side. In practice the two counters differ by less than 0.5%, but the distinction matters for precision RCA.
§12.2 The Five-Layer RCA Framework
Initial Access failures originate from five distinct protocol layers. Each layer leaves a unique counter signature — a pattern of relative counter magnitudes that is diagnostic of that specific root cause. The five layers, in protocol order, are:
| Layer | Failure Mode | Diagnostic Counter Ratio | Threshold (typical) | Primary Spec |
|---|---|---|---|---|
| L1: RF/Coverage | Preamble not detected at gNB — Msg2 never sent | L.RA.Msg2Rx / L.RA.PreMsg1 | < 0.95 → alarm | TS 38.211 §6.3.3, TS 38.213 §8.1 |
| L2: RACH Config | Wrong prach-ConfigurationIndex for cell size; NCS too small; SSB-RACH association mismatch | L.RA.Msg2Rx / L.RA.PreMsg1 low, but only on specific SSBs | SSB-specific ratio < 0.90 | TS 38.321 §5.1.2, TS 38.331 §6.3.3 |
| L3: Contention | Multiple UEs pick same preamble; Msg4 contention resolution fails | L.RA.Msg4RxConFail / L.RA.Msg4Rx | > 0.05 → investigate | TS 38.321 §5.1.5 |
| L4: RRC | T300 expiry; RRCSetupComplete lost; gNB capacity reject | L.RRC.ConnSetupFail.T300 / L.RRC.ConnSetupAtt | > 0.005 → investigate | TS 38.331 §5.3.3, §10.2 |
| L5: Core/NAS | Initial Context Setup failure; AMF reject; Authentication failure | NGAP: Initial Context Setup Failure / Request | > 0.01 → alarm | TS 38.413 §8.7.1, TS 28.552 |
The diagnostic approach is sequential: start at Layer 1 and proceed to higher layers only once the lower layer has been cleared. A single-layer failure is the common case; multi-layer failures indicate systemic degradation (e.g., a scheduled-maintenance power reduction that simultaneously degrades coverage AND increases PUSCH BER, causing both RASR and RRCSSR to fall).
"The UE shall, after successful reception of an RRCSetup message, perform the RRC connection establishment procedure as specified. If T300 expires before the RRC connection establishment procedure is completed, the UE shall re-initiate the RRC connection establishment procedure." — TS 38.331 §5.3.3.2
§12.3 The RCA Decision Tree
The decision tree formalises the five-layer framework into an executable troubleshooting flowchart. Each decision node tests a single counter ratio against a threshold. Terminal nodes (leaves) specify the parameter action. The tree is designed so that no root cause requires more than four decision steps from the entry point.
§12.4 Coverage-Driven Failures
Coverage-driven RACH failure is identified by a low L.RA.Msg2Rx/L.RA.PreMsg1 ratio: the UE transmits a preamble (incrementing L.RA.PreMsg1) but the gNB either does not detect it or detects it below the RA-RNTI correlation threshold, so no RAR is transmitted and L.RA.Msg2Rx is not incremented. After PREAMBLE_TRANS_MAX attempts with full power ramping, the UE declares an RA failure.
12.4.1 PRACH Format Range Limits
The maximum supportable cell range for each PRACH format is determined by the preamble sequence length and guard period, as specified in TS 38.211 Table 6.3.3.1-1. The guard period (NGP) must exceed the round-trip propagation delay plus the gNB processing uncertainty:
where NGP = guard period in samples, Ts = sample period = 1/(Δfprach × 2048), c = 3×108 m/s
"PRACH preamble formats are defined by the sequence length, the number of OFDM symbols, the subcarrier spacing, and the cyclic prefix length. The guard period determines the maximum supported cell radius." — TS 38.211 §6.3.3
| Format | SCS (kHz) | Seq. Length Nu | CP Length NCP (ms) | Guard NGP (ms) | Rmax (km) | Typical Use Case |
|---|---|---|---|---|---|---|
| 0 | 1.25 | 24576 | 0.103 | 2.976 | 14.5 | Urban/Suburban macro |
| 1 | 1.25 | 24576 (×2) | 0.684 | 21.035 | 102.7 | Rural very large cell |
| 2 | 1.25 | 24576 (×4) | 0.684 | 4.476 | 22.0 | Suburban extended |
| 3 | 1.25 | 24576 (×4) | 0.103 | 23.065 | 100.3 | Rural large cell |
| A1 | 15 | 2048 | 0.009 | 0.144 | 0.4 | Indoor, small cell |
| A2 | 15 | 4096 | 0.017 | 0.432 | 1.3 | Microcell |
| A3 | 15 | 6144 | 0.026 | 0.720 | 2.2 | Pico, dense urban |
| B4 | 15 | 12288 | 0.052 | 1.728 | 5.3 | Urban macro NR |
| C0 | 15 | 2048 | 0.009 | 0.432 | 1.3 | Microcell, eMBB |
| C2 | 15 | 4096 | 0.017 | 1.008 | 3.1 | Urban NR macro |
12.4.2 Target RSRP Calculation for Preamble Detection
The gNB can detect a preamble when the received power exceeds the noise floor plus a detection threshold. From TS 38.213 §8.1, the UE uses the following formula to compute its preamble transmission power:
where PL = referenceSignalPower − higher_layer_filtered_RSRP (downlink path loss estimate in dB)
For the gNB to receive the preamble, the reverse path loss (UL) must leave sufficient received power. The minimum RSRPavg at the UE for which preamble reception is expected is therefore:
Example 12.2 — Coverage Range Check for Format 0 vs Format 2
A rural macro cell has an ISD (Inter-Site Distance) of 22 km (cell radius ≈ 12.7 km). The configured PRACH format is Format 0.
- Format 0 Rmax = 14.5 km → Rmax > 12.7 km → OK at boresight
- However, at 15° off-boresight the effective path loss increases by 3 dB. Cell edge UEs at that angle experience higher path loss, equivalent to an effective cell radius of 14.3 km → still within margin, but only 0.2 km guard
- During a traffic spike at 200 simultaneous PRACH attempts, power ramp step = 2 dB, max attempts = 10 → UE reaches PCMAX = 23 dBm. If preambleReceivedTargetPower = −104 dBm and path loss at edge = 142 dB, received power = 23 − 142 = −119 dBm < −104 dBm: preamble not detected
- Fix: Switch to Format 2 (Rmax = 22 km) OR increase preambleReceivedTargetPower from −104 to −110 dBm to reduce required UE TX power
Counter signature: L.RA.PreMsg1 high, L.RA.Msg2Rx/PreMsg1 = 0.82 (below 0.95 threshold) → confirm coverage failure layer
§12.5 Contention-Driven Failures
When two or more UEs select the same preamble in the same PRACH occasion, both Msg1 transmissions are received by the gNB as a superposition, making preamble decoding ambiguous. The gNB may send one RAR (for the winning preamble correlation), and both UEs respond with Msg3. The Msg4 contention resolution message carries the UE-A MAC address; UE-B, not seeing its own address, declares the RA attempt failed and backs off.
12.5.1 Collision Probability Model
where Np = total preambles available = cbPreamblesPerSSB × numSSBsPerRACH, k = number of simultaneously contending UEs
For small k and large Np, this approximates to P(collision) ≈ (k−1)/Np. The design target is typically P(collision) ≤ 1% per attempt.
Example 12.3 — Preamble Pool Sizing for 1% Collision Target
Given: Peak load = 200 UEs/s attempting RACH. 4 SSBs active (L = 4). PRACH occasion density = 2 occasions per 10 ms subframe. Target P(collision) ≤ 1%.
- RACH occasion rate = 2 × 100 = 200 occasions/s
- UEs per occasion = 200 / 200 = k = 1.0 (average). At P95 of Poisson(1): k ≈ 3 UEs.
- Using k = 3: P(collision) ≤ 0.01 → (1 − 1/Np)² ≥ 0.99 → Np ≥ 200
- With 4 SSBs: cbPreamblesPerSSB = Np / numSSBsPerRACH
- If numSSBsPerRACH = 4: cbPreamblesPerSSB = 200 / 4 = 50 (TS 38.321 allows 4–64)
Configured value: cbPreamblesPerSSB = 52 (next higher supported value). This gives Np = 208, P(collision|k=3) = 1 − (207/208)² = 0.96%. Target met.
Counter validation: L.RA.Msg4RxConFail / L.RA.Msg4Rx should be ≤ 0.0096 after the change.
§12.6 Timing and Synchronisation Failures
A UE in motion or at a large cell's edge may have a timing advance (TA) that shifts during the RACH procedure. If the TA uncertainty exceeds the PRACH guard period, the preamble either arrives outside the expected window (not detected) or arrives inside the window but with a TA that the gNB computes as out-of-range. The latter case increments L.RA.Msg2RxNoMatch — the gNB sends a RAR, but the UE's RA-RNTI check fails because the TA value in the RAR does not correspond to the UE's actual position.
where δR = UE positioning uncertainty (m), c = 3×108 m/s
For a 10 km cell with 500 m positioning uncertainty: δTA = 2 × 10500 / 3×108 = 70 µs
The diagnostic counter is L.RA.Msg2RxNoMatch: the gNB transmitted a RAR (incrementing L.RA.Msg2Rx) but the UE discarded it because the RA-RNTI did not match its expected value. A ratio L.RA.Msg2RxNoMatch / L.RA.Msg2Rx > 0.02 indicates timing drift or PRACH occasion configuration errors.
| Symptom | Counter Evidence | Root Cause | Parameter Fix |
|---|---|---|---|
| High Msg2RxNoMatch rate | L.RA.Msg2RxNoMatch / L.RA.Msg2Rx > 0.02 | TA uncertainty exceeds RAR TA window; clock drift | Reduce timeAlignmentTimer; verify gNB GPS sync; dedicate RACH occasions for high-mobility UEs |
| Preamble detected but RAR discarded | Msg2Rx counts but Msg3 absent | TC-RNTI collision or wrong PRACH numerology-to-SCS mapping | Verify prach-ConfigurationIndex mapping to SCS; ensure unique TC-RNTI pool |
| High-speed UE failures only | Msg4RxConFail high at specific times (rush hour, highway cells) | Doppler shift degrades preamble correlation; timing offset grows between Msg1 and Msg3 | Configure high-speed PRACH format (B4 or C2); enable dedicated RA for handover (cfra) |
| Intermittent Msg2Rx drop at night | Periodic dip in Msg2Rx/PreMsg1 correlated with temperature | Crystal oscillator drift in extreme temperature (outdoor sites) | Enable GNSS-based frequency correction; verify temperature compensation profile |
§12.7 RRC-Layer Failures
12.7.1 T300 Expiry Cascade
After a UE successfully completes Msg4 contention resolution, it transitions to the RRC layer and sends an RRCSetupRequest (Msg3 payload) or an RRCReestablishmentRequest. The gNB responds with RRCSetup. The UE starts T300 immediately upon transmitting RRCSetupRequest. If T300 expires before the UE receives a valid RRCSetup, the failure cascade is defined in TS 38.331 §5.3.3.6:
"Upon T300 expiry, the UE shall: increment the counter V300; if V300 is less than or equal to N300: select a suitable cell and, if found, initiate the random access procedure on the selected cell; else: perform actions upon leaving RRC_CONNECTED as specified in 5.3.11." — TS 38.331 §5.3.3.6
The T300 expiry cascade has four amplification stages before it affects IASR permanently:
Stage 2: Msg3 retransmissions exhaust → T300 expires → L.RRC.ConnSetupFail.T300++
Stage 3: After N300 failures → connEstFailCount++ stored in UE → triggers connEstFailOffset
Stage 4: UE applies reselection offset → biases to neighbour → L.RRC.ConnReject or neighbour IASR impact
12.7.2 RRCSSR Decomposition
Note: L.RRC.ConnReject counts gNB-initiated overload rejections and should be excluded from the denominator for pure setup-failure analysis
| Failure Counter | Failure Mode | Primary Cause | Correlation Indicator |
|---|---|---|---|
| L.RRC.ConnSetupFail.T300 | T300 timer expiry before RRCSetup Rx | PUSCH congestion, low UL SINR, Msg3 HARQ exhaustion | Correlates with L.Thr.Vol.DL (not RSRP) |
| L.RRC.ConnSetupFail.Other | gNB internal reject (capacity, license, slice) | Admission control, resource exhaustion, software defect | Correlates with PRB utilisation, alarm logs |
| L.RRC.ConnReject | Explicit RRCReject sent by gNB | AC (Access Class) barring, overload control, RACH back-pressure | Correlates with L.RA.PreMsg1 spike; check overload algorithm config |
| L.RRC.ConnSetupFail.RadioLink | RLF before RRCSetupComplete Rx | Sudden coverage loss, high interference, UE moved cell boundary | Correlates with L.RLF.Tot; check beam-failure recovery config |
| L.RRC.ReestabAtt − L.RRC.ReestabSucc | Re-establishment failure | UE migrated to cell with no context; context cache miss at gNB | Check Xn interface latency and context forwarding timeout |
§12.8 The Optimisation Action Matrix
| Symptom | Root Cause | Counter Evidence | Parameter Fix | Expected KPI Impact |
|---|---|---|---|---|
| RASR < 90% | PRACH coverage hole: R_cell > R_max for configured format | L.RA.Msg2Rx / PreMsg1 < 0.90; no correlation with congestion counters | Upgrade format (e.g. Format 0 → Format 2 or 3); increase preambleReceivedTargetPower by 4–6 dB | Msg2Rx/PreMsg1 recovers to >0.97; RASR +8–15 pp within 1 GP |
| RASR 90–96% with congestion | Preamble contention collision: N_p too small for peak load | L.RA.Msg4RxConFail / Msg4Rx > 0.05; peaks at busy hour | Increase cbPreamblesPerSSB; add PRACH occasions (prach-FDM or denser periodicity) | ConFail rate drops to <1%; RASR recovers to >98% |
| Intermittent RASR dips, no coverage change | RA-RNTI mismatch / timing drift (high-speed UEs) | L.RA.Msg2RxNoMatch / Msg2Rx > 0.03 | Enable high-mobility preamble format (B4/C2); configure dedicated CFRA for handover-triggered RACH | NoMatch/Msg2Rx < 0.01; RASR stabilises |
| RRCSSR < 97% with RASR normal | T300 expiry: PUSCH congestion or backhaul latency | L.RRC.ConnSetupFail.T300 elevated; correlates with L.Thr.Vol.DL peaks | Increase T300 from ms400 to ms1000; increase PUSCH power target by 2 dB; check Xn latency | T300 fail counter drops >70%; RRCSSR recovers to >99% |
| RRCSSR gradual degradation over days | Capacity-driven admission reject (cell loading trend) | L.RRC.ConnSetupFail.Other rising; PRB utilisation >80% | Capacity expansion (carrier aggregation, new sector); optimise load-balancing X2/Xn handover thresholds | Admission reject rate normalises once load redistributed |
| High L.RRC.ConnReject spikes at peak hours | Access Class (AC) barring too aggressive or overload algorithm triggered prematurely | ConnReject/ConnSetupAtt > 0.02; correlated with L.RA.PreMsg1 burst | Tune overload algorithm threshold; relax AC barring factor/time; prioritise emergency + high-priority PLMN | ConnReject/Att < 0.005; IASR recovers |
| ConnSetupAtt >> L.RA.Msg4Rx | Msg3/Msg4 PDCCH aggregation level mismatch | Difference > 2%; isolated to cells with high interference | Increase Msg4 PDCCH aggregation level; verify DMRS pattern for Msg4 CORESET | Alignment of ConnSetupAtt to Msg4Rx within 0.5% |
| IASR<95% cluster-wide, no single cell dominant | Core/NAS: Initial Context Setup failures at AMF or transport congestion | NGAP Initial Context Setup Failure / Request > 1%; correlates across all cells on same AMF | Investigate N2 interface capacity; check AMF congestion indicators; verify SCTP association stability | IASR recovers once N2 congestion resolved; track per-AMF |
§12.9 Impact Visualisation: Optimisation Matrix Heatmap
§12.10 End-to-End RCA Case Study: IASR Degradation from 98% to 91%
"The preamble format and its associated parameters (subcarrier spacing, sequence length, CP, guard period) shall be configured such that the guard period is larger than the maximum round-trip propagation delay expected within the served cell." — TS 38.211 §6.3.3, NOTE 1
12.10.1 Case Background
A rural macro NR cell (NR-ARFCN 520920, band n3, 20 MHz FDD) serving a 23 km radius valley deployment begins showing IASR degradation over a 4-hour window starting at 06:00. The NOC receives an automated IASR alert at 07:45 when the 4-GP rolling average drops below 93%. A senior RF engineer begins an RCA session using the previous 6 hours of GP counter data.
12.10.2 Counter Data (4-Hour Degraded Period)
| Counter | Baseline (00:00–04:00) | Degraded (06:00–10:00) | Δ |
|---|---|---|---|
| L.RA.PreMsg1 | 3,240 (avg/GP) | 3,810 (avg/GP) | +17.6% |
| L.RA.Msg2Rx | 3,218 | 2,704 | −16.0% |
| L.RA.Msg2Rx / PreMsg1 | 0.993 | 0.710 | −28.3 pp |
| L.RA.Msg4Rx | 3,201 | 2,691 | −15.9% |
| L.RA.Msg4RxConFail | 32 | 38 | +18.8% |
| L.RA.Msg2RxNoMatch | 12 | 18 | +50% (but absolute low) |
| RASR = Msg4Rx / PreMsg1 | 0.988 | 0.707 | −28.1 pp |
| L.RRC.ConnSetupAtt | 3,196 | 2,688 | −15.9% |
| L.RRC.ConnSetupSucc | 3,154 | 2,661 | −15.7% |
| RRCSSR | 0.987 | 0.990 | +0.3 pp (stable) |
| IASR = RASR × RRCSSR | 0.975 | 0.700 | −27.5 pp |
| L.RRC.ConnSetupFail.T300 | 14 | 11 | −21% (decreasing) |
12.10.3 RCA Walk-Through
Example 12.4 — Step-by-Step RCA Using the Decision Tree
Step 1 — Entry node: IASR dropped from 97.5% to 70.0%. Initial Access degraded → YES → proceed.
Step 2 — RASR check: RASR = 0.707 < 0.98 → YES → proceed to RASR failure branch.
Step 3 — Msg2Rx/PreMsg1: Ratio = 0.710 < 0.95 → YES → flag: PRACH Coverage failure.
Step 4 — Contention check (eliminate): L.RA.Msg4RxConFail/Msg4Rx = 38/2691 = 1.4% < 5% threshold → contention not the driver.
Step 5 — Timing check (eliminate): L.RA.Msg2RxNoMatch/Msg2Rx = 18/2704 = 0.67% < 2% threshold → timing drift not the driver.
Step 6 — Layer 4 (RRC) check: RRCSSR = 99.0% (stable, even slightly improved). T300 fail counter decreasing. RRC layer clear.
Conclusion: Root cause is Layer 1 (Coverage). The gNB is not receiving preambles from a significant fraction of UEs.
Step 7 — Format range check: Cell radius = 23 km. Configured format = Format 0 (R_max = 14.5 km). Cell radius EXCEEDS format range by 8.5 km. UEs beyond 14.5 km have preambles arriving after the guard period.
Step 8 — Onset explanation: The degradation starts at 06:00 and peaks at 08:00. This is consistent with morning commuter traffic: UEs located at 15–23 km (farm workers, highway vehicles) attempt RACH at the same time. During night hours (00:00–04:00) there are very few UEs at cell edge → Format 0 appeared adequate.
Step 9 — Configuration audit: PRACH format confirmed as Format 0 (prach-ConfigurationIndex = 0 in SIB1 rach-ConfigCommon). This is the misconfiguration.
Correct format: Format 3 (R_max = 100.3 km) or Format 1 (R_max = 102.7 km) should be used for a 23 km cell. Format 3 uses the same LRA as Format 0 but with a longer CP, consuming 4 subframes — a reasonable trade-off for a rural low-traffic cell.
12.10.4 Fix and KPI Recovery
Example 12.5 — Parameter Change and KPI Recovery Projection
Change applied (11:00 via maintenance window):
- prach-ConfigurationIndex: 0 → 3 (Format 0 → Format 3, same 1.25 kHz SCS, longer CP + guard)
- rootSequenceIndex: verified — ZC sequence length matches Format 3 parameters
- ra-ResponseWindow: ms20 → ms40 (accommodate the longer round-trip at 23 km: δ_TA = 2×23000/3×10⁸ = 153 µs; Msg2 must arrive within RAR window after preamble)
Expected recovery:
- L.RA.Msg2Rx / PreMsg1 recovers to 0.985 within the first post-change GP (15 min): UEs beyond 14.5 km can now have their preambles detected with Format 3's 100 km guard period
- RASR recovers from 0.707 to ~0.980 (Δ +27 pp)
- IASR recovers from 0.700 to ~0.970 (Δ +27 pp)
- L.RA.PreMsg1 decreases slightly (fewer retransmissions): expected drop from 3,810 to ~3,320/GP
Validation: Monitor L.RA.Msg2Rx/PreMsg1 for 4 consecutive GPs post-change. If ratio remains ≥ 0.97, the fix is confirmed. Run correlation check: RRCSSR should remain stable (≥98.5%), confirming the change introduced no UL congestion from Format 3's longer duration.
§12.11 Summary and 10-Point Optimisation Checklist
"The random access procedure is initiated by the MAC sublayer based on requests from upper layers or from the MAC sublayer itself. … The RA procedure is considered to have failed if the number of preamble transmissions has reached preambleTransMax." — TS 38.321 §5.1.1
| Parameter | TS 38.331 Ref. | Recommended Urban | Recommended Rural | Effect of Increase |
|---|---|---|---|---|
| T300 | §10.2 | ms400–ms600 | ms800–ms2000 | Fewer T300 expiries; risk: longer hang time for unrecoverable failures |
| N300 | §10.2 | n1–n2 | n2–n4 | More retries before connEstFail; risk: prolonged access time under congestion |
| connEstFailOffsetValidity | §5.3.3.6 | s30 | s30–s120 | Longer validity prevents repeated failed-cell selection; risk: slower cell recovery detection |
| ra-ResponseWindow | TS 38.321 §5.1.4 | sl8–sl20 | sl20–sl40 | More time for RAR; needed for large cells; risk: slower PRACH procedure |
| Counter | Incremented When | Used In |
|---|---|---|
| L.RA.PreMsg1 | UE sends PRACH preamble (each attempt) | RASR denominator; coverage baseline |
| L.RA.Msg2Rx | gNB transmits RAR (Msg2) in response to detected preamble | Coverage ratio numerator |
| L.RA.Msg2RxNoMatch | UE receives RAR but RA-RNTI or TA check fails | Timing drift detection |
| L.RA.Msg4Rx | UE receives Msg4 contention resolution | RASR numerator |
| L.RA.Msg4RxConFail | UE receives Msg4 but own MAC-ID not present (contention lost) | Collision rate |
| L.RRC.ConnSetupAtt | gNB receives RRCSetupRequest from UE | RRCSSR denominator |
| L.RRC.ConnSetupSucc | gNB receives RRCSetupComplete from UE | RRCSSR numerator |
| L.RRC.ConnSetupFail.T300 | T300 expires at UE (reported via failure indication or inferred) | RRC congestion diagnosis |
| L.RRC.ConnReject | gNB sends RRCReject to UE | AC barring/overload diagnosis |
| L.RRC.ReestabAtt | UE sends RRCReestablishmentRequest | RLF / HO failure rate |
10-Point Initial Access Optimisation Checklist
- Verify PRACH format vs cell radius: R_cell must be ≤ R_max for the configured format (TS 38.211 Table 6.3.3.1-1). This is the most common misconfiguration in rural NR deployments.
- Compute preamble pool size: N_p = cbPreamblesPerSSB × numSSBsPerRACH must satisfy P(collision|k_P95) ≤ 1% (§12.5 formula). Verify at busy-hour load.
- Check L.RA.Msg2Rx/PreMsg1 ≥ 0.95: Values below this in the absence of contention indicate RF coverage failure at PRACH frequency. Investigate path loss, preambleReceivedTargetPower, and antenna bearing.
- Check L.RA.Msg4RxConFail/Msg4Rx ≤ 0.02: Values above 5% indicate preamble pool exhaustion. Expand RACH occasions or cbPreamblesPerSSB before next busy hour.
- Monitor T300 failures separately from coverage: L.RRC.ConnSetupFail.T300 correlates with UL congestion (L.Thr.Vol.DL), NOT with RSRP. Do not increase T300 without addressing the UL congestion root cause first.
- Validate SSB-to-RACH-occasion mapping: Per TS 38.331 §6.3.3 ssb-perRACH-OccasionAndCBPreamblesPerSSB, each active SSB must map to at least one RACH occasion. SSBs without RACH occasions will show zero Msg2Rx in that beam direction.
- Verify ra-ResponseWindow for large cells: The RAR window must exceed the round-trip propagation time to cell edge plus gNB scheduling delay (typically 2 ms for 23 km cell). Use ra-ResponseWindow ≥ sl20 for cells > 15 km.
- Check L.RRC.ConnReject/ConnSetupAtt ≤ 0.005: Higher values indicate overload algorithm firing prematurely or AC barring misconfiguration. Review overload thresholds against actual PRB utilisation.
- IASR = RASR × RRCSSR — treat as product: A 3 pp degradation in both components yields a 5.9 pp IASR shortfall. Always compute IASR from the product; do not use either component alone as the headline KPI.
- Confirm Layer 5 (Core/NGAP) when cluster-wide: If IASR degrades across all cells on a gNB or across a pool sharing an AMF, check NGAP Initial Context Setup Failure/Request and SCTP association stability before doing any radio parameter changes.
Cross-Reference to Other Chapters
| Topic | Reference Chapter | Key Section |
|---|---|---|
| 4-step RACH procedure and counter taxonomy | Chapter 9 | §9.3 Msg1–Msg4 state machine; Table 9.2 counter mapping |
| PRACH configuration parameters (prach-ConfigurationIndex, NCS, rootSequenceIndex) | Chapter 10 | §10.2 PRACH occasion mapping; §10.4 NCS and ZC sequence design |
| RRC Setup procedure detail (T300 mechanism, IE content) | Chapter 11 | §11.4 T300 timer; §11.6 connEstFail parameters; Table 11.4 |
| RSRP/RSRQ measurement for coverage assessment | Chapter 5 | §5.2 measurement definitions; §5.5 coverage threshold planning |
| SSB beam sweeping and SSB-to-RACH-occasion mapping | Chapter 6 | §6.4 SSB index; §6.5 beam-specific RACH configuration |
Chapter Summary
Chapter 12 completes Part III by providing an executable root-cause analysis framework for Initial Access degradation. The central insight is that IASR = RASR × RRCSSR is a product — both components must be monitored simultaneously and neither can be inferred from the other. The five-layer RCA framework (RF/Coverage → RACH Config → Contention → RRC → Core/NAS) provides a deterministic path from any observed KPI degradation to a specific parameter action, with each decision node grounded in a TS 28.552 counter ratio and its empirical threshold. The end-to-end case study demonstrates how a single misconfiguration (PRACH Format 0 in a 23 km cell) can reduce IASR by 28 percentage points while leaving RRCSSR completely unaffected — highlighting the diagnostic power of isolating RASR before investigating RRC-layer metrics. With the tools developed across Chapters 9–12, the engineer can resolve any Initial Access failure pattern systematically, traceable to the exact TS 38.321, TS 38.331, and TS 28.552 clause that governs the affected mechanism.
Measurement Events A1–A6 / B1–B2
The complete 3GPP trigger framework for intra-frequency, inter-frequency, and inter-RAT handover: exact entering/leaving inequalities, time-to-trigger mechanics, parameter optimization, and TS 28.552 counter-based HOSR analysis
3GPP TS 38.331 §5.5 · TS 38.215 · TS 38.213 · TS 28.552 · TS 28.554Chapter Learning Objectives
After completing this chapter, you will be able to:
- State the exact entering and leaving condition inequalities for all eight measurement events (A1–A6, B1, B2) from TS 38.331 §5.5.4.4 through §5.5.4.10, including all offset and hysteresis terms
- Explain the unified trigger model — measurement quantity, hysteresis band, time-to-trigger window — and calculate whether a trigger fires given RSRP/RSRQ/SINR time series data
- Design a co-configured A1/A2 pair with correct threshold separation to prevent oscillation, and compute the minimum A1–A2 gap for a given hysteresis value
- Apply the A3 offset equation to compute the exact RSRP crossing point at which HO triggers, accounting for frequency offset (Ofn/Ofs) and cell individual offset (Ocn/Ocs)
- Identify the A5 dual-condition AND/OR gate and explain why it prevents unnecessary HO when the serving cell is still above the coverage floor
- Distinguish A4 from A3 and articulate why A4 is preferred for capacity-driven inter-frequency offload scenarios
- Describe the A1/A2/A3 gap-activation chain and diagnose the "TTT reset on A1" failure mode using TS 28.552 counters
- Compute HOSR from L.HO.ExecSucc / L.HO.Att and decompose failure contributions from preparation, timeout, and radio link failure sub-counters
§13.1 Introduction — The Measurement Framework
Mobility in 5G NR is driven entirely by UE-reported measurements. The gNB configures which cells to measure, which quantities to evaluate, and which thresholds will trigger a report — but it is the UE that monitors the radio environment continuously and fires measurement reports when configured conditions are met. The network then uses those reports to execute handover, add/remove secondary cells, or adjust measurement activity. TS 38.331 §5.5 specifies the complete measurement and event-triggered reporting framework.
There are two families of events. A-events (A1 through A6) apply within a single RAT — either intra-frequency (same carrier) or inter-frequency (different NR carrier). B-events (B1 and B2) apply across RAT boundaries, covering scenarios such as NR→LTE fallback. All eight events share a common mathematical skeleton: a measurement quantity is compared against a threshold, modified by an offset and a hysteresis band, and the resulting condition must hold continuously for a configurable time-to-trigger (TTT) before a MeasurementReport RRC message is sent.
UE Measurement Quantities
Per TS 38.215, the three primary per-cell quantities available for event evaluation are:
- SS-RSRP — Reference Signal Received Power based on SSB; range −156 to −31 dBm; defined in TS 38.215 §5.1.1
- SS-RSRQ — Reference Signal Received Quality = N × RSRP / RSSI; range −43 to 20 dB; defined in TS 38.215 §5.1.3
- SS-SINR — Signal-to-Interference-plus-Noise Ratio; range −23 to 40 dB; defined in TS 38.215 §5.1.5
The measurement object determines which frequency (or RAT) is measured; the report configuration determines which event and which quantity trigger the report. Measurement gaps (configured via measGapConfig) may be required when the UE cannot measure a frequency while transmitting/receiving on the serving cell, though gap-less measurements are possible in some FR1 configurations when the UE supports multiple Rx chains.
"The UE shall, when a measurement object is configured and the associated measurement quantities are available, evaluate the event trigger conditions specified in the measurement report configuration. The UE shall not consider a cell for event evaluation unless it is included in the cell list of the measurement object, or if the cell list is empty, it shall consider all detected cells on the associated carrier frequency." — TS 38.331 §5.5.3.1
§13.2 The Unified Trigger Equation
Despite the diversity of use cases, all eight events share the same fundamental trigger model from TS 38.331 §5.5.4.1. A measurement quantity M is evaluated against a threshold expression; when the entering condition is satisfied continuously for the configured TTT period, the UE sends a MeasurementReport. When the leaving condition is satisfied (typically the mirror inequality), TTT resets and reporting ceases.
General Entering/Leaving Structure
For events with a single threshold comparison (A1, A2, A4, B1):
Leaving: Ms ∓ Hys < or > Thresh
For events with a relative serving-vs-neighbour comparison (A3, A5, A6, B2) the offset terms appear explicitly. The complete TTT semantics are stated in TS 38.331 §5.5.4.1:
"The UE shall initiate, at the moment when the entering condition is fulfilled for the concerned cell, a time-to-trigger timer for that cell. The UE shall cancel the time-to-trigger timer for a cell if the cell no longer satisfies the entering condition before the time-to-trigger timer expires. If the time-to-trigger timer expires for a cell, the UE shall send a MeasurementReport message." — TS 38.331 §5.5.4.1
Key TTT values configurable in RRCReconfiguration per TS 38.331 §6.3.5: 0, 40, 64, 80, 100, 128, 160, 256, 320, 480, 512, 640, 1024, 1280, 2560, 5120 ms. Hysteresis is configurable from 0 to 30 dB in 0.5 dB steps.
| Parameter (IE Name) | Range | Step | Default | Effect on Mobility |
|---|---|---|---|---|
| hysteresis | 0–30 dB | 0.5 dB | 0 dB | Wider band → fewer reports; prevents ping-pong |
| timeToTrigger | 0–5120 ms | Discrete set | 0 ms | Longer TTT → delayed HO; reduces false triggers in fast fading |
| a3-Offset (A3 only) | −30 to +30 dB | 0.5 dB | 0 dB | Positive → conservative (prefer serving); negative → aggressive HO |
| triggerQuantity | rsrp / rsrq / sinr | — | rsrp | SINR recommended for interference-limited scenarios |
| reportQuantity | rsrp / rsrq / sinr / none | — | rsrp | Determines what measurement is included in the report |
| maxReportCells | 1–8 | 1 | 1 | Number of neighbour cells reported simultaneously |
§13.3 Event A1 — Serving Cell Becomes Better Than Threshold
Event A1 fires when the serving cell measurement exceeds a configured threshold. Its primary use case is the deactivation of inter-frequency or inter-RAT measurement activity: when the UE is well-served, there is no need to expend measurement gaps searching for neighbours, and disabling that activity reduces both UE power consumption and scheduling inefficiency caused by gaps.
Exact Trigger Conditions (TS 38.331 §5.5.4.4)
Leaving condition: Ms + Hys < Thresh1
Where Ms is the measurement result of the serving cell (RSRP, RSRQ, or SINR as configured by triggerQuantity), expressed in dBm (RSRP), dB (RSRQ/SINR). The parameter Thresh1 maps to IE a1-Threshold in ReportConfigNR.
"Event A1 (Serving becomes better than threshold): The UE shall initiate the time-to-trigger whenever Ms − Hys > Thresh1, where Ms is the measurement result of the serving cell, Hys is the hysteresis parameter for this event, and Thresh1 is the threshold parameter for this event." — TS 38.331 §5.5.4.4
| Parameter (IE) | Typical Value | Range | Optimization Guidance |
|---|---|---|---|
| a1-Threshold (RSRP) | −95 dBm | −156 to −31 dBm | Set 6–8 dB above A2-Threshold to create stable gap |
| hysteresis | 2 dB | 0–30 dB, 0.5 dB steps | Minimum 2 dB; wider if RSRP variance is high (urban) |
| timeToTrigger | 160 ms | 0–5120 ms | 160–320 ms; longer reduces measurement overhead churn |
| triggerQuantity | rsrp | rsrp/rsrq/sinr | Match to A2 triggerQuantity; must be same quantity |
Example 13.1 — A1 Trigger Calculation
Configuration: a1-Threshold = −95 dBm, hysteresis = 2 dB, TTT = 160 ms
Serving cell RSRP = −91 dBm (stable for 200 ms)
Entering test: Ms − Hys = −91 − 2 = −93 dBm > Thresh1 (−95 dBm) → TRUE
TTT = 160 ms satisfied (200 ms > 160 ms) → A1 fires; inter-freq measurement deactivated
Leaving test: Ms + Hys = −91 + 2 = −89 dBm < −95 dBm → FALSE → A1 remains active
Now RSRP degrades to −97 dBm: Ms + Hys = −97 + 2 = −95 dBm = Thresh1 → at boundary; must fall strictly below −95 to leave. At −98 dBm: −98 + 2 = −96 < −95 → leaving condition met.
§13.4 Event A2 — Serving Cell Falls Below Threshold
Event A2 is the complement of A1 and is the most consequential event in the mobility chain. When A2 fires, the gNB activates the inter-frequency or inter-RAT measurement objects — opening the "gate" for A3, A4, A5, or B1/B2 to trigger. Without A2 activating the measurement object, the UE has no instruction to measure neighbouring frequencies and will never send the neighbour reports needed for inter-frequency handover.
Exact Trigger Conditions (TS 38.331 §5.5.4.5)
Leaving condition: Ms − Hys > Thresh2
A1/A2 Co-Configuration Constraint
A1 and A2 must always be co-configured when managing inter-frequency measurement activity. The mandatory relationship is:
Recommended gap: A1-Thresh − A2-Thresh ≥ 2 × max(Hys_A1, Hys_A2)
If the gap is too small, a UE sitting near the threshold boundary will oscillate: A2 fires → gNB activates inter-freq → RSRP fluctuates upward → A1 fires → gNB deactivates inter-freq → RSRP drops → A2 fires again. This ping-pong loop creates measurement overhead without producing useful handover reports.
Example 13.2 — A1/A2 Ping-Pong Analysis
Scenario A (problematic): A1-Thresh = −97, A2-Thresh = −99, Hys = 2 dB each
A2 entering: Ms + 2 < −99 → Ms < −101 dBm
A2 leaving: Ms − 2 > −99 → Ms > −97 dBm
A1 entering: Ms − 2 > −97 → Ms > −95 dBm
Gap between A2 leaving (−97 dBm) and A1 entering (−95 dBm) = 2 dB → RSRP ranging −99 to −95 dBm causes continuous A2 fire/A1 fire cycle. Result: measurement activation storms.
Scenario B (correct): A1-Thresh = −93, A2-Thresh = −101, Hys = 2 dB each
Gap = 8 dB. A2 leaving threshold = −99 dBm. A1 entering threshold = −91 dBm. A UE must recover by 8 dB from A2 entry before A1 fires. Stable operation guaranteed.
Rule: A1-Thresh − A2-Thresh > 4 × Hys (minimum 6 dB recommended in urban macro deployments)
§13.5 Event A3 — Neighbour Becomes Better Than Serving + Offset
Event A3 is the primary intra-frequency handover trigger. It compares the neighbour cell measurement to the serving cell measurement, adjusted by frequency-specific and cell-specific offsets plus the a3-Offset parameter. This relative comparison makes A3 robust to absolute RSRP level — a UE deep in a building at −115 dBm will still trigger A3 when the neighbour exceeds the serving cell by the configured margin, whereas an absolute-threshold event (A4) would require separate calibration for such edge conditions.
Exact Trigger Conditions (TS 38.331 §5.5.4.6)
Mn + Ofn + Ocn − Hys > Ms + Ofs + Ocs + Off
Leaving condition:
Mn + Ofn + Ocn + Hys < Ms + Ofs + Ocs + Off
Where the terms are defined in TS 38.331 §5.5.4.6 as:
| Symbol | IE Name | Meaning | Typical Value |
|---|---|---|---|
| Mn | — | Measurement result of neighbour cell (RSRP/RSRQ/SINR) | Variable |
| Ms | — | Measurement result of serving cell (same quantity as Mn) | Variable |
| Ofn | offsetFreq (neighbour MO) | Frequency-specific offset for neighbour carrier | 0 dB |
| Ofs | offsetFreq (serving MO) | Frequency-specific offset for serving carrier | 0 dB |
| Ocn | cellIndividualOffset (neighbour) | Cell-specific offset applied to neighbour; overrides Ofn per cell | 0 dB |
| Ocs | cellIndividualOffset (serving) | Cell-specific offset applied to serving cell | 0 dB |
| Off | a3-Offset | Signed offset defining HO margin: positive = conservative | 3 dB |
| Hys | hysteresis | Symmetrical hysteresis applied to neighbour measurement | 1 dB |
Example 13.3 — A3 HO Trigger Computation
Configuration: a3-Offset = 3 dB, hysteresis = 1 dB, TTT = 100 ms, Ofn = Ofs = Ocn = Ocs = 0
At time t: Ms = −90 dBm, Mn = −88 dBm
Entering test: Mn + 0 + 0 − 1 > Ms + 0 + 0 + 3
−88 − 1 > −90 + 3 → −89 > −87 → FALSE → no trigger
At time t+500 ms: Ms = −93 dBm (decreasing), Mn = −87 dBm (stable)
−87 − 1 > −93 + 3 → −88 > −90 → TRUE → TTT starts
After 100 ms (TTT), if condition still holds: A3 MeasurementReport sent
HO trigger crossover point: Mn − 1 = Ms + 3 → Mn − Ms = 4 dB. Neighbour must exceed serving by 4 dB (= Hys + Off = 1 + 3) to enter trigger.
Now with Ocn = −3 dB (negative CIO discourages HO to this neighbour):
Mn + Ocn − Hys > Ms + Off → Mn − 3 − 1 > Ms + 3 → Mn − Ms > 7 dB → much harder to trigger
§13.6 Event A4 — Neighbour Becomes Better Than Absolute Threshold
Event A4 triggers when the neighbour cell measurement exceeds an absolute threshold, regardless of the serving cell quality. This distinguishes it fundamentally from A3: A3 measures the gap between neighbour and serving; A4 measures the neighbour against a fixed floor. A4 is the preferred trigger for capacity-driven inter-frequency offload, where the network wants to push UEs to a second NR carrier whenever that carrier is strong enough, irrespective of whether the serving cell is also strong.
Exact Trigger Conditions (TS 38.331 §5.5.4.7)
Leaving condition: Mn + Ofn + Ocn + Hys < Thresh4
The absence of Ms in the A4 equation means the UE can trigger A4 even when the serving cell is strong. This is intentional for load-balancing use cases: if a 3.5 GHz NR layer is congested, the operator configures A4 with Thresh4 = −105 dBm on a 700 MHz layer. Any UE that sees the 700 MHz cell above −105 dBm will report it, and the gNB can handover load to the uncongested layer without waiting for the 3.5 GHz serving cell to degrade.
Example 13.4 — A4 Inter-Frequency Offload
Scenario: 3.5 GHz (n78) serving cell congested; 700 MHz (n28) layer available for offload.
A4 configuration on n28 measurement object: Thresh4 = −108 dBm, hysteresis = 2 dB, TTT = 256 ms
UE measures n28 RSRP = −104 dBm (strong coverage)
n78 serving RSRP = −78 dBm (also strong — UE would NOT trigger A3 for n28)
A4 entering test: Mn + Ofn + Ocn − Hys = −104 + 0 + 0 − 2 = −106 dBm > Thresh4 (−108 dBm) → TRUE
After TTT = 256 ms: A4 MeasurementReport sent. gNB evaluates load and triggers HO to n28.
If A3 were used instead: Mn − Ms − Off = −104 − (−78) − 3 = −29 dB < 0 → A3 would NEVER trigger. A4 is the only event suited to capacity offload.
§13.7 Event A5 — Serving Falls Below T1 AND Neighbour Exceeds T2
Event A5 combines a coverage floor condition on the serving cell with a minimum quality condition on the target cell into a single AND gate. It addresses a key failure mode of A4: if only an absolute neighbour threshold is tested (A4), the UE may trigger HO to a neighbour that is stronger than Thresh4 but only marginally — while the serving cell is still perfectly adequate. A5 prevents this by requiring both that the serving cell has deteriorated below T1 and the neighbour is above T2.
Exact Trigger Conditions (TS 38.331 §5.5.4.8)
(Ms + Hys < Thresh5a) AND (Mn + Ofn + Ocn − Hys > Thresh5b)
Leaving condition (EITHER is sufficient to leave):
(Ms − Hys > Thresh5a) OR (Mn + Ofn + Ocn + Hys < Thresh5b)
The asymmetry in the leaving condition is deliberate: the OR gate means the UE exits the triggered state as soon as either the serving cell recovers or the neighbour weakens. This prevents the UE from remaining in a "pending report" state when the situation has already resolved.
| Parameter | Typical Value | Rationale |
|---|---|---|
| a5-Threshold1 (serving floor) | −115 dBm RSRP | Below this, serving cell coverage is marginal; HO warranted |
| a5-Threshold2 (neighbour floor) | −108 dBm RSRP | Neighbour must be substantially better than serving floor |
| hysteresis | 1–2 dB | Prevents immediate re-trigger if RSRP hovers at threshold |
| timeToTrigger | 100–320 ms | 100 ms for fast-moving UEs; 320 ms for stationary/slow |
| T2 − T1 gap | ≥ 7 dB | Ensures neighbour is meaningfully better than coverage floor |
§13.8 Event A6 — Secondary Cell Neighbour Becomes Better Than SCell + Offset
Event A6 applies exclusively to Carrier Aggregation (CA) configurations. It evaluates a neighbouring cell on a secondary component carrier frequency against the currently serving SCell on that same frequency. Its use case is SCell mobility: when a better SCell candidate is detected, A6 triggers a report allowing the gNB to execute an SCell change or addition procedure.
Exact Trigger Conditions (TS 38.331 §5.5.4.9)
Leaving condition: Mn + Ocn + Hys < Ms + Ocs + a6-Offset
Note that A6 does not include frequency offsets (Ofn/Ofs) because both cells are on the same secondary carrier frequency by definition — offset terms collapse. The a6-Offset plays the same role as a3-Offset in A3: positive value requires the neighbour to be substantially better before triggering, negative value makes the trigger more aggressive.
"Event A6 (Neighbour becomes offset better than SCell): The UE shall initiate the time-to-trigger whenever Mn + Ocn − Hys > Ms + Ocs + a6-Offset, where Mn is the measurement result of the neighbour cell, Ms is the measurement result of the serving SCell, Ocn is the cell individual offset of the neighbour cell, Ocs is the cell individual offset of the SCell, and a6-Offset is the offset parameter for this event." — TS 38.331 §5.5.4.9
§13.9 Events B1 and B2 — Inter-RAT Triggers
B-events measure cells on non-NR RATs. The measurement object for B-events specifies the RAT type: eutra (LTE), utra-FDD (UMTS), or in EN-DC scenarios, a secondary NR cell configured from the LTE master. The measurement quantity for LTE neighbours is RSRP or RSRQ as defined in TS 38.215 §5.1 (which references LTE RSRP per TS 36.214 when measuring EUTRA cells).
Event B1 (TS 38.331 §5.5.4.10)
Leaving condition: Mn + Ofn + Hys < Thresh_B1
B1 triggers when a neighbouring cell on another RAT exceeds an absolute threshold. Unlike A4, there is no serving cell term — B1 is purely about whether the other-RAT cell is strong enough to accept a handover. B1 is appropriate for coverage-triggered fallback when the NR serving cell is still acceptable but the operator wants to pre-position the UE for inter-RAT HO.
Event B2 (TS 38.331 §5.5.4.11)
(Ms + Hys < Thresh_B2a) AND (Mn − Hys > Thresh_B2b)
Leaving condition (EITHER):
(Ms − Hys > Thresh_B2a) OR (Mn + Hys < Thresh_B2b)
B2 is the inter-RAT equivalent of A5. Its primary deployment scenario is NR → LTE fallback when NR coverage has degraded below a coverage floor (Thresh_B2a) while the LTE cell is adequate (Thresh_B2b). This is the essential mobility anchor for EN-DC deployments: if the NR layer fails, B2 ensures the UE falls back to LTE rather than losing connectivity.
"Event B2 (PCell becomes worse than threshold1 and inter-RAT neighbour becomes better than threshold2): The UE shall initiate the time-to-trigger whenever Ms + Hys < Thresh_B2a and Mn − Hys > Thresh_B2b. The UE shall stop the time-to-trigger if Ms − Hys > Thresh_B2a or Mn + Hys < Thresh_B2b." — TS 38.331 §5.5.4.11
| Event | Parameter | Typical Value | Notes |
|---|---|---|---|
| B2 (NR→LTE fallback) | Thresh_B2a (NR serving floor) | −118 dBm RSRP | Must be worse than A2 to avoid premature fallback |
| Thresh_B2b (LTE neighbour min) | −110 dBm RSRP | LTE RSRP; 8 dB above B2a to ensure quality | |
| TTT | 256 ms | Longer TTT prevents oscillation in fringe zones | |
| B1 (LTE opportunistic) | Thresh_B1 | −105 dBm RSRP | Strong LTE cell required to justify inter-RAT HO |
| hysteresis | 2 dB | Prevents false triggers from short LTE detections |
§13.10 The A1/A2/A3 Interaction — The Gap-Activation Chain
In most NR deployments, inter-frequency handover is orchestrated through a three-event chain: A2 activates the inter-frequency measurement object, A3 monitors the activated neighbour and triggers the handover report, and A1 deactivates the measurement object once the serving cell recovers. Understanding the interaction between these three events — particularly the "TTT reset on A1" failure mode — is critical for diagnosing mobility failures.
Normal Flow
- UE in RRC_CONNECTED on serving cell. Only intra-frequency measurement object active.
- Serving RSRP degrades → A2 fires → gNB sends RRCReconfiguration adding inter-freq measurement object.
- UE begins measuring inter-freq neighbours (with measurement gaps if needed).
- Neighbour RSRP exceeds serving by a3-Offset + Hys → A3 entering condition met → TTT starts.
- TTT expires → A3 MeasurementReport sent → gNB executes HO.
TTT Reset on A1 — The Critical Failure Mode
If the serving cell RSRP fluctuates (e.g., fast fading, temporary obstruction removal), the following sequence can occur mid-flow:
- A2 has fired; A3 TTT is counting (e.g., 60 ms elapsed of 100 ms TTT).
- Serving RSRP briefly recovers above A1 entering threshold.
- A1 fires → gNB sends RRCReconfiguration removing inter-freq measurement object.
- A3 TTT is cancelled (measurement object no longer configured → event evaluation stops).
- HO never happens. UE continues on degraded serving cell.
- RSRP drops again → A2 fires again → cycle repeats.
The counter signature: L.HO.Att stays low despite persistent A2 firing, and per-cell RSRP hover near the A2 threshold. The fix is to increase the A1/A2 separation gap — making A1 substantially harder to meet than A2 recovery, so A1 does not fire during the brief RSRP fluctuations that are normal in fast-fading channels.
§13.11 TS 28.552 Measurement Event Counters
Measurement events ultimately drive handover attempts, which are tracked by the L.HO.* counter family in TS 28.552. The counters quantify every stage of the handover process — from the first attempt (triggered by a MeasurementReport) through preparation (X2/Xn), execution (random access on target), to success or failure. Understanding the counter hierarchy is prerequisite to computing HOSR and decomposing failure modes.
HOSR Definition (TS 28.552)
Inter-Freq HOSR = L.HO.ExecSucc.InterFreq / L.HO.Att.InterFreq × 100%
Target HOSR ≥ 95% (intra-freq); ≥ 93% (inter-freq)
| Counter | Increment Condition | Event Linkage | Failure Mode Indicated |
|---|---|---|---|
| L.HO.Att.IntraFreq | gNB initiates intra-frequency HO preparation (HO Request sent) | A3 MeasReport received | Low value → A3 under-triggering (TTT too long, offset too high) |
| L.HO.Att.InterFreq | gNB initiates inter-frequency HO preparation | A3/A4/A5 on inter-freq object | Low value → A2 gate not opening or inter-freq meas not configured |
| L.HO.PrepSucc | HO Request Acknowledge received from target | — | PrepSucc/Att low → X2/Xn admission failure or target overload |
| L.HO.ExecSucc.IntraFreq | gNB receives RRCReconfigurationComplete from UE on target | — | ExecSucc/PrepSucc low → RACH failure on target, T304 expiry |
| L.HO.ExecFail.RadioLinkFailure | T310 expiry during HO execution (RLF on target or source) | — | TTT too long; UE has already degraded before HO completes |
| L.HO.ExecFail.Timeout | T304 expiry (HO completion timer on UE) | — | Target cell too weak; RACH fails; a3-Offset too conservative |
| L.HO.InterFreq.Att | Inter-frequency HO attempt (gate opened by A2) | A2 gate active | High Att + low ExecSucc → TTT reset on A1; threshold misconfiguration |
| L.HO.PingPong | UE returns to source cell within 1 s after HO | A3 too aggressive | High value → a3-Offset or TTT too small; increase both |
Example 13.5 — HOSR Decomposition from Counter GP Data
A cell in a 60-minute GP reports the following L.HO.* counters:
- L.HO.Att.IntraFreq = 1,840
- L.HO.PrepSucc = 1,790
- L.HO.ExecSucc.IntraFreq = 1,652
- L.HO.ExecFail.Timeout = 98
- L.HO.ExecFail.RadioLinkFailure = 40
- L.HO.PingPong = 230
Preparation Success Rate: 1,790 / 1,840 = 97.3% → acceptable
Execution Success Rate: 1,652 / 1,790 = 92.3% → below 95% target
Overall HOSR: 1,652 / 1,840 = 89.8% → severely degraded
Timeout failures: 98 / (1,840 − 1,652) = 52.1% of failures are T304 timeouts → target cell too weak at HO trigger point. Action: increase a3-Offset from 1 dB to 3 dB (require neighbour to be stronger before triggering).
Ping-pong rate: 230 / 1,652 = 13.9% → excessively high. TTT too short. Action: increase TTT from 40 ms to 100 ms.
§13.12 Parameter Optimization Reference
The following table provides a consolidated parameter optimization guide for all eight measurement events, covering the primary tuning parameters, their typical values, and the directional impact on HOSR, ping-pong rate, and measurement overhead.
| Event | Key Parameter | Typical Value | Increase Effect | Decrease Effect | Primary KPI Impact |
|---|---|---|---|---|---|
| A1 | a1-Threshold | −95 dBm RSRP | Deactivates meas earlier (higher RSRP) → less measurement overhead | Keeps meas active longer → more power consumption | UE battery, scheduling gaps |
| hysteresis | 2 dB | Harder to deactivate → more stable inter-freq meas | Easier deactivation → risk of A1/A2 oscillation | Measurement stability | |
| timeToTrigger | 160 ms | Delays deactivation → more complete measurement | Fast deactivation → TTT reset on A1 more likely | A3 completion rate | |
| A2 | a2-Threshold | −101 dBm RSRP | Opens inter-freq gate sooner (less serving degradation required) | Opens gate later → UE spends more time with weak serving before measuring | Inter-freq HOSR, RLF rate |
| A1−A2 gap | ≥ 6 dB | Wider gap → less oscillation → more stable measurement windows | Narrow gap → oscillation storms → increased signalling load | Measurement overhead, L.HO.Att stability | |
| A3 | a3-Offset | 3 dB | Higher offset → conservative HO → lower ping-pong, higher RLF risk | Lower offset → aggressive HO → higher ping-pong, lower RLF risk | HOSR, L.HO.PingPong |
| hysteresis | 1 dB | Wider band → fewer false triggers; reduce for indoor scenarios | Narrow band → frequent re-evaluation → signalling increase | L.HO.Att rate | |
| timeToTrigger | 100 ms | Longer → filters fast fading → fewer unnecessary HOs | Shorter → quick response → risk of fading-triggered HO | Ping-pong rate, RLF | |
| A4 | a4-Threshold | −108 dBm | Higher → more selective offload; fewer UEs moved to target layer | Lower → aggressive offload; risk of HO to marginal target | Inter-freq offload rate |
| A5 | a5-Threshold1 (serving floor) | −115 dBm | Higher floor → HO triggers earlier (serving less degraded) | Lower floor → HO only at near-outage; risk of RLF before HO | Coverage HO rate, RLF |
| a5-Threshold2 (nbr min) | −108 dBm | Higher → stricter neighbour requirement; fewer unnecessary HOs | Lower → more candidates; risk of HO to weak target | HOSR execution success | |
| A6 | a6-Offset | 3 dB | Conservative SCell change; stable but slow adaptation | Aggressive SCell change; responsive to path changes | CA throughput stability |
| B2 | Thresh_B2a (NR floor) | −118 dBm | Higher → more LTE fallback; NR→LTE too aggressive | Lower → UE stays on NR deeper; risk of connectivity loss | NR availability, LTE fallback rate |
| Event | Entering Condition (abbreviated) | Spec Section | Primary Use Case |
|---|---|---|---|
| A1 | Ms − Hys > Thresh1 | §5.5.4.4 | Deactivate inter-freq / inter-RAT measurement |
| A2 | Ms + Hys < Thresh2 | §5.5.4.5 | Activate inter-freq / inter-RAT measurement gate |
| A3 | Mn + Ofn + Ocn − Hys > Ms + Ofs + Ocs + Off | §5.5.4.6 | Primary intra-frequency handover trigger |
| A4 | Mn + Ofn + Ocn − Hys > Thresh4 | §5.5.4.7 | Inter-frequency capacity offload (absolute threshold) |
| A5 | (Ms + Hys < Thresh5a) AND (Mn + Ofn + Ocn − Hys > Thresh5b) | §5.5.4.8 | Coverage-triggered inter-frequency HO (dual-condition) |
| A6 | Mn + Ocn − Hys > Ms + Ocs + a6-Offset | §5.5.4.9 | CA secondary cell change / addition |
| B1 | Mn + Ofn − Hys > Thresh_B1 | §5.5.4.10 | Inter-RAT coverage-based handover (LTE/UMTS) |
| B2 | (Ms + Hys < Thresh_B2a) AND (Mn − Hys > Thresh_B2b) | §5.5.4.11 | NR → LTE fallback when NR coverage insufficient |
Example 13.6 — End-to-End Parameter Audit Workflow
A cell cluster shows inter-freq HOSR = 87% (target ≥ 93%) with L.HO.ExecFail.Timeout = 15% of attempts. Use the following audit sequence:
- Check A2 gate stability: Is L.HO.Att.InterFreq / (cell minutes) ratio stable or oscillating? Oscillation → check A1/A2 gap. Gap < 6 dB → increase A1-Thresh by 4–6 dB.
- Check A3 offset vs. timeout pattern: High ExecFail.Timeout → neighbour too weak at HO trigger point. Increase a3-Offset from current value by 2–3 dB. Verify neighbour RSRP at trigger time ≥ −105 dBm.
- Check TTT vs. ping-pong: L.HO.PingPong / L.HO.ExecSucc > 5% → TTT too short. Increase TTT from 64 ms to 100 ms or 128 ms.
- Verify measurement gap configuration: If A2 fires but L.HO.Att.InterFreq remains zero → inter-freq measurement object may not include correct neighbour PCI list, or measGapConfig not enabled for target frequency band.
- Re-evaluate after change: Allow 2 GP (30 min) for counter stabilization. Compare L.HO.ExecSucc / L.HO.Att before and after. Document results in optimization log.
"The gNB may configure the UE with one or more measurement objects and one or more report configurations. A measurement object specifies which cells to measure on a carrier frequency; a report configuration specifies the trigger criteria and reporting content. The association between measurement objects and report configurations is flexible: multiple report configurations may be associated with one measurement object, and one report configuration may be associated with multiple measurement objects." — TS 38.331 §5.5.2.1
Chapter Summary
The eight measurement events defined in TS 38.331 §5.5.4 form the complete trigger vocabulary for NR mobility. A-events (A1–A6) operate within the NR RAT, with A1/A2 managing measurement activation, A3 providing the primary relative-threshold handover trigger, A4/A5 offering absolute-threshold and dual-condition variants, and A6 handling SCell changes in CA configurations. B-events (B1/B2) extend the same framework across RAT boundaries for inter-RAT fallback scenarios. All events share the entering-condition / TTT / leaving-condition model from §5.5.4.1; the differences lie only in which measurements are compared and how offset and hysteresis terms are applied. HOSR analysis using the L.HO.* counter family from TS 28.552 provides the operational feedback loop for validating parameter choices and diagnosing mobility failures in live networks.
Intra-gNB Handover
Complete 3GPP procedure analysis: RRC Reconfiguration mechanics, T304 timer, RACH-on-HO, HOSR decomposition, ping-pong detection, too-early/too-late classification, CIO application, and TS 28.552 counter-based optimization — all from first principles
3GPP TS 38.331 §5.3.5 · TS 38.423 · TS 37.340 · TS 28.552 · TS 28.554Chapter Learning Objectives
After completing this chapter, you will be able to:
- Distinguish intra-gNB, inter-gNB Xn, and inter-gNB N2/NGAP handover procedures and articulate why intra-gNB HO involves no Xn signaling and no core-network path switch
- Trace the complete TS 38.331 §5.3.5 intra-gNB HO message sequence — from A3 event report through RRC Reconfiguration with mobilityControlInfo to RRC Reconfiguration Complete — step by step
- Explain the role of T304 timer, calculate the consequences of T304 expiry, and map failure events to TS 28.552 counters L.HO.ExecFail.T304
- Describe dedicated RACH during HO (rach-ConfigDedicated) and explain how it eliminates RA-RNTI assignment and accelerates timing alignment on the target cell
- Compute HOSR from L.HO.ExecSucc / L.HO.Att and perform full four-stage decomposition of failure contributions
- Detect ping-pong handovers using L.HO.PingPong counter and diagnose root causes in terms of a3-Offset, TTT, and cell individual offset (CIO)
- Classify RLF events as too-early or too-late handover using the RLF report framework of TS 38.331 §5.3.10 and prescribe parameter corrections
- Apply cell individual offset (CIO) correctly in A3 entering conditions and quantify its effect on HO boundary position
§14.1 Introduction — Handover Types in 5G NR
Handover (HO) in 5G NR is the procedure by which the network moves a UE's serving cell from one cell to another while maintaining radio connectivity. Unlike idle-mode cell selection — which is entirely UE-autonomous — connected-mode handover is network-controlled: the source gNB decides when to execute HO and prepares the target before instructing the UE to move. The exact signaling path depends on the relationship between source and target nodes, giving rise to three architecturally distinct handover types.
Intra-gNB handover occurs when source and target cells are served by the same gNB (same CU and same or different DU). Because the serving gNB owns both cells, no inter-node signaling is required: the procedure reduces to a single RRC Reconfiguration message carrying mobilityControlInfo. There is no Xn-AP exchange, no path switch to the 5G Core, and no data forwarding between nodes. This makes intra-gNB HO the fastest and most reliable handover variant, with interruption times typically under 30 ms.
Inter-gNB handover via Xn (TS 38.423) applies when source and target are different gNBs connected by an Xn interface. The source gNB sends a HANDOVER REQUEST over Xn, receives HANDOVER REQUEST ACKNOWLEDGE, then issues RRC Reconfiguration to the UE. After the UE completes HO, the target gNB sends a PATH SWITCH REQUEST to the AMF to redirect the N3 data path from the source UPF anchor to the target. Data forwarding from source to target ensures minimal packet loss during the interruption window.
Inter-gNB handover via N2/NGAP (TS 38.413) is used when the Xn interface is not established between source and target. All preparation signaling is routed through the AMF: source sends HANDOVER REQUIRED (N2), AMF sends HANDOVER REQUEST to target, target responds with HANDOVER REQUEST ACKNOWLEDGE, and AMF relays the transparent container back to the source in HANDOVER COMMAND. This path adds AMF processing latency and is therefore reserved for fallback scenarios.
This chapter focuses exclusively on intra-gNB handover, which is the dominant HO type in dense NR deployments where a single gNB serves dozens of cells. Understanding its mechanics — RRC Reconfiguration structure, T304 timer behaviour, dedicated RACH, and failure counters — is prerequisite to diagnosing HOSR degradation and tuning mobility parameters.
| Property | Intra-gNB | Inter-gNB Xn | Inter-gNB N2/NGAP |
|---|---|---|---|
| Governing spec | TS 38.331 §5.3.5 | TS 38.423 | TS 38.413 |
| Inter-node signaling | None | Xn-AP | NGAP via AMF |
| Core involvement | None | Path switch (AMF/UPF) | Full NGAP HO |
| Data forwarding | Not needed | Required (indirect/direct) | Required (indirect) |
| Typical interruption | 20–30 ms | 40–60 ms | 80–120 ms |
| Expected HOSR | ≥ 99.5 % | ≥ 99.0 % | ≥ 98.5 % |
| UE behavior on failure | T304 → RRC Re-est. | T304 → RRC Re-est. | T304 → RRC Re-est. |
§14.2 Intra-gNB HO Procedure (TS 38.331 §5.3.5)
The intra-gNB handover procedure is initiated when the gNB's HO decision logic — typically triggered by a measurement event report (A3, A5, or A6) from the UE — determines that a cell served by the same node provides better radio conditions. Because source and target cells are co-located within the gNB, no admission control exchange with a remote node is needed: the gNB simply verifies that the target cell has sufficient resources and immediately prepares the RRC Reconfiguration message.
"The UE shall perform the handover procedure, upon receiving an RRCReconfiguration message including the mobilityControlInfo, by: applying the value of the newUE-Identity as the C-RNTI; starting T304; synchronizing to the target PCell specified in targetPhysCellId … If T304 expires, the UE shall … initiate the RRC re-establishment procedure." — TS 38.331 §5.3.5.3
The four-step procedure is as follows:
Step 1 — HO Decision and RRC Reconfiguration. Upon receiving a MeasurementReport containing the trigger event, the gNB's HO algorithm selects the target cell and constructs an RRCReconfiguration message. The message includes the mobilityControlInfo IE, which carries: targetPhysCellId, t304 (timer value), newUE-Identity (the C-RNTI the UE will use on the target cell), radioResourceConfigCommon (SIB1-equivalent parameters for the target cell's common channels), and optionally rach-ConfigDedicated (a dedicated preamble assignment to avoid contention). The gNB transmits this message on the serving PDSCH using the current C-RNTI.
Step 2 — UE HO Execution. On receipt of the RRCReconfiguration, the UE: stores current radio configuration as a rollback reference; applies mobilityControlInfo settings; starts T304; detaches from the source cell (stops PDCP/RLC/MAC entities); tunes to the target cell's DL carrier frequency; and initiates random access on the target cell using either the dedicated preamble (if rach-ConfigDedicated was included) or the standard RACH procedure.
Step 3 — Random Access and Timing Alignment. The target cell responds with a Random Access Response (RAR) containing the Timing Advance command. Using the dedicated preamble (if assigned), the target cell can immediately resolve the UE identity without RA-RNTI — it issues a Temporary C-RNTI or directly uses the newUE-Identity. The UE sends the RRCReconfigurationComplete as the MSG3 payload (or in the subsequent scheduled transmission), using the newUE-Identity as its C-RNTI.
Step 4 — HO Completion. Upon receiving RRCReconfigurationComplete, the gNB confirms HO success and increments L.HO.ExecSucc. Because source and target are within the same gNB, no path switch is required: the UPF downlink F-TEID already points to this gNB's transport endpoint and no N2/N3 update is needed. The UE stops T304 and resumes normal operation on the target cell.
| IE Name | ASN.1 Container | Purpose | Typical Value |
|---|---|---|---|
| targetPhysCellId | mobilityControlInfo | PCI of target cell | 0–1007 |
| t304 | mobilityControlInfo | HO execution timer | ms500 (500 ms) typical |
| newUE-Identity | mobilityControlInfo | C-RNTI on target cell | 16-bit value |
| radioResourceConfigCommon | mobilityControlInfo | Target cell common config | RACH, PUCCH, SCS params |
| rach-ConfigDedicated | radioResourceConfigCommon | Dedicated preamble assignment | preambleIndex 0–63 |
| carrierFreq | mobilityControlInfo | Target DL ARFCN (if diff carrier) | NR-ARFCN |
§14.3 Random Access During Handover
When a UE executes a handover, it must acquire uplink timing alignment on the target cell before it can transmit the RRCReconfigurationComplete. This is achieved through a RACH procedure on the target cell. TS 38.331 §5.3.5.3 specifies two modes: dedicated (contention-free) and contention-based.
Dedicated RACH (contention-free). If the source gNB includes rach-ConfigDedicated in the RRCReconfiguration, it assigns the UE a specific preamble index in the PRACH resource configured for the target cell. Because only this UE transmits that preamble, the target cell can unambiguously associate the RA response with the incoming UE and can immediately assign the newUE-Identity as the active C-RNTI (rather than a temporary TC-RNTI). This eliminates the contention resolution step, reducing RACH latency by one TTI round trip.
Contention-based RACH. If no dedicated preamble is provided, the UE selects a preamble randomly from the target cell's PRACH configuration. The target cell responds with an RAR containing an RA-RNTI-addressed message. The UE then transmits MSG3 carrying its new C-RNTI (newUE-Identity) as the contention resolution identity. The gNB confirms identity via MSG4. This path takes 2–3 ms longer but requires no pre-coordination.
In both cases, the RAR provides the Timing Advance (TA) command. The TA value quantifies the round-trip propagation delay between the UE and target cell. The UE applies the TA adjustment to advance its uplink transmission timing so that it arrives within the cyclic prefix window at the gNB receiver. For intra-gNB HO where source and target are co-sited, the TA change is often minimal (<1 μs), but for different-site cells within the same gNB (centralised RAN architecture), the TA difference may be significant.
"If the UE has a dedicated RACH resource … the UE shall use it for the random access towards the target PCell. The dedicated RACH resource … allows the target gNB to immediately use the newUE-Identity for scheduling the UE." — TS 38.331 §5.3.5.3 (paraphrased from procedure description)
| Property | Dedicated RACH | Contention-Based RACH |
|---|---|---|
| Preamble selection | Assigned by source (rach-ConfigDedicated) | Random from PRACH occasion |
| MSG3 content | RRCReconfigurationComplete directly | newUE-Identity (contention resolution) |
| MSG4 needed? | No (identity already known) | Yes (contention resolution) |
| RA-RNTI assignment | Not needed; direct C-RNTI | Required for RAR addressing |
| Typical RACH latency | ~4 ms (MSG1→MSG3) | ~6–8 ms (MSG1→MSG4) |
| Collision risk | Zero (contention-free) | Low (dedicated HO preambles in TS 38.331) |
§14.4 T304 Timer and Handover Failure Modes
T304 is the critical guard timer for handover execution. It is started by the UE when it receives the RRCReconfiguration with mobilityControlInfo and is stopped when RRCReconfigurationComplete is sent successfully to the target cell. The timer value is signalled by the network in the t304 IE (valid values: ms50, ms100, ms150, ms200, ms500, ms1000, ms2000). If T304 expires before the UE successfully completes random access and delivers RRCReconfigurationComplete, the UE initiates RRC Re-establishment.
"If T304 expires, the UE shall … revert to the configuration used in the source PCell … and initiate the RRC re-establishment procedure as specified in 5.3.7, with the re-establishment cause set to handoverFailure." — TS 38.331 §5.3.5.6
The four principal handover failure modes, each with its TS 28.552 counter, are:
T304 Expiry (L.HO.ExecFail.T304). The UE starts RACH on the target cell but cannot complete it before T304 fires. Common causes: severe DL path loss to target (UE cannot decode RAR), PRACH configuration mismatch, or target cell congestion causing RACH back-off. The UE reverts to source cell configuration and sends RRC Re-establishment Request with cause = handoverFailure.
Radio Link Failure during execution (L.HO.ExecFail.RadioLinkFailure). The source cell experiences RLF (T310 expiry or N310 consecutive out-of-sync indications) while T304 is running — i.e., after RRCReconfiguration was sent but before the UE re-attached to target. Counted separately from T304 expiry because the root cause differs (source degradation vs target access failure).
Preparation Failure (L.HO.PrepFail). For intra-gNB HO this is rare (no Xn admission control), but it can occur if the gNB's internal capacity manager rejects the target cell (e.g., target cell at admission limit). The RRCReconfiguration is never sent. The counter increments at the preparation stage, and L.HO.Att has already been incremented.
Too-early or Too-late HO failure. Covered in §14.7 as an analytical category — not always a distinct counter, but inferred from RLF report analysis.
§14.5 The HOSR KPI — Definition and Decomposition
Handover Success Rate (HOSR) is the primary mobility KPI in 5G NR. It measures the fraction of handover attempts that complete successfully from the UE perspective. TS 28.554 Annex A defines the normative formula:
where L.HO.ExecSucc counts successful handover executions (RRCReconfigurationComplete received) and L.HO.Att counts all handover attempts (RRCReconfiguration with mobilityControlInfo sent to UE). Note that L.HO.Att already excludes HOs rejected in the preparation phase before RRCReconfiguration was transmitted — those are counted separately in L.HO.PrepFail.
HOSR can be decomposed into four sequential loss stages, forming a waterfall from L.HO.Att to L.HO.ExecSucc:
For intra-gNB HO, L.HO.PrepFail is typically near zero (no external admission control). The dominant failure components are T304 expiry and Radio Link Failure.
A gNB serving 24 cells reports the following 15-minute counter snapshot for intra-gNB HO:
- L.HO.Att = 10,000
- L.HO.PrepFail = 20 (intra-gNB admission rejections)
- L.HO.ExecFail.T304 = 30 (T304 expiry during execution)
- L.HO.ExecFail.RadioLinkFailure = 20 (source RLF during HO)
- L.HO.ExecSucc = 9,930 (RRCReconfigurationComplete received)
Verification: 10,000 − 20 − 30 − 20 = 9,930 ✓
HOSR = 9,930 / 10,000 × 100 = 99.3 %
Preparation failure rate: 20/10,000 = 0.2 %. Execution failure rate: 50/9,980 = 0.5 %. The dominant execution failure is T304 (0.3 %), suggesting target cell RACH coverage or T304 timer misconfiguration.
§14.6 Ping-Pong Handover Analysis
A ping-pong handover occurs when a UE hands over from cell A to cell B, and then hands over from cell B back to cell A within a short time window. This wastes radio resources (two complete RACH procedures for no net coverage gain), may cause brief service interruptions, and inflates the HO attempt counter. TS 28.552 defines L.HO.PingPong as the count of HO attempts where the UE returns to the source cell within the ping-pong time window (typically 60 seconds, operator-configurable).
A ping-pong rate above 5% indicates a mobility parameter configuration problem. The most common root causes are:
- a3-Offset too small: The offset in the A3 entering condition is insufficient to prevent the HO from triggering at the border where the UE oscillates between two nearly equal RSRP values.
- TTT too short: A short time-to-trigger (e.g., 40 ms) allows transient fading dips to trigger A3 events. Increasing TTT to 160 ms filters short-term fading.
- Hysteresis too small: Small hysteresis in the A3 condition means the entering condition is triggered by small RSRP fluctuations above the threshold.
- Missing or negative CIO: A negative cell individual offset on the target cell biases measurements, causing repeated oscillation.
A cell pair reports: L.HO.PingPong = 850, L.HO.Att = 9,000 over one hour.
Ping-pong rate = 850 / 9,000 × 100 = 9.4 % — significantly above the 5 % threshold.
Current parameters: a3-Offset = 1 dB, TTT = 100 ms, Hys = 1 dB.
Diagnosis: RSRP difference at HO trigger is only ~1.5 dB on average (from UE measurement logs), meaning the UE is hovering right at the boundary with insufficient margin.
Corrective actions (step-by-step):
- Increase a3-Offset from 1 dB to 2 dB → A3 now requires target to be 2 dB stronger before HO triggers
- Increase TTT from 100 ms to 160 ms → requires condition to hold longer, filters fading oscillations
- Re-evaluate: if ping-pong rate drops to <3 %, monitor for too-late HO increase. If HOSR unchanged, accept new configuration.
§14.7 Too-Late vs Too-Early Handover Classification
Radio Link Failure (RLF) events in connected mode are classified by when they occur relative to the HO decision. TS 38.331 §5.3.10 defines the RLF report framework: when a UE experiences RLF (T310 expiry) and subsequently re-establishes to a cell, it stores a rlf-Report and transmits it to the new PCell's gNB in a UEInformationResponse message. The report includes the PCI of the cell where RLF occurred, the UE's serving RSRP at the time of failure, the target cell PCI (if HO was in progress), and the cause.
Too-early handover: A3 triggered and HO executed while the source cell was still providing adequate radio conditions. The UE moves to the target cell but the target's RSRP is already declining (or was never strong enough), leading to immediate RLF in the target cell shortly after HO completion. The RLF report shows: RLF in cell = target PCI, cause = rlf-3gpp (T310 expiry), source PCI still above Qout threshold. In handover optimization frameworks, this is the "wrong cell" re-establishment pattern.
Too-late handover: The A3/A5 event never triggered (or was suppressed by excessive TTT/hysteresis) before the source cell's RSRP fell below the RLF threshold. The UE experiences RLF in the source cell and re-establishes to the target cell — the cell it should have handed over to. The RLF report shows: RLF in cell = source PCI, re-establishment target = target PCI, source RSRP well below Qout. This is the "correct cell" re-establishment pattern.
"The UE shall include in the rlf-Report the following … the physical cell identity of the PCell in which the RLF occurred, the measurement results at the time of the failure including the RSRP of the PCell and up to 6 neighbour cells, and the reason for initiating the RRC re-establishment procedure." — TS 38.331 §5.3.10.2
| Indicator | Too-Early HO | Too-Late HO |
|---|---|---|
| RLF cell (from RLF report) | Target PCI | Source PCI |
| Re-establishment cell | Target or third cell | Target PCI (correct cell) |
| Source RSRP at RLF | Above −100 dBm (still OK) | Below −105 dBm (collapsed) |
| Counter signature | L.HO.ExecFail (wrong cell), L.ChMeas.RLF.Target | L.ChMeas.RLF.Source, re-est to target |
| Parameter correction | Increase a3-Offset (+1–2 dB), increase TTT | Decrease a3-Offset (−1 dB), decrease TTT |
| CIO adjustment | Reduce CIO on target (delay HO) | Increase CIO on target (advance HO) |
§14.8 Cell Individual Offset (CIO) and Its Role in A3 Triggering
The cell individual offset (cellIndividualOffset, abbreviated CIO) is a per-neighbour correction factor applied to the measurement quantity in A3 (and A4/A5/A6) event evaluation. It is defined in the CellsToAddMod structure within the MeasObjectNR IE of RRCReconfiguration. The entering condition for A3 with CIO included is:
where:
- Mn = measurement result of the neighbour cell (RSRP/RSRQ/SINR)
- Ofn = frequency offset of the neighbour's measurement object (frequencyOffsetCell)
- Ocn = cell individual offset of the neighbour cell (CIO of target)
- Ms = measurement result of the serving cell
- Ofs = frequency offset of the serving measurement object
- Ocs = cell individual offset of the serving cell (CIO of source)
- Hys = hysteresis value for event A3
- Off = a3-Offset (global A3 trigger threshold offset)
A positive CIO on the target neighbour (Ocn) increases the effective measured strength of that neighbour, causing the A3 condition to be satisfied at a lower actual RSRP — the UE will hand over to that cell earlier. This is used to offload traffic toward a higher-capacity cell or compensate for antenna tilt asymmetry.
A negative CIO on the target (Ocn) makes the neighbour appear weaker, requiring it to be stronger than normal before HO triggers — the UE stays on the serving cell longer. Used to suppress ping-pong toward cells with inferior coverage, or to extend stay on a preferred frequency layer.
The key distinction from a3-Offset is granularity: a3-Offset applies globally to all neighbours on a measurement object, while CIO applies per-cell, allowing fine-grained bilateral boundary shaping without affecting all neighbours simultaneously.
Setup: A3 entering condition for RSRP measurements. Parameters:
- a3-Offset (Off) = 1 dB
- Hys = 1 dB
- Ofn = Ofs = 0 (same frequency, intra-frequency HO)
- Ocs = 0 dB (no CIO on serving cell)
- Ocn = 0 dB (baseline: no CIO on target)
A3 condition reduces to: Mn − 1 > Ms + 1, i.e., Mn > Ms + 2 dB
HO triggers when target RSRP exceeds source RSRP by more than 2 dB.
Now apply Ocn = +3 dB (positive CIO on target):
Mn + 3 − 1 > Ms + 1 → Mn > Ms − 1 dB
HO now triggers when target is only 1 dB below source — HO boundary shifts 3 dB earlier. The effective coverage of the target cell is extended at the cost of a lower signal margin at handover.
With Ocn = −3 dB (negative CIO): Mn + (−3) − 1 > Ms + 1 → Mn > Ms + 5 dB. HO requires target to be 5 dB stronger — boundary shifted further into target coverage. Ping-pong risk reduced but too-late HO risk increases.
§14.9 Optimisation Framework — HOSR vs Ping-Pong Trade-off
Handover parameter tuning involves a fundamental trade-off: tightening HO conditions (larger a3-Offset, longer TTT, larger hysteresis) reduces ping-pong but increases too-late HO risk and may worsen HOSR at fast-moving UEs. Loosening conditions improves responsiveness but generates unnecessary HOs and raises ping-pong rate.
Speed-Dependent TTT Scaling. TS 38.331 supports speedStateDependScalingParms within the ReportConfigNR IE, which allows the network to configure TTT scaling factors based on UE speed. A UE classified as "medium" speed receives a TTT scaled by sf-Medium (e.g., 0.5×) and a "high" speed UE by sf-High (e.g., 0.25×). This means a configured TTT of 160 ms becomes 80 ms for medium-speed UEs and 40 ms for high-speed, preventing too-late HO on motorway cells while maintaining anti-ping-pong protection for slow-moving indoor UEs.
Scenario: ISD = 500 m, UE speed = 100 km/h = 27.8 m/s, NR carrier = 3.5 GHz. Assuming free-space path loss gradient near cell edge: RSRP drops approximately 4 dB per 100 m (from propagation model).
Step 1 — Distance covered during TTT = 160 ms:
d = 27.8 m/s × 0.160 s = 4.45 m
Step 2 — RSRP change during TTT at 4 dB/100 m gradient:
ΔRSRP = 4.45 × (4/100) = 0.18 dB ≈ negligible — TTT delay causes minimal loss at this speed/gradient.
Step 3 — Risk assessment: At 100 km/h and ISD 500 m, cell traversal time ≈ 500/27.8 ≈ 18 s. TTT of 160 ms is only 0.9 % of traversal time — too-late HO risk is low. Ping-pong is the greater risk at low speeds in this deployment.
Recommendation: Keep a3-Offset = 2–3 dB, TTT = 160 ms for stationary/pedestrian UEs; enable speedStateDependScalingParms with sf-High = 0.25× for vehicular to bring TTT to 40 ms at speed.
| Parameter Change | HOSR Effect | Ping-Pong Effect | Too-Late HO Risk | Use Case |
|---|---|---|---|---|
| a3-Offset +1 dB | ↑ (fewer premature HOs) | ↓ (less oscillation) | ↑ slight | Dense indoor, low mobility |
| a3-Offset −1 dB | ↓ (more premature HOs) | ↑ (more oscillation) | ↓ (earlier HO) | High-speed vehicular |
| TTT 100→160 ms | Neutral (fewer false events) | ↓ (fading filtered) | ↑ slight | Walking/indoor UEs |
| TTT 160→40 ms | ↑ for fast UEs | ↑ possible | ↓ significantly | Motorway coverage |
| Hys +1 dB | Neutral to ↑ | ↓ | Neutral | Boundary oscillation |
| CIO target +3 dB | ↑ (earlier, stronger HO) | ↑ possible | ↓ | Capacity offload |
| CIO target −3 dB | ↓ possible | ↓ | ↑ | Suppress weak neighbour |
§14.10 TS 28.552 Handover Counter Family (Intra-gNB)
TS 28.552 Clause 5.1.1.6 (NR mobility management measurements) specifies the normative counter definitions for handover performance. The following table provides the complete intra-gNB relevant subset with exact definitions and calculation formulas.
| Counter Name | Measurement ID (TS 28.552) | Definition | Increment Condition | Target |
|---|---|---|---|---|
| L.HO.Att | M55221 | Number of handover attempts initiated from a source NR cell | RRCReconfiguration with mobilityControlInfo transmitted by gNB | Baseline denominator |
| L.HO.PrepSucc | M55222 | Number of successful handover preparations (intra: always = L.HO.Att − L.HO.PrepFail) | HO preparation accepted (intra: gNB decides to send RRCReconf) | ≥ 99.8 % |
| L.HO.PrepFail | M55223 | Number of handover preparation failures | gNB admission rejection before RRCReconfiguration sent | < 0.2 % |
| L.HO.ExecSucc | M55224 | Number of successful handover executions | RRCReconfigurationComplete received from UE on target cell | ≥ 99.5 % of Att |
| L.HO.ExecFail | M55225 | Total handover execution failures | Any cause: T304 expiry OR RLF during execution | < 0.5 % of Att |
| L.HO.ExecFail.T304 | M55225a | HO execution failures due to T304 timer expiry | UE sends RRCReestablishmentRequest with cause = handoverFailure | < 0.3 % of Att |
| L.HO.ExecFail.RadioLinkFailure | M55225b | HO execution failures due to radio link failure during HO execution | Source RLF (T310 expiry) while T304 is running | < 0.2 % of Att |
| L.HO.PingPong | M55228 | Number of ping-pong handovers (return HO within PPP window) | HO A→B followed by HO B→A within PPP_window seconds | < 5 % of Att |
§14.11 RRC Reconfiguration Message Anatomy for Intra-gNB HO
The RRCReconfiguration message (TS 38.331 §6.3.2) carrying mobilityControlInfo is the sole signaling message required to execute an intra-gNB handover. Understanding its key IE structure enables engineers to decode logged RRC messages and diagnose configuration errors.
| IE Path | IE Name | Type | Description |
|---|---|---|---|
| RRCReconfiguration | rrc-TransactionIdentifier | INTEGER (0..3) | Transaction ID for acknowledgement matching |
| RRCReconfiguration.criticalExtensions.c1.rrcReconfiguration-r8 | mobilityControlInfo | SEQUENCE (optional) | Present iff this is a HO command |
| mobilityControlInfo | targetPhysCellId | PhysCellId (0..1007) | PCI of the target cell |
| mobilityControlInfo | t304 | ENUMERATED | Timer value: ms50|ms100|ms150|ms200|ms500|ms1000|ms2000 |
| mobilityControlInfo | newUE-Identity | RNTI-Value (0..65535) | C-RNTI the UE shall use on the target cell |
| mobilityControlInfo | radioResourceConfigCommon | RadioResourceConfigCommon | Target cell common radio resource config (RACH, BWP, SCS) |
| radioResourceConfigCommon | rach-ConfigCommon | RACH-ConfigCommon | General RACH parameters of target cell |
| radioResourceConfigCommon | rach-ConfigDedicated | RACH-ConfigDedicated (optional) | Dedicated preamble for contention-free HO RACH |
| rach-ConfigDedicated | cfra | CFRA | Contention-free RA: preamble index, PRACH occasion selector |
An engineer must select t304 for cells at the edge of an outdoor macro coverage area where UEs frequently experience poor RACH conditions (RSRP −105 to −110 dBm).
Analysis of RACH completion time at cell edge:
- PRACH periodicity: 10 ms (every 10 ms radio frame)
- Expected preamble retransmissions at poor RSRP: up to 3 attempts (preambleTransMax = 7)
- Total RACH time estimate: 3 × 10 ms (wait for PRACH occasion) + 3 × 5 ms (RAR window) = ~45 ms worst case
- Transport delay for RRCReconfigurationComplete: ~5 ms
- Total: ~50 ms minimum, but with scheduling delays could reach ~100–150 ms
Recommendation: Set t304 = ms500 (500 ms) at cell edge macro deployments. This provides adequate margin for 3 RACH retransmissions plus scheduling delays, while still timing out within 500 ms if the target cell is genuinely unreachable. Avoid ms50 or ms100 at cell edge — these will cause spurious T304 expirations.
For dense indoor small cell deployments with strong RACH coverage, t304 = ms200 is acceptable.
§14.12 Summary and Intra-gNB HO Optimisation Checklist
Intra-gNB handover is the simplest and fastest handover variant in 5G NR, requiring only a single RRC Reconfiguration message and no inter-node signaling. Its high HOSR target (≥ 99.5%) is achievable through correct T304 timer selection, dedicated RACH preamble assignment, and disciplined A3 parameter tuning. The following checklist consolidates the actionable optimization steps covered in this chapter.
| # | Check Item | Target / Pass Criterion | TS Reference |
|---|---|---|---|
| 1 | HOSR ≥ 99.5 % (L.HO.ExecSucc / L.HO.Att) | ≥ 99.5 % | TS 28.554 |
| 2 | L.HO.PrepFail rate < 0.2 % (target admission) | < 0.2 % | TS 28.552 M55223 |
| 3 | L.HO.ExecFail.T304 rate < 0.3 % (RACH coverage) | < 0.3 % | TS 28.552 M55225a |
| 4 | L.HO.PingPong rate < 5 % (a3-Offset/TTT/Hys) | < 5 % | TS 28.552 M55228 |
| 5 | rach-ConfigDedicated included for all intra-gNB HOs | Present in RRCReconf | TS 38.331 §5.3.5.3 |
| 6 | t304 ≥ ms200 for macro cells; ≥ ms500 for cell-edge | ms200–ms500 | TS 38.331 §5.3.5.6 |
| 7 | speedStateDependScalingParms enabled for vehicular cells | sf-High configured | TS 38.331 §5.5.4.1 |
| 8 | RLF report analysis: too-early/too-late classification monthly | RLF-to-HO cause ratio monitored | TS 38.331 §5.3.10 |
| 9 | CIO values reviewed per cell pair for asymmetric boundaries | CIO ∈ [−6, +6] dB; document rationale | TS 38.331 §5.5.3 |
| 10 | a3-Offset ∈ [1, 3] dB; increase if ping-pong > 5 % | 1–3 dB typical range | TS 38.331 §5.5.4.4 |
Cross-Chapter References
- Ch 13 — Measurement events A1–A6 that trigger HO: exact entering/leaving conditions for A3 and A5 (§13.4, §13.6)
- Ch 15 — Inter-gNB Xn handover (TS 38.423): Xn-AP HANDOVER REQUEST/ACK, path switch, data forwarding mechanisms
- Ch 16 — Inter-gNB N2/NGAP handover (TS 38.413): AMF-mediated HO, HANDOVER REQUIRED/COMMAND, indirect data forwarding
- Ch 9 — RACH procedure fundamentals: preamble selection, RAR, MSG3/MSG4 — prerequisite for §14.3
Chapter 14 Key Takeaways
- Intra-gNB HO uses a single RRCReconfiguration message with mobilityControlInfo — no Xn-AP, no core involvement, no data forwarding required
- T304 timer is the critical execution guard; its expiry drives L.HO.ExecFail.T304 and triggers RRC Re-establishment with cause = handoverFailure (TS 38.331 §5.3.5.6)
- Dedicated RACH (rach-ConfigDedicated) assigns a contention-free preamble, eliminating RA-RNTI and MSG4 steps and reducing RACH latency by ~2–4 ms
- HOSR = L.HO.ExecSucc / L.HO.Att × 100 %; decompose into PrepFail + ExecFail.T304 + ExecFail.RLF to isolate root cause
- Ping-pong rate = L.HO.PingPong / L.HO.Att × 100 %; target <5 %; correct by increasing a3-Offset (+1 dB), TTT (100→160 ms), or Hys
- Too-early HO: RLF in target cell shortly after HO — reduce a3-Offset. Too-late HO: RLF in source cell, re-establish to target — reduce a3-Offset and/or TTT
- CIO (cellIndividualOffset) is per-cell and shifts the HO boundary for that specific neighbour only; a3-Offset is global across all neighbours on the measurement object
- speedStateDependScalingParms enables TTT scaling by UE speed class — essential for deployments serving both pedestrian and vehicular UEs on the same cell
Inter-gNB Handover via Xn
Complete 3GPP procedure analysis: Xn-AP HANDOVER REQUEST/ACKNOWLEDGE signaling, PDCP data forwarding, path switch to AMF, QoS flow continuity, T304 failure modes, speed-adaptive TTT scaling, and TS 28.552 L.HO.InterGNB.Xn counter-based HOSR decomposition — all from first principles
3GPP TS 38.423 §8.3.1 · TS 38.331 §5.3.5 · TS 38.413 · TS 38.323 §5.2.1 · TS 28.552Chapter Learning Objectives
After completing this chapter, you will be able to:
- Articulate when the network selects Xn HO over N2/NGAP HO and identify the preconditions — same PLMN, Xn TNL established, UPF anchor reusability
- Trace all nine signaling steps of the TS 38.423 §8.3.1 Xn HO procedure from A3 report through PATH SWITCH REQUEST ACKNOWLEDGE
- Explain PDCP data forwarding over GTP-U between source and target gNBs during the HO execution gap and the role of the PDCP Status Report
- Describe how QoS flows — GBR and non-GBR — are handled across the Xn interface and re-mapped after the path switch
- Classify Xn HO failure modes by stage (preparation, execution, path switch) and map each to TS 28.552 counters
- Compute Inter-gNB Xn HOSR from L.HO.InterGNB.Xn.ExecSucc / L.HO.InterGNB.Xn.Att and perform four-stage decomposition of failure contributions
- Apply speed-adaptive TTT scaling via speedStateDependScalingParms and calculate optimal TTT for high-speed UEs at 300 km/h
- Diagnose Xn interface configuration issues — missing TNL entries, latency overhead, gNB Configuration Update gaps — and their HOSR impact
§15.1 Introduction — Xn vs N2 Handover
When a UE in RRC_CONNECTED state moves between cells served by different gNBs, the network must coordinate handover across node boundaries. Two distinct signaling paths exist, each defined in a separate 3GPP specification and each carrying different performance characteristics and prerequisites.
Xn HO (TS 38.423) uses the direct gNB-to-gNB Xn interface. The source gNB contacts the target gNB directly — no AMF involvement during the preparation phase — making this the low-latency preferred path. After the UE successfully connects to the target cell, the target gNB performs a PATH SWITCH to redirect the N3 user-plane path via the AMF (TS 38.413). Xn HO requires that the Xn interface between the two gNBs has been established via the NG Setup / gNB Configuration Update TNL address exchange procedure.
N2 HO (TS 38.413) routes all preparation signaling through the AMF. The source sends HANDOVER REQUIRED (N2), the AMF forwards HANDOVER REQUEST to the target, and the target's response travels back via the AMF as HANDOVER COMMAND. Every hop through the AMF adds processing latency — typically 20–40 ms of additional round-trip time. N2 HO is the mandatory fallback when no Xn interface exists between source and target, or when cross-PLMN handover is required.
The selection rule is simple: if the Xn interface to the target gNB is configured and operational, the source gNB uses Xn HO. Otherwise it falls back to N2 HO. From a network operator's perspective, ensuring complete Xn mesh connectivity between all co-sited and geographically adjacent gNBs is the single most impactful configuration step for inter-gNB HOSR.
| Attribute | Xn HO (TS 38.423) | N2 HO (TS 38.413) |
|---|---|---|
| Preparation path | Direct source → target (Xn-AP) | Source → AMF → Target (NGAP) |
| AMF during prep | Not involved | Mandatory relay |
| Typical prep RTT | ~10–20 ms | ~30–60 ms |
| UE interruption time | ~40–60 ms | ~80–120 ms |
| Data forwarding | Source → Target (GTP-U) | Source → Target via CN tunnel |
| Prerequisite | Xn TNL established | None (always available) |
| Cross-PLMN support | No | Yes |
| UPF anchor switch | After HO (PATH SWITCH) | During HO preparation |
§15.2 Xn HO Procedure — Step-by-Step (TS 38.423 §8.3.1)
The Xn HO procedure is defined in TS 38.423 §8.3.1 "Handover Preparation" and §8.3.2 "Handover Execution". The complete message flow involves four protocol layers — RRC (UE↔gNB), Xn-AP (gNB↔gNB), NGAP (gNB↔AMF), and GTP-U (data forwarding) — coordinated across nine distinct steps.
"The Handover Preparation procedure is used to prepare the target NG-RAN node for handover of a UE. The source NG-RAN node sends a HANDOVER REQUEST message to the target NG-RAN node. The HANDOVER REQUEST message contains UE context information and target cell information. The target NG-RAN node shall perform admission control based on the received QoS flows and reply with a HANDOVER REQUEST ACKNOWLEDGE message if it accepts the UE." 3GPP TS 38.423 §8.3.1 — Xn Handover Preparation
The nine steps proceed as follows:
- Step 1 — A3/A5 Event Report: The UE sends a MeasurementReport to the source gNB containing the A3 entering condition (neighbor RSRP + a3-Offset exceeds serving RSRP for the TTT duration). The source gNB evaluates the report and decides to initiate HO to the target cell identified in the report.
- Step 2 — XnAP HANDOVER REQUEST: The source gNB sends a HANDOVER REQUEST message over the Xn interface to the target gNB. The message carries: UE-X2AP-ID, target cell ID (NR-CGI), UE context (security capabilities, AS security context), QoS flow list with per-flow QoS parameters, PDCP SN status, and the Source-to-Target Transparent Container (containing the source cell RRC config and UE capability information for the target's use in generating the RRC Reconfiguration).
- Step 3 — XnAP HANDOVER REQUEST ACKNOWLEDGE: The target gNB performs admission control on each requested QoS flow. If the UE is admitted, it allocates radio resources, generates the target cell RRC configuration, and replies with HANDOVER REQUEST ACKNOWLEDGE. This message contains the Target-to-Source Transparent Container (which includes the RRCReconfiguration message the source must forward to the UE) and the list of accepted QoS flows. Any rejected flows are listed with a cause.
- Step 4 — RRC Reconfiguration to UE: The source gNB extracts the RRCReconfiguration from the transparent container and forwards it to the UE in a DL-DCCH message. The message contains
mobilityControlInfospecifying the target cell (targetPhysCellId, carrierFreq, RACH configuration for the target). The source starts the T304 timer. Data forwarding from source to target begins at this point. - Step 5 — UE RACH on Target: The UE detaches from the source cell (stops uplink transmissions), tunes to the target cell frequency, and performs RACH (using rach-ConfigDedicated if provided, otherwise contention-based RA). The T304 timer runs on the UE during this period.
- Step 6 — RRC Reconfiguration Complete: After successful RACH and timing alignment on the target cell, the UE sends RRCReconfigurationComplete to the target gNB. The T304 timer stops. The UE is now connected to the target cell.
- Step 7 — XnAP UE CONTEXT RELEASE: The target gNB sends a UE CONTEXT RELEASE message to the source gNB, signaling that HO is complete and the source can release the UE context (including its radio resources and the data forwarding GTP-U tunnel).
- Step 8 — NGAP PATH SWITCH REQUEST: The target gNB sends a PATH SWITCH REQUEST to the AMF over N2, informing the core network that the UE has moved. The message contains the target gNB's N3 endpoint (UPF TEID and IP address) for each PDU session.
- Step 9 — NGAP PATH SWITCH REQUEST ACKNOWLEDGE: The AMF coordinates with the SMF/UPF to redirect DL data from the source GTP-U tunnel to the target. Upon completion, the AMF replies with PATH SWITCH REQUEST ACKNOWLEDGE. From this point, new DL data arrives at the target gNB directly from the UPF.
§15.3 Data Forwarding and PDCP Re-ordering (TS 38.323 §5.2.1)
During the HO execution gap — the interval between the source gNB sending the RRC Reconfiguration and the target gNB receiving RRC Reconfiguration Complete — DL user-plane data cannot reach the UE on either cell. To prevent packet loss during this gap, the source gNB forwards buffered and in-flight PDCP PDUs to the target gNB via a GTP-U tunnel established over the Xn interface.
"For each DRB for which data forwarding is requested, the source NG-RAN node shall forward PDCP PDUs to the target NG-RAN node using a GTP-U tunnel established over the Xn interface. The source NG-RAN node starts forwarding PDCP PDUs upon sending the RRCReconfiguration message to the UE." 3GPP TS 38.423 §8.3.1 — Data Forwarding over Xn
On the target side, forwarded PDCP PDUs accumulate in the PDCP receive buffer. When the UE completes RACH and sends RRC Reconfiguration Complete, the target gNB starts delivering data to the UE. PDCP re-ordering ensures in-sequence delivery: the PDCP layer holds PDUs with higher SNs until any gap caused by out-of-order forwarding is resolved (within t-Reordering).
PDCP Status Report is used for AM DRBs to inform the transmitting side which PDCP SDUs have been successfully received. After HO, the UE may send a PDCP Status Report to the target gNB, identifying any SNs that were lost in transit. The target gNB uses this to retransmit only the missing PDUs from the forwarded buffer, rather than retransmitting the entire window.
PDCP Hyper Frame Number (HFN) must be synchronized between source and target. The source includes the current PDCP SN and HFN state in the Source-to-Target Transparent Container carried in the XnAP HANDOVER REQUEST. The target initializes its PDCP state from this information, ensuring the COUNT value (HFN || SN) used for ciphering and integrity protection is continuous across the handover boundary.
"Upon receiving the RRCReconfigurationComplete message, if the UE has a PDCP entity configured with header compression and data recovery, the UE shall perform a PDCP data recovery procedure. The PDCP entity shall for each RLC entity associated with the PDCP entity: submit a PDCP Status Report to the lower layers for transmission." 3GPP TS 38.323 §5.2.1 — PDCP Re-establishment and Data Recovery
§15.4 QoS Flow Handling During Xn HO
QoS flows are the fundamental unit of traffic differentiation in 5G NR. Each PDU session may carry multiple QoS flows, each characterized by a 5QI (5G QoS Identifier), ARP (Allocation and Retention Priority), and — for GBR flows — GFBR (Guaranteed Flow Bit Rate) and MFBR (Maximum Flow Bit Rate) values. The Xn HO procedure must preserve QoS continuity across the handover.
The source gNB includes the full per-flow QoS parameter set in the XnAP HANDOVER REQUEST message, carried in the QoSFlowsToBeForwarded and E-RABs-ToBeSetup-List IEs. The target gNB's admission control evaluates each flow independently:
- GBR flows (5QI 1–4, 65–67, 71–76, 82–85): The target must admit these flows only if it can guarantee the GFBR. If the target lacks sufficient radio resources, it must reject the GBR flow and report this in the XnAP HANDOVER REQUEST ACKNOWLEDGE using the
E-RABs-NotAdmitted-ListIE. A rejected GBR flow causes the source gNB to abort HO to this target (or proceed without the flow if the policy allows). - Non-GBR flows (5QI 5–9, 69–70, 79–80, 86): These have no guaranteed bit rate requirement. The target gNB may accept them at best-effort, potentially mapping them to a different DRB than the source. Throughput degradation on non-GBR flows during HO is acceptable.
- After PATH SWITCH ACKNOWLEDGE: The SMF/UPF updates GTP-U TEID endpoints on the N3 interface, redirecting each QoS flow from the source gNB's N3 endpoint to the target's. From this point, the UPF encapsulates DL data using the target's TEID.
| Flow Type | 5QI Examples | Carried in XnAP | Target Admission | Rejection Action |
|---|---|---|---|---|
| GBR — Conversational Voice | 1 | Yes, with GFBR/MFBR | Mandatory if resources available | HO aborted or flow dropped |
| GBR — Conversational Video | 2 | Yes, with GFBR/MFBR | Mandatory if resources available | HO aborted or flow dropped |
| GBR — Mission Critical Push-to-Talk | 65, 66 | Yes, with GFBR/MFBR | Mandatory (high priority) | HO aborted |
| Non-GBR — IMS Signaling | 5 | Yes, QCI only | Best-effort, always accepted | N/A |
| Non-GBR — Internet Data | 8, 9 | Yes, QCI only | Best-effort, always accepted | N/A |
| Non-GBR — V2X | 79, 80 | Yes, QCI only | Best-effort, priority scheduling | N/A |
§15.5 Xn HO Failure Analysis
Xn HO failures fall into three sequential stages: preparation, execution, and path switch. Each stage has distinct failure modes, root causes, and associated TS 28.552 counters.
15.5.1 Preparation Failure
The target gNB responds with XnAP HANDOVER PREPARATION FAILURE instead of HANDOVER REQUEST ACKNOWLEDGE. The Cause IE specifies the reason, grouped into four categories:
"If the target NG-RAN node is not able to admit the UE, it shall respond with a HANDOVER PREPARATION FAILURE message. The HANDOVER PREPARATION FAILURE message shall include a Cause IE. The Cause IE shall be set to one of the following values: Radio Network, Transport, Protocol, or Miscellaneous." 3GPP TS 38.423 §8.3.1 — Handover Preparation Failure
| Cause Group | Specific Cause | Root Cause | Optimization Action |
|---|---|---|---|
| Radio Network | No Radio Resources Available | Target cell overloaded; admission control rejected | Load balance, add capacity, adjust neighbor list |
| Radio Network | Unknown Target Cell | NR-CGI not recognized at target gNB | Verify neighbor cell NR-CGI in ANR / O&M; check gNB config |
| Radio Network | UE Not Supported | UE capability mismatch (e.g., band not supported at target) | Review UE band and feature capability; update UE context |
| Transport | Transport Resource Unavailable | Xn TNL congestion or misconfiguration | Check Xn IP routing; increase TNL bandwidth |
| Protocol | Abstract Syntax Error (Falsely Constructed) | IE encoding mismatch between vendors | Check Xn-AP software version alignment |
| Miscellaneous | Unspecified | Internal target gNB error | Collect target gNB logs; escalate to vendor |
15.5.2 Execution Failure (T304 Expiry)
If the UE cannot complete RACH on the target cell before T304 expires, the UE declares HO failure and initiates RRC re-establishment (TS 38.331 §5.3.7). The UE attempts re-establishment at the source cell first, then any suitable cell. This event is counted as L.HO.InterGNB.Xn.ExecFail.T304.
15.5.3 Path Switch Failure
After the UE successfully connects to the target, the target gNB may fail to complete the PATH SWITCH REQUEST with the AMF (e.g., AMF rejects the request due to PDU session mismatch). In this case, the UE remains connected to the target gNB but the UPF still routes DL data to the source. This creates a data interruption that is invisible to the radio layer. Counter: L.HO.InterGNB.Xn.PathSwitchFail.
Prep Fail Rate = L.HO.InterGNB.Xn.PrepFail / L.HO.InterGNB.Xn.Att × 100%
Exec Fail Rate = L.HO.InterGNB.Xn.ExecFail.T304 / (L.HO.InterGNB.Xn.Att − L.HO.InterGNB.Xn.PrepFail) × 100%
PathSwitch Fail Rate = L.HO.InterGNB.Xn.PathSwitchFail / L.HO.InterGNB.Xn.ExecSucc × 100%
Overall HOSR = L.HO.InterGNB.Xn.ExecSucc / L.HO.InterGNB.Xn.Att × 100%
§15.6 Xn Interface Configuration Impact
The Xn interface between two gNBs is established via XnAP Setup Request/Response. Each gNB advertises its TNL (Transport Network Layer) endpoint addresses and the list of served cells (NR-CGIs) it owns. A gNB can have multiple TNL addresses for redundancy, listed in tnlAssociationList.
When a gNB adds or removes cells (e.g., after a software upgrade or new DU commissioning), it must notify all Xn peers via gNB Configuration Update. Failure to send this update leaves peer gNBs with a stale neighbor cell list, causing HO attempts to cells unknown to the Xn peer to fail with "Unknown Target Cell" cause.
| Parameter / IE | TS Reference | Description | Misconfiguration Impact |
|---|---|---|---|
| tnlAssociationList | TS 38.423 §9.3.5 | List of TNL addresses (IP+port) for Xn-AP | Single address → no redundancy; Xn fails on IP outage |
| Served NR Cell Info | TS 38.423 §9.3.2 | NR-CGI + ARFCN + PCI of each served cell | Stale list → Unknown Target Cell at peer → PrepFail |
| gNB Configuration Update | TS 38.423 §8.4 | Delta update when cells added/removed | Not sent → peer has stale config; silent HO failures |
| Xn Setup Timer (t-RelocOverall) | TS 38.423 §9.3.7 | Max time for HO preparation on Xn | Too short → PrepFail on loaded targets |
| Maximum Data Forwarding Interval | TS 38.423 §8.3.1 | Max time source forwards data to target | Too short → data loss before path switch completes |
Xn latency impact on T304: The T304 budget must account for: (a) Xn HANDOVER REQUEST round trip (~10–20 ms), (b) UE processing of RRC Reconfiguration (~5 ms), (c) RACH on target (~10–25 ms depending on PRACH config), and (d) RRC Reconfiguration Complete processing. If Xn RTT is high (e.g., geographically distant gNBs connected over a high-latency backhaul), T304 values must be set accordingly to avoid premature T304 expiry.
T304min = tXn-RTT + tUE-proc + tRACH + tRRC-proc + margin
Typical: T304min = 20 + 5 + 25 + 5 + 10 = 65 ms → select T304 = 100 ms (next standard value)
Standard T304 values (TS 38.331): {50, 100, 150, 200, 500, 1000, 2000} ms
§15.7 Speed-Adaptive Handover (TS 38.331 §5.5.6.2)
UEs traveling at different speeds have very different requirements for handover trigger timing. A UE on a high-speed train at 300 km/h traverses an 800 m inter-site distance in under 10 seconds — the TTT must be short enough to trigger HO before the UE passes the cell boundary. A pedestrian UE at 3 km/h may spend minutes near a cell boundary — a long TTT reduces ping-pong at the cost of slightly slower HO trigger.
TS 38.331 §5.5.6.2 defines speedStateDependScalingParms, which allows the network to configure scaling factors applied to TTT and/or hysteresis based on the UE's detected mobility state. The UE classifies itself into Normal, Medium, or High mobility based on the number of cell reselections or handover events in a configured time window (mediumMobilityStateCriteria and highMobilityStateCriteria).
"The UE shall, when the speedStateDependScalingParms is configured, apply a scaling factor to the time-to-trigger and/or the hysteresis of the event triggering condition. The scaling factor depends on the UE's mobility state, which is evaluated based on the criteria defined in mediumMobilityStateCriteria and highMobilityStateCriteria." 3GPP TS 38.331 §5.5.6.2 — Speed-Dependent Scaling of TTT and Hysteresis
| Parameter | Description | Typical Low-Speed Value | Typical High-Speed Value |
|---|---|---|---|
| sf-Medium (TTT scale) | TTT scaling factor in medium mobility state | 0.75 (reduce TTT by 25%) | 0.5 (halve TTT) |
| sf-High (TTT scale) | TTT scaling factor in high mobility state | 0.5 | 0.25 (quarter TTT) |
| sf-Medium (Hyst scale) | Hysteresis scaling in medium state | 1.0 (no change) | 0.75 |
| sf-High (Hyst scale) | Hysteresis scaling in high state | 1.0 | 0.5 |
| nCellChangeMedium | HO count threshold for medium mobility | 3 handovers in 30 s | — |
| nCellChangeHigh | HO count threshold for high mobility | 6 handovers in 30 s | — |
| tEvaluation | Time window for mobility state evaluation | 30 s | — |
§15.8 TS 28.552 Inter-gNB Xn Counter Family
| Counter Name | Description | Trigger Point | Unit |
|---|---|---|---|
| L.HO.InterGNB.Xn.Att | Total inter-gNB Xn HO attempts | XnAP HANDOVER REQUEST sent by source | Integer |
| L.HO.InterGNB.Xn.PrepSucc | Preparation successes | XnAP HANDOVER REQUEST ACKNOWLEDGE received | Integer |
| L.HO.InterGNB.Xn.PrepFail | Preparation failures | XnAP HANDOVER PREPARATION FAILURE received | Integer |
| L.HO.InterGNB.Xn.ExecSucc | Execution successes | XnAP UE CONTEXT RELEASE sent by target | Integer |
| L.HO.InterGNB.Xn.ExecFail.T304 | T304 expiry at UE | T304 timer expiry reported via RLF indication | Integer |
| L.HO.InterGNB.Xn.ExecFail.RadioLinkFailure | RLF during HO execution | RLF at target before RRC Reconfig Complete | Integer |
| L.HO.InterGNB.Xn.PathSwitchSucc | PATH SWITCH successes | NGAP PATH SWITCH REQUEST ACKNOWLEDGE received | Integer |
| L.HO.InterGNB.Xn.PathSwitchFail | PATH SWITCH failures | NGAP PATH SWITCH FAILURE received from AMF | Integer |
HOSRXn = L.HO.InterGNB.Xn.ExecSucc / L.HO.InterGNB.Xn.Att × 100%
Preparation Success Rate:
PrepSR = L.HO.InterGNB.Xn.PrepSucc / L.HO.InterGNB.Xn.Att × 100%
Execution Success Rate (given prep success):
ExecSR = L.HO.InterGNB.Xn.ExecSucc / L.HO.InterGNB.Xn.PrepSucc × 100%
Target HOSR: ≥ 97.0% (KPI target per TS 28.554 §5.1)
§15.9 Xn HO vs Intra-gNB Comparison
| Attribute | Intra-gNB HO | Inter-gNB Xn HO |
|---|---|---|
| Signaling path | Internal to gNB (CU-CP) | External: Xn-AP + NGAP path switch |
| Inter-node messages | 0 (RRC only) | 2 Xn-AP + 2 NGAP = 4 messages |
| Path switch required | No (UPF tunnel unchanged) | Yes (NGAP PATH SWITCH REQUEST) |
| Data forwarding | Not needed | Required via GTP-U over Xn |
| Typical prep latency | <5 ms (internal) | 10–20 ms (Xn RTT) |
| T304 typical value | 100–200 ms | 150–500 ms (depends on Xn RTT) |
| UE interruption time | ~20–30 ms | ~40–60 ms |
| Failure modes | T304 expiry, RLF | PrepFail + T304 + RLF + PathSwitchFail |
| HOSR target (TS 28.554) | ≥98.5% | ≥97.0% |
| PDCP HFN sync needed | No (same PDCP entity) | Yes (via transparent container) |
| Counter family | L.HO.ExecSucc / L.HO.Att | L.HO.InterGNB.Xn.ExecSucc / Att |
§15.10 Optimization Checklist
The following checklist addresses the ten most impactful inter-gNB Xn HO optimization actions, derived from the failure modes and configuration parameters analyzed in this chapter.
| # | Action | Counter / Parameter | Expected Improvement |
|---|---|---|---|
| 1 | Verify Xn interface is established between all co-sited and adjacent gNBs; resolve missing TNL entries | L.HO.InterGNB.Xn.PrepFail (Unknown Cell) | Eliminate N2 fallback HO; reduce interruption time by ~40–60 ms |
| 2 | Send gNB Configuration Update after any cell add/remove; verify peer gNBs acknowledge updated cell list | XnAP: gNB Configuration Update (TS 38.423 §8.4) | Eliminates "Unknown Target Cell" PrepFail |
| 3 | Set T304 ≥ max(Xn RTT + RACH time + margin); use 150–300 ms for high-latency Xn links | L.HO.InterGNB.Xn.ExecFail.T304; TS 38.331 t304 | Reduce T304 expiry rate by 50–80% |
| 4 | Configure rach-ConfigDedicated in mobilityControlInfo for contiguous coverage areas to eliminate contention-based RACH delay | L.HO.InterGNB.Xn.ExecFail.T304; RACH timing | Reduce RACH duration from ~25 ms to ~5 ms |
| 5 | Enable speedStateDependScalingParms: sf-High ≤ 0.25 for high-speed rail corridors | L.HO.InterGNB.Xn.ExecFail.T304 (high-speed RLF) | Eliminate too-late HO events at 300+ km/h |
| 6 | Review admission control thresholds at top-5 target cells by PrepFail rate; check PDSCH utilization PRB | L.HO.InterGNB.Xn.PrepFail (No Radio Resources) | Reduce "No Radio Resources" PrepFail by load balancing |
| 7 | Configure PDCP data forwarding timer ≥ path switch completion time to prevent data loss before UPF switch | L.HO.InterGNB.Xn.PathSwitchFail; DL throughput dip | Eliminate post-HO DL data gap due to premature forwarding stop |
| 8 | Audit tnlAssociationList for dual TNL addresses per gNB (IP redundancy) on Xn transport | L.HO.InterGNB.Xn.PrepFail (Transport) | Eliminate single-point Xn failures on IP link outages |
| 9 | Verify PDCP SN length matches between source and target (12-bit vs 18-bit configuration per DRB) | PDCP HFN sync failure; ciphering errors post-HO | Eliminate PDCP deciphering failures after HO |
| 10 | Monitor L.HO.InterGNB.Xn.PathSwitchFail; correlate with AMF load and N2 congestion indicators | L.HO.InterGNB.Xn.PathSwitchFail; NGAP N2 load | Identify AMF overload contributing to path switch failures |
§15.11 Worked Numerical Examples
Example 15.1 — Inter-gNB Xn HOSR Calculation and Stage Decomposition
Given: In a one-hour busy-hour measurement window, counters from a source gNB report:
- L.HO.InterGNB.Xn.Att = 2,400
- L.HO.InterGNB.Xn.PrepFail = 72 (cause: 60 × No Radio Resources; 12 × Unknown Target Cell)
- L.HO.InterGNB.Xn.ExecFail.T304 = 36
- L.HO.InterGNB.Xn.ExecFail.RadioLinkFailure = 12
- L.HO.InterGNB.Xn.PathSwitchFail = 6
Step 1 — Overall HOSR:
ExecSucc = Att − PrepFail − ExecFail.T304 − ExecFail.RLF − PathSwitchFail
ExecSucc = 2400 − 72 − 36 − 12 − 6 = 2274
HOSR = 2274 / 2400 × 100% = 94.75% (below 97% target)
Step 2 — Stage decomposition:
PrepFail Rate = 72/2400 = 3.0% → dominant: No Radio Resources at target
ExecFail.T304 Rate = 36/2328 = 1.55% → T304 or coverage gap issue
ExecFail.RLF Rate = 12/2292 = 0.52% → acceptable
PathSwitch Fail Rate = 6/2274 = 0.26% → low; investigate AMF N2 errors
Conclusion: Prep failures (3.0%) dominate. Audit top-5 target cells by PrepFail count, check their PDSCH PRB utilization and admission control settings.
Example 15.2 — T304 Minimum Value Calculation for High-Latency Xn
Scenario: Two gNBs are connected over a microwave backhaul with measured Xn one-way latency of 18 ms (RTT = 36 ms). PRACH configuration gives maximum random access wait of 20 ms. UE processing delay = 6 ms each way. Required margin = 15 ms.
T304 minimum calculation:
tUE-proc = 6 ms (UE receives and processes RRC Reconfiguration)
tRACH = 20 ms (maximum PRACH attempt wait)
tRRC-complete = 5 ms (target processes RRC Reconfiguration Complete)
margin = 15 ms
T304min = 36 + 6 + 20 + 5 + 15 = 82 ms
Selection: Next standard T304 value above 82 ms = 100 ms (from TS 38.331 enumeration: {50, 100, 150, 200, 500, 1000, 2000} ms). Set T304 = 100 ms for this Xn link pair.
Note: If T304 had been left at the default 50 ms, ~30% of HOs over this backhaul link would expire T304 and cause re-establishment, directly inflating L.HO.InterGNB.Xn.ExecFail.T304.
Example 15.3 — Speed-Adaptive TTT for 300 km/h Train Corridor
Scenario: A high-speed rail corridor has ISD = 800 m. Cells use a3-Offset = 3 dB, base TTT = 320 ms. At 300 km/h, the UE covers approximately 83 m per second. The time from A3 condition entering to the cell boundary is measured as approximately 1.2 seconds (based on RSRP slope analysis from drive test data).
A3 enter to HO trigger time analysis:
UE speed = 300 km/h = 83.3 m/s
Distance covered during TTT = 83.3 × 0.320 = 26.7 m
Available distance before boundary crossing ≈ 50 m (A3 enters ~50 m before boundary)
Time remaining after A3 trigger = 50 / 83.3 = 0.60 s = 600 ms
With base TTT = 320 ms, HO triggers at 600 − 320 = 280 ms before boundary. This leaves some margin but during peak network load this could be marginal. Apply speed-adaptive scaling:
Effective TTThigh = 320 × 0.25 = 80 ms
Trigger margin = 600 − 80 = 520 ms before boundary crossing
Result: With sf-High = 0.25, the HO triggers 520 ms before boundary — well within the safe zone — eliminating too-late HO RLF events that were occurring at 300 km/h when using the base TTT of 320 ms.
Example 15.4 — PDCP Forwarding Window and Data Loss Estimation
Scenario: A 1 Gbps DL throughput UE undergoes Xn HO. The HO execution gap (T304 running) is 50 ms. The PATH SWITCH completes 30 ms after RRC Reconfiguration Complete. Forwarding timer is set to 80 ms (covers execution gap + path switch).
Data buffered at source during execution gap:
Execution gap = 50 ms
Data buffered = 125 MB/s × 0.050 s = 6.25 MB of PDCP PDUs queued for forwarding
Xn forwarding capacity required = 6.25 MB / (forwarding window = 80 ms) = 78 MB/s = 625 Mbps
Conclusion: For a 1 Gbps UE, the Xn interface must support at least 625 Mbps of forwarding traffic during HO execution. If Xn bandwidth is limited to 100 Mbps, only ~0.8 MB of data can be forwarded, leaving ~5.45 MB potentially lost. This motivates either (a) Xn uplink capacity dimensioning for peak forwarding load or (b) reducing HO execution gap via dedicated RACH and lower T304.
Chapter Summary
Inter-gNB Xn handover is the preferred inter-node HO path in 5G NR when the Xn interface is established. The nine-step procedure (TS 38.423 §8.3.1) achieves lower UE interruption time than N2 HO by bypassing AMF involvement during preparation. Key engineering decisions include T304 dimensioning against Xn RTT, PDCP forwarding window sizing against DL throughput, and admission control threshold tuning at target cells to minimize PrepFail. Speed-adaptive TTT via speedStateDependScalingParms is essential for high-speed rail scenarios where the base TTT would produce too-late HO and RLF. The TS 28.552 L.HO.InterGNB.Xn counter family provides four-stage failure decomposition (PrepFail, ExecFail.T304, ExecFail.RLF, PathSwitchFail) that directly guides optimization priority. Target HOSR is ≥97.0% per TS 28.554.
Inter-gNB Handover via N2/NGAP
Complete 3GPP procedure analysis: NGAP HANDOVER REQUIRED/REQUEST/COMMAND signaling through the AMF, security context and NH-chain transfer, PDU session partial admission, T304 failure on N2 path, inter-system NR-to-LTE fallback, path switch via N4, and TS 28.552 L.HO.InterGNB.N2 counter-based HOSR decomposition — all from first principles
3GPP TS 38.413 §8.4.2 · TS 38.331 §5.3.5 · TS 23.502 §4.9.1 · TS 28.552Chapter Learning Objectives
After completing this chapter, you will be able to:
- Identify the precise conditions under which the network selects the N2 handover path instead of Xn — missing Xn interface, cross-PLMN scenario, or inter-RAT trigger
- Trace all ten NGAP signaling steps of the TS 38.413 §8.4.2 N2 HO procedure from HANDOVER REQUIRED through UE CONTEXT RELEASE COMMAND
- Explain how the AMF derives a new KgNB* during N2 HO using the NH chaining counter (NCC) and why no Security Mode Command is needed
- Describe PDU session handling in NGAP HANDOVER REQUEST, including partial admission where the target gNB rejects individual sessions for insufficient resources
- Classify N2 HO failure modes across preparation, execution, and path-switch stages, mapping each to the NGAP cause code and TS 28.552 counter
- Quantify the N2 HO latency penalty versus Xn HO and explain why T304 should be set to 2000 ms for N2 scenarios
- Describe the 5GS-to-EPS inter-system handover trigger (B2 event), the role of the MME, and the key re-derivation from 5G to 4G context
- Compute Inter-gNB N2 HOSR from TS 28.552 counters and identify the dominant failure contributor from NGAP cause code analysis
§16.1 Introduction — When N2 HO Is Used
The N2 handover procedure (formally specified in TS 38.413 §8.4.2) is the mandatory fallback path when the source gNB cannot reach the target gNB via the Xn interface. Unlike Xn HO — which completes preparation in a single direct gNB-to-gNB exchange — N2 HO routes every preparation message through the Access and Mobility Management Function (AMF), adding two additional message round-trips and typically 30–60 ms of extra latency.
Three distinct conditions trigger the N2 path instead of Xn:
- No Xn interface established: The source gNB has no TNL address configured for the target gNB. This is the most common cause in early deployments, where Xn mesh peering is incomplete. The source gNB detects the absence of an Xn path from its neighbour list and immediately escalates to N2 HANDOVER REQUIRED.
- Different PLMN or CN slice affinity: Even if a physical Xn connection exists, if the target cell belongs to a different operator or if the UE's network slice selection requires a different AMF, the handover must traverse the CN for proper AMF selection, context transfer, and slice re-association. TS 23.502 §4.9.1.2 mandates AMF involvement whenever the AMF needs to change.
- Inter-system (inter-RAT) handover: When the UE transitions from 5G NR SA to LTE EPS — triggered by a B2 measurement event — the gNB cannot reach the target eNB via Xn (which is a 5G interface only). The 5GS-to-EPS procedure defined in TS 23.502 §4.9.1.3 routes the handover through AMF → MME → target eNB.
A fourth scenario occurs when the target gNB rejects an Xn HO preparation request (XnAP HANDOVER PREPARATION FAILURE). In that case the source gNB may retry the same handover over N2, with the AMF potentially selecting a different target cell or a target served by a different AMF.
"The source NG-RAN node initiates the handover preparation phase by sending a HANDOVER REQUIRED message to the AMF. The HANDOVER REQUIRED message shall include the target ID, the source to target transparent container, and the direct forwarding path availability information." — TS 38.413 §8.4.2.2
§16.2 N2 HO Procedure — Step-by-Step (TS 38.413 §8.4.2)
The N2 handover procedure involves four network entities: the UE, the source gNB, the AMF, and the target gNB. The procedure is divided into three phases: preparation (steps 1–4), execution (steps 5–7), and completion (steps 8–10).
Preparation Phase
- HANDOVER REQUIRED (source gNB → AMF): The source gNB sends this NGAP message containing the HandoverType (intra5GS, fiveGStoEPS, etc.), Cause, TargetID (target gNB/TAI), and the SourceToTarget-TransparentContainer (carrying the RRC Reconfiguration that the target should embed in its response). The source also includes DirectForwardingPathAvailability if a GTP-U forwarding tunnel can be established directly.
- HANDOVER REQUEST (AMF → target gNB): The AMF forwards a HANDOVER REQUEST to the target gNB, adding the UE security context (including the new KgNB* key and NCC value), UE Aggregate Maximum Bit Rate (UE-AMBR), the list of PDU session resources to be set up (with QoS profiles for each QoS flow), and the SourceToTarget-TransparentContainer.
- HANDOVER REQUEST ACKNOWLEDGE (target gNB → AMF): If the target gNB can admit the UE, it responds with the TargetToSource-TransparentContainer (which includes the RRC Reconfiguration for the UE) and a list of PDU session resources that were successfully set up. Sessions the target cannot accommodate are listed in PDUSessionResourceFailedToSetupList with an appropriate cause.
- HANDOVER COMMAND (AMF → source gNB): The AMF forwards the target's response as a HANDOVER COMMAND to the source gNB, including the TargetToSource-TransparentContainer and the list of PDU sessions that were admitted.
Execution Phase
- RRC Reconfiguration (source gNB → UE): The source gNB extracts the RRC Reconfiguration message from the TargetToSource-TransparentContainer and forwards it to the UE. This message contains
mobilityControlInfowith the target cell's physCellId, carrierFreq, radioResourceConfigCommon, and the new security key material (NCC). T304 is started at the UE. - RACH + RRC Reconfiguration Complete (UE → target gNB): The UE performs a contention-based or contention-free RACH (using a dedicated preamble if provided), synchronises to the target cell, and sends RRC Reconfiguration Complete via the target gNB. T304 is stopped.
- HANDOVER NOTIFY (target gNB → AMF): The target gNB informs the AMF that the UE has successfully accessed the target cell. This message includes the E-UTRAN Cell Global Identifier (ECGI) or NR Cell Global Identifier (NCGI) of the serving cell.
Completion Phase
- Path Switch / N4 update (AMF → SMF → UPF): The AMF triggers the SMF to update the N4 session at the UPF, redirecting downlink data from the source gNB's N3 anchor to the target gNB's N3 anchor. This is the user-plane path switch that eliminates the forwarding tunnel.
- UE CONTEXT RELEASE COMMAND (AMF → source gNB): After the path switch is confirmed, the AMF instructs the source gNB to release the UE context. This also triggers the source to stop data forwarding.
- UE CONTEXT RELEASE COMPLETE (source gNB → AMF): The source gNB confirms that the UE context has been released and all radio resources have been freed.
§16.3 Security Context Transfer
Security key management during N2 HO differs fundamentally from intra-gNB handover. The AMF — not the gNB — derives the new base key for the target gNB. This design ensures the target gNB cannot be used to retroactively decrypt traffic that was encrypted under the source gNB's keys (forward secrecy).
NH Chaining and NCC
The 5G AS security architecture uses a chain of Next Hop (NH) keys maintained at the AMF. Each NH value is a one-way derivation from the preceding NH, indexed by the NH Chaining Counter (NCC). The AMF increments NCC at each handover and includes both NH and NCC in the NGAP HANDOVER REQUEST.
"The AMF shall derive a new KgNB* based on the current NH and include the {NH, NCC} pair in the HANDOVER REQUEST message to the target NG-RAN node. The NCC shall be incremented with each handover preparation." — TS 33.501 §6.9.3.2 (referenced in TS 38.413)
KgNB* = KDF(NH, PCItarget, DL-ARFCNtarget)
where KDF = HMAC-SHA-256, NH = Next Hop key (256-bit), PCItarget = Physical Cell Identity of target cell, DL-ARFCNtarget = downlink ARFCN of target cell
NHn+1 = KDF(KAMF, NHn)
NCCn+1 = NCCn + 1 (mod 8)
The target gNB uses the delivered KgNB* to derive the PDCP encryption and integrity keys (KRRCenc, KRRCint, KUPenc, KUPint) without any further interaction with the AMF. Because the UE performs the same KgNB* derivation locally using the NCC value in the RRC Reconfiguration, no Security Mode Command is needed during the handover — key synchronisation is implicit.
§16.4 PDU Session Handling in N2 HO
Each PDU session active at the source gNB must be listed in the NGAP HANDOVER REQUEST. The target gNB independently evaluates whether it has sufficient resources to admit each PDU session and its associated QoS flows.
Admission and Partial Accept
TS 38.413 §8.4.2.2 permits partial admission: the target gNB may accept a subset of the requested PDU sessions and reject others. Sessions are rejected by including them in the PDUSessionResourceFailedToSetupListHOReq IE with a cause value (e.g., "insufficient radio resources", "no radio resources available in target cell").
"If the Target NG-RAN node is not able to establish all the PDU Session Resources indicated in the HANDOVER REQUEST message, it should, if possible, establish a subset of the PDU Session Resources. The PDU session resources for which the handover preparation failed shall be included in the PDUSessionResourceFailedToSetupListHOReq IE." — TS 38.413 §8.4.2.2
The UE is informed of rejected PDU sessions via the drb-ToReleaseList or a dedicated IE in the RRC Reconfiguration message embedded in the HANDOVER COMMAND. Applications using rejected PDU sessions will experience a brief service interruption until PDU session re-establishment after the handover completes.
GBR Flow Handling
Guaranteed Bit Rate (GBR) QoS flows — such as those carrying VoNR voice media — receive priority treatment. The target gNB must either admit GBR flows at the requested GBR or reject them entirely. Partial admission of a GBR flow (admitting at a lower bit rate) is not permitted under TS 23.501 §5.7.3.
Example 16.1 — PDU Session Partial Admission
A UE has 3 active PDU sessions at the source gNB:
- PDU Session 1 (5QI=1, VoNR, GBR=64 kbps UL/DL)
- PDU Session 2 (5QI=9, Internet, non-GBR, max BR=500 Mbps)
- PDU Session 3 (5QI=2, Video call, GBR=2 Mbps UL/DL)
Target gNB has a heavily loaded PRB utilisation of 87%. It admits PDU Session 1 (GBR=64 kbps — low overhead) and PDU Session 2 (non-GBR — served on best-effort basis). It rejects PDU Session 3 (GBR=2 Mbps — exceeds available GBR capacity).
The HO REQUEST ACK includes:
- PDUSessionResourceSetupListHOReq: {PSI=1, PSI=2}
- PDUSessionResourceFailedToSetupListHOReq: {PSI=3, Cause="Insufficient radio resources"}
The UE's video call (PSI=3) drops at handover. The voice call (PSI=1) and browsing (PSI=2) continue without interruption.
§16.5 N2 HO Failure Modes
N2 HO has more failure points than Xn HO because each message traverses the AMF. Table 16.1 maps each failure stage to the NGAP message, cause code, and observable counter.
Table 16.1 — N2 HO Failure Modes and NGAP Cause Codes
| Stage | Failure Event | NGAP Message | Cause Code (TS 38.413 §9.3.1.2) | TS 28.552 Counter |
|---|---|---|---|---|
| Preparation | AMF rejects HO | HANDOVER PREPARATION FAILURE | Unspecified / No radio resources available in target cell | L.HO.InterGNB.N2.PrepFail |
| Preparation | Target gNB unreachable | HANDOVER PREPARATION FAILURE | Unknown target ID | L.HO.InterGNB.N2.PrepFail |
| Preparation | Target rejects all PDU sessions | HO REQUEST ACK (empty session list) | Insufficient radio resources | L.HO.InterGNB.N2.PrepFail |
| Execution | T304 expiry at UE | RRC Re-establishment / re-attempt | — (UE-side, no NGAP cause) | L.HO.InterGNB.N2.ExecFail.T304 |
| Execution | RACH failure on target cell | RRC Re-establishment | — (radio failure) | L.HO.InterGNB.N2.ExecFail.RadioLinkFailure |
| Execution | HO NOTIFY not received (timer) | HANDOVER CANCEL (source→AMF) | Handover failure in target NG-RAN or target system | L.HO.InterGNB.N2.ExecFail.RadioLinkFailure |
| Path Switch | UPF update fails | N4 Session Modification Failure (S/P-GW) | UPF issue (5GC internal) | L.HO.InterGNB.N2.PathSwitchFail |
| Path Switch | UPF DL data delivery failure | — (silent from RAN perspective) | — | L.HO.InterGNB.N2.PathSwitchFail |
Table 16.2 — NGAP Cause Values (TS 38.413 §9.3.1.2) Used in N2 HO
| Cause Group | Cause Value | Typical N2 HO Context |
|---|---|---|
| RadioNetwork | unspecified (0) | Generic target RAN failure |
| RadioNetwork | unknown-target-ID (3) | Target gNB not registered to AMF |
| RadioNetwork | no-radio-resources-available-in-target-cell (6) | PRB/power overload at target |
| RadioNetwork | handover-failure-in-target-NG-RAN-or-target-system (20) | T304 expiry, target RACH fail |
| RadioNetwork | ho-target-not-allowed (39) | Policy-blocked target (slicing mismatch) |
| Transport | transport-resource-unavailable (0) | N2 interface congestion at AMF |
| NAS | normal-release (0) | AMF-initiated HO cancel post-notify |
| Protocol | semantic-error (0) | Malformed source-to-target container |
| Misc | hardware-failure (1) | Target gNB board fault |
| Misc | om-intervention (2) | Maintenance lock on target cell |
§16.6 N2 vs Xn HO — Performance Comparison
The key performance difference between N2 and Xn HO is the additional message round-trips through the AMF. While Xn HO requires only one preparation round-trip (source→target, target→source), N2 HO requires three (source→AMF, AMF→target, target→AMF→source). Each AMF hop adds 10–20 ms processing and transport delay in a well-optimised network.
Tprep,N2 = THO_REQ + TAMF_proc1 + THO_REQ_ACK + TAMF_proc2 + THO_CMD
Typical: Tprep,N2 ≈ 20 + 15 + 20 + 15 + 15 = 85 ms
Xn HO Preparation Latency:
Tprep,Xn = TXnAP_HO_REQ + Ttgt_proc + TXnAP_HO_ACK
Typical: Tprep,Xn ≈ 10 + 5 + 10 = 25 ms
Table 16.3 — N2 vs Xn HO Performance Benchmark
| Parameter | Xn HO (TS 38.423) | N2 HO (TS 38.413) | Notes |
|---|---|---|---|
| Preparation message round-trips | 1 | 3 | AMF adds 2 extra hops |
| Typical prep latency | 20–30 ms | 60–100 ms | Depends on AMF load and N2 RTT |
| AMF involvement in prep | No | Yes (mandatory) | AMF derives new KgNB* |
| T304 recommended value | 1000 ms | 2000 ms | TS 38.331 Table 6.3.2.4-1 |
| Typical HOSR | 97–99% | 95–97% | More failure points in prep |
| Data forwarding mechanism | Direct GTP-U tunnel (source→target) | Direct GTP-U tunnel (source→target) | Identical for both paths |
| Path switch after HO | PATH SWITCH REQUEST via AMF | HANDOVER NOTIFY + N4 update via AMF | Both terminate at UPF |
| Security key derivation | gNB derives KgNB* locally | AMF derives KgNB* and sends to target | Forward secrecy maintained in both |
Example 16.2 — T304 Dimensioning for N2 HO
A network has mixed Xn/N2 HO topology. The engineer must select T304 for cells that have both Xn and N2 neighbours.
Scenario A (Xn HO): Preparation latency = 25 ms. UE RACH at target = 10 ms. RRC Reconfig Complete = 5 ms. Total = 40 ms. T304 = 500 ms provides 12.5× safety margin. Acceptable.
Scenario B (N2 HO): Preparation latency = 85 ms. UE RACH at target = 10 ms. RRC Reconfig Complete = 5 ms. Total = 100 ms. T304 = 500 ms provides only 5× margin — marginal under load spikes. T304 = 2000 ms recommended.
Conclusion: If the same cell may fall back to N2 HO, set T304 = 2000 ms globally. The penalty for Xn HO is negligible (2000 ms >> 40 ms) while the protection for N2 HO is essential. TS 38.331 §5.3.5.4 mandates T304 values must be configured in the mobilityControlInfo of the RRC Reconfiguration.
§16.7 Inter-System Handover: 5G NR → LTE (TS 23.502 §4.9.1.3)
When a UE operating in 5G SA mode moves to poor 5G NR coverage, or when a voice call requires EPS Fallback, the network may trigger an inter-system handover from NR to LTE. This is fundamentally an N2 HO variant where the target is not another gNB but an LTE eNB connected to the EPC (via S1) or to the 5GC (via N26).
B2 Measurement Event Trigger
The standard trigger for NR-to-LTE inter-system HO is the B2 event (TS 38.331 §5.5.4.11): the serving NR cell falls below threshold 1 (T1) AND the target LTE cell exceeds threshold 2 (T2). The gNB evaluates this condition with the TimeToTrigger and hysteresis parameters from the measurement configuration.
Mn + Hys < Thresh1 AND Mp − Hys > Thresh2
where Mn = NR serving cell measurement (RSRP or RSRQ), Mp = LTE neighbour measurement, Hys = hysteresis, Thresh1 = inter-RAT threshold 1, Thresh2 = inter-RAT threshold 2
5GS-to-EPS Procedure
TS 23.502 §4.9.1.3 defines the procedure when the 5GC has an N26 interface to the MME. The signaling path is: source NR gNB → AMF (N2) → MME (N26) → target LTE eNB (S1).
"If the source AMF decides to perform a handover from 5GS to EPS, the source AMF shall send a Forward Relocation Request message to the MME. The Forward Relocation Request shall include the EPS MM Context, the EPS Bearer Context, the Source RAN node Transparent Container, and the Target ID." — TS 23.502 §4.9.1.3.2
Table 16.4 — Inter-RAT HO Security: 5G to 4G Key Mapping
| 5G Context Key | Derived 4G Key | Derivation Input | 3GPP Ref |
|---|---|---|---|
| K_AMF (256-bit) | K_ASME (256-bit) | KDF(K_AMF, NAS count, SQN) | TS 33.501 §A.17 |
| K_gNB (256-bit) | KeNB (256-bit) | KDF(K_ASME, HFN, SN) | TS 33.501 §A.17 |
| NCC (3-bit) | not applicable | Included in LTE RRC reconfig | TS 33.501 §6.9.3 |
| KRRCenc (NR) | KRRCenc (LTE) | Re-derived from KeNB | TS 33.401 §7.3 |
| KUPenc (NR) | KUPenc (LTE) | Re-derived from KeNB | TS 33.401 §7.3 |
§16.8 TS 28.552 N2 HO Counter Family
TS 28.552 defines the performance measurement counters for the N2 HO procedure. These counters are incremented at the source gNB and are collected per-cell or per-gNB depending on the measurement granularity configured at the Operations Support System (OSS).
Table 16.5 — TS 28.552 L.HO.InterGNB.N2 Counter Definitions
| Counter Name (TS 28.552) | Trigger Event | Measurement Object | Incremented At |
|---|---|---|---|
| L.HO.InterGNB.N2.Att | NGAP HANDOVER REQUIRED sent by source gNB | Source NR cell (NCGI) | Source gNB |
| L.HO.InterGNB.N2.PrepSucc | NGAP HANDOVER COMMAND received from AMF | Source NR cell | Source gNB |
| L.HO.InterGNB.N2.PrepFail | NGAP HANDOVER PREPARATION FAILURE received, or no response before timer | Source NR cell | Source gNB |
| L.HO.InterGNB.N2.ExecSucc | NGAP HANDOVER NOTIFY sent by target gNB (from target gNB perspective) OR UE CONTEXT RELEASE COMMAND received at source | Source NR cell | Source gNB |
| L.HO.InterGNB.N2.ExecFail.T304 | T304 expiry at UE (UE reports via RRC re-establishment) | Source NR cell | Source gNB (inferred from re-estab) |
| L.HO.InterGNB.N2.ExecFail.RadioLinkFailure | Radio failure during execution phase (no HO NOTIFY received) | Source NR cell | Source gNB |
| L.HO.InterGNB.N2.PathSwitchSucc | N4 path switch successful (UPF redirected to target gNB N3 anchor) | Target NR cell | Target gNB |
| L.HO.InterGNB.N2.PathSwitchFail | N4 path switch failure (UPF update rejected by SMF/UPF) | Target NR cell | Target gNB |
| L.HO.InterRAT.NR2LTE.Att | NR-to-LTE inter-RAT HO attempted (B2 event → NGAP HO REQUIRED with HO type = fiveGStoEPS) | Source NR cell | Source gNB |
| L.HO.InterRAT.NR2LTE.Succ | UE successfully connects to target LTE cell (NGAP UE CONTEXT RELEASE received at source) | Source NR cell | Source gNB |
N2 HO KPI Formulas
N2-HOSR = L.HO.InterGNB.N2.ExecSucc / L.HO.InterGNB.N2.Att × 100%
Target: ≥ 95% (TS 28.552 threshold; lower than Xn due to additional signaling steps and AMF involvement)
N2-PrepSR = L.HO.InterGNB.N2.PrepSucc / L.HO.InterGNB.N2.Att × 100%
Target: ≥ 97%
N2-ExecSR = L.HO.InterGNB.N2.ExecSucc / L.HO.InterGNB.N2.PrepSucc × 100%
Target: ≥ 98%
T304-FR = L.HO.InterGNB.N2.ExecFail.T304 / L.HO.InterGNB.N2.PrepSucc × 100%
Alarm threshold: > 1%
Example 16.3 — N2 HO KPI Computation from Counter Snapshot
A gNB reports the following hourly PM counter values:
- L.HO.InterGNB.N2.Att = 4,200
- L.HO.InterGNB.N2.PrepSucc = 4,032
- L.HO.InterGNB.N2.PrepFail = 168
- L.HO.InterGNB.N2.ExecSucc = 3,906
- L.HO.InterGNB.N2.ExecFail.T304 = 84
- L.HO.InterGNB.N2.ExecFail.RadioLinkFailure = 42
- L.HO.InterGNB.N2.PathSwitchFail = 15
Calculations:
- N2-HOSR = 3,906 / 4,200 × 100% = 93.0% — BELOW target (≥95%). Alarm.
- N2-PrepSR = 4,032 / 4,200 × 100% = 96.0% — acceptable
- N2-ExecSR = 3,906 / 4,032 × 100% = 96.9% — marginal
- T304-FR = 84 / 4,032 × 100% = 2.08% — ABOVE alarm threshold (1%)
Diagnosis: T304 expiry rate of 2.08% is the dominant issue. Root cause: T304 = 500 ms configured globally; network has 40% N2 HO coverage with 80–90 ms preparation latency. Increase T304 to 2000 ms for cells with N2 HO neighbours.
§16.9 The Complete HO Decision Chain
The source gNB's handover decision logic follows a strict sequential evaluation. Understanding this chain is essential for troubleshooting cases where N2 HO is used unexpectedly instead of Xn HO, or where Xn HO falls back to N2.
Table 16.6 — HO Path Selection Logic at Source gNB
| Step | Condition Evaluated | TRUE → Action | FALSE → Action |
|---|---|---|---|
| 1 | A3/A5/B1/B2 event criteria met? | Proceed to step 2 | No HO initiated |
| 2 | Target cell identified in neighbour list? | Proceed to step 3 | Request ANR measurement; delay HO |
| 3 | Target is same RAT (NR) or inter-RAT? | Proceed to step 4 (same RAT) or step 7 (inter-RAT) | — |
| 4 | Xn interface to target gNB established? | Initiate Xn HO (TS 38.423 §8.3.1) | Proceed to step 5 |
| 5 | Initiate N2 HO — send NGAP HO REQUIRED to AMF | AMF selects target gNB; sends HO REQUEST | — |
| 6 | HO PREPARATION FAILURE received from AMF? | Log NGAP cause; retry with alternate target | Continue with HO COMMAND |
| 7 | Inter-RAT B2 event: target is LTE cell | NGAP HO REQUIRED (handoverType = fiveGStoEPS); AMF→MME path via N26 | — |
AMF Selection for N2 HO
When the source gNB sends NGAP HANDOVER REQUIRED, the AMF must determine whether the same AMF can serve the target cell or whether an AMF change is required. The AMF evaluates the GUAMI (Globally Unique AMF Identifier) of the serving AMF against the GUAMI list of the target Tracking Area. If the target TA is served by a different AMF, the source AMF performs an AMF-to-AMF relocation via the N14 interface before forwarding the handover to the target gNB.
Example 16.4 — Xn HO Fallback to N2 Due to HANDOVER PREPARATION FAILURE
Scenario: gNB-A (source) attempts Xn HO to gNB-B. The XnAP HANDOVER PREPARATION FAILURE is returned by gNB-B with cause "No radio resources available in target cell". The source gNB falls back to N2 HO.
Trace:
- A3 event fires: target NCGI = 5A-001-0000001 (gNB-B, cell 1). RSRP_target = −85 dBm (A3 offset = 3 dB satisfied).
- Source gNB checks Xn table: gNB-B present, Xn TNL established. Xn HO initiated.
- XnAP HO REQUEST sent to gNB-B. gNB-B PRB utilisation = 94%. gNB-B responds: XnAP HO PREPARATION FAILURE (cause = no-radio-resources-available-in-target-cell).
- Source gNB increments L.HO.InterGNB.Xn.PrepFail. Triggers N2 HO fallback.
- NGAP HO REQUIRED sent to AMF. AMF evaluates target list — selects gNB-B cell 3 (same gNB, different cell) with PRB utilisation = 67%.
- NGAP HO REQUEST sent to gNB-B (cell 3). HO REQUEST ACK returned. HO COMMAND forwarded to source.
- UE executes HO to gNB-B cell 3 successfully. L.HO.InterGNB.N2.ExecSucc incremented.
Root cause: gNB-B cell 1 overload. Corrective action: load balance MBR reduction on cell 1 or add adjacent cell to Xn HO rejection list (blacklist overloaded cell for incoming Xn HO).
§16.10 Optimization Actions for N2 HO
Optimising N2 HO performance requires a layered approach: reducing the frequency of N2 HO by ensuring Xn mesh completeness, and improving N2 HO execution quality where N2 is unavoidable.
Table 16.7 — N2 HO Optimisation Actions and Expected Impact
| Action | Target Counter / KPI | Expected Improvement | TS Reference |
|---|---|---|---|
| Establish Xn TNL links to all co-sited gNBs (IP address exchange via gNB Configuration Update) | L.HO.InterGNB.N2.Att ↓; L.HO.InterGNB.Xn.Att ↑ | Reduce N2 HO volume by 40–60% where Xn is missing | TS 38.423 §8.2.2 |
| Increase T304 from 500 ms to 2000 ms for cells with N2 HO neighbours | L.HO.InterGNB.N2.ExecFail.T304 ↓ | Reduce T304 failure rate from ~2% to <0.3% | TS 38.331 §6.3.2 |
| Monitor NGAP HANDOVER PREPARATION FAILURE cause codes; filter by "no radio resources available in target cell" to identify overloaded targets | L.HO.InterGNB.N2.PrepFail ↓ | Identify top-5 overloaded target cells; apply load balancing | TS 38.413 §9.3.1.2 |
| Reserve inbound HO resource quota at target gNB (admission control for HO UEs) | PDU session admission rate ↑ | Reduce PDU session rejection rate for inbound HO UEs | TS 38.413 §8.4.2.2 |
| Audit N26 interface (AMF↔MME) availability for inter-system HO to LTE | L.HO.InterRAT.NR2LTE.Succ / Att ↑ | Ensure N26 is operational; without it, NR→LTE HO fails entirely | TS 23.502 §4.9.1.3 |
| Tune B2 inter-RAT thresholds: T1 (NR) = −110 dBm RSRP, T2 (LTE) = −95 dBm RSRP | L.HO.InterRAT.NR2LTE.Att (ensure trigger before RLF) | Prevent NR drop by triggering LTE HO earlier | TS 38.331 §5.5.4.11 |
| Enable data forwarding (GTP-U direct tunnel source→target) for N2 HO | User plane interruption time ↓ | Reduce packet loss during HO execution gap to <20 ms | TS 38.413 §8.4.2 (directForwardingPathAvailability) |
Table 16.8 — N2 HO Diagnostic Decision Tree
| Observed Symptom | First Counter to Check | Likely Root Cause | Corrective Action |
|---|---|---|---|
| N2-HOSR < 95% overall | L.HO.InterGNB.N2.PrepFail vs ExecFail.T304 ratio | If PrepFail > ExecFail: target congestion; If ExecFail.T304 > PrepFail: T304 too short | Reduce target load or increase T304 |
| High PrepFail with cause "unknown target" | L.HO.InterGNB.N2.PrepFail (NGAP cause 3) | Target gNB NG interface not registered to AMF; target NCGI misconfigured in neighbour list | Verify NG setup for target gNB; correct neighbour NCGI |
| T304 failure rate > 1% | L.HO.InterGNB.N2.ExecFail.T304 | T304 too short for N2 HO preparation latency; AMF overload extending prep time | Increase T304 to 2000 ms; check AMF CPU/memory |
| PathSwitchFail > 0.5% | L.HO.InterGNB.N2.PathSwitchFail | UPF N4 interface issue; SMF overload; N3 tunnel setup failure at target | Check UPF N4 session state; restart affected SMF/UPF instances |
| NR→LTE HO not triggering despite low RSRP | L.HO.InterRAT.NR2LTE.Att | B2 thresholds too aggressive (T2 too high); LTE neighbour not in measurement config | Tune T2 threshold; add LTE cells to inter-RAT measurement config |
Xn Mesh Coverage Assessment
The most impactful optimisation for N2 HO reduction is ensuring complete Xn interface coverage. The following formula estimates the fraction of inter-gNB handovers that use N2 due to missing Xn links:
fN2,missing-Xn = L.HO.InterGNB.N2.Att / (L.HO.InterGNB.Xn.Att + L.HO.InterGNB.N2.Att) × 100%
Target: < 5% (i.e., ≥ 95% of inter-gNB HOs should use Xn when source and target are same PLMN)
If fN2,missing-Xn exceeds 15%, perform an Xn peer audit: extract the list of target NCGIs in L.HO.InterGNB.N2.Att where cause is not "AMF change required" or "different PLMN" — these are the candidates for Xn interface provisioning.
Chapter 16 — Key Takeaways
- N2 HO is triggered when no Xn interface exists between source and target gNBs, or during cross-PLMN and inter-RAT (NR→LTE) scenarios. The AMF acts as coordinator for all preparation signaling (TS 38.413 §8.4.2).
- The 10-step N2 HO procedure adds 3 message round-trips (60–100 ms preparation latency) versus Xn HO's 1 round-trip (~25 ms). T304 must be set to 2000 ms for N2 HO scenarios to prevent spurious timer expiry.
- Security key derivation during N2 HO is performed by the AMF (not the gNB): KgNB* = KDF(NH, PCI_target, ARFCN_target). The NCC value in the RRC Reconfiguration synchronises keys at the UE without a Security Mode Command.
- PDU sessions can be partially admitted by the target gNB. GBR flows must be admitted at full GBR or rejected entirely. The UE is notified of rejected sessions in the RRC Reconfiguration.
- Key failure modes: PrepFail (NGAP HANDOVER PREPARATION FAILURE), ExecFail.T304 (timer expiry in execution phase), and PathSwitchFail (UPF/SMF N4 failure). Each maps to a distinct TS 28.552 counter.
- N2 HO HOSR target = ≥ 95%, computed as L.HO.InterGNB.N2.ExecSucc / L.HO.InterGNB.N2.Att × 100%.
- The 5G→LTE inter-system HO uses a B2 event trigger and routes through AMF→MME→eNB via the N26 interface (TS 23.502 §4.9.1.3). Keys are re-derived from 5G K_AMF to 4G K_ASME.
- Primary N2 HO optimisation: establish Xn interfaces to all co-sited gNBs to shift inter-gNB HO traffic to the lower-latency Xn path. Target: N2 fraction < 5% of total inter-gNB HO attempts.
Conditional Handover (CHO) and DAPS Handover
Complete 3GPP procedure analysis: CHO pre-configuration and conditional execution (TS 38.331 §5.3.5a), candidateCell list management, CHO-to-HO fall-through, DAPS dual-active-protocol-stack architecture (TS 38.300 §9.2.3.4), DAPS bearer setup and release sequencing, TS 28.552 CHO/DAPS counter decomposition — all from first principles
3GPP TS 38.331 §5.3.5a · TS 38.300 §9.2.3.4 · TS 37.340 §10.3 · TS 28.552 · TS 38.413 §8.4Chapter Learning Objectives
After completing this chapter, you will be able to:
- Explain the mobility problem that motivated CHO in 3GPP Release 16 and quantify the latency improvement over conventional Xn/N2 HO
- Trace the complete CHO signaling sequence: RRC Reconfiguration with candidateCellList, UE-side condition evaluation, and conditional execution (TS 38.331 §5.3.5a)
- Describe how the gNB manages the candidateCellList — maximum candidate count, update procedures, and CHO resource reservation at target cells
- Classify CHO failure modes (condition-never-met, all-candidates-fail, preparation-failure) and map each to TS 28.552 counters
- Articulate the DAPS handover architecture: simultaneous source and target PDCP/RLC/MAC stacks, source-anchor data reception until MN release
- Trace the DAPS bearer setup, DAPS execution phase, and DAPS source release sequence (TS 38.300 §9.2.3.4, TS 38.331 §5.3.5.3)
- Identify the UE capability and radio conditions required for DAPS and explain why DAPS reduces user-plane interruption to near-zero
- Compute CHO HOSR and DAPS interruption time from TS 28.552 counters and compare against conventional HO baselines
- Combine CHO with DAPS (DAPS-CHO) and identify the 3GPP Rel-17 extensions that enable this combination
- Select CHO vs DAPS vs conventional HO based on UE capability, speed profile, and cell edge geometry
§17.1 Introduction — The Cell-Edge Handover Problem
Conventional 5G NR handover, whether via Xn (TS 38.423) or N2/NGAP (TS 38.413), follows a sequential model: the network evaluates the measurement report, selects a target cell, prepares the handover, and then sends the RRC Reconfiguration to the UE. The UE receives this command and immediately disconnects from the source cell to access the target. The entire decision-prepare-execute sequence is triggered at the moment the mobility condition is met.
This sequential model carries two fundamental weaknesses at the cell edge:
- Preparation latency during radio degradation: The source gNB must complete Xn or N2 HO preparation after the A3/A5 event fires. By the time the HANDOVER COMMAND reaches the UE (60–100 ms for N2, 30–50 ms for Xn), the source cell RSRP may have degraded further. If the UE enters a deep fade during preparation, T304 expiry and RLF follow.
- Single-target brittleness: The conventional procedure prepares exactly one target cell. If that cell is momentarily congested or the UE moves unpredictably, the handover fails and the UE must re-establish, incurring 100–300 ms of service interruption.
3GPP Release 16 introduced two complementary features to address these weaknesses: Conditional Handover (CHO) and DAPS Handover. CHO pre-configures multiple candidate target cells before the trigger condition is met, so that when the condition fires, the UE can execute immediately without waiting for network-side preparation. DAPS eliminates source-cell disconnection entirely by keeping the source PDCP stack active in parallel with the target during the handover execution phase.
"Conditional handover: Handover procedure in which the UE stores the handover command before the handover execution trigger condition is met, and executes the handover when the trigger condition is met." — TS 38.300 §9.2.3.3 (Release 16)
§17.2 CHO Architecture and candidateCellList (TS 38.331 §5.3.5a)
CHO extends the conventional handover state machine with a new UE state: CHO-configured. In this state the UE holds one or more pre-configured handover commands for candidate target cells. The UE continuously evaluates a set of execution conditions and, as soon as a condition for one candidate is satisfied, the UE executes the handover to that candidate without further network involvement.
candidateCellList Structure
The gNB delivers CHO configuration to the UE inside an RRC Reconfiguration message. The key IE is conditionalReconfiguration (TS 38.331 §6.3.3.1), which carries a list of candidate cells:
- candidateCellList: Up to eight candidate cells in Release 16. Each entry contains the target PCI, ARFCN, and a full
condRRCReconfig— a complete RRC Reconfiguration message that the UE will apply when it executes the handover to that candidate. - Trigger condition per candidate: Each candidate has an associated measurement condition using A3, A4, or A5 events. The A3 offset, hysteresis, time-to-trigger, and RSRP/RSRQ/SINR reference quantities are all specified per candidate, allowing different triggering thresholds for different target cells.
- condReconfigId: A unique identifier (1–8) for each candidate entry, used in status reports when the UE executes or cancels a CHO candidate.
"A UE configured with conditional handover shall evaluate the execution condition(s) for all the configured candidate cells. The UE shall initiate the handover execution as soon as one execution condition is fulfilled." — TS 38.331 §5.3.5a.3
CHO Pre-configuration Flow
The pre-configuration of candidate cells in CHO follows the same Xn or N2 handover preparation path as conventional HO — but it occurs early, when the source cell signal is still strong and there is no urgency for the UE to move. Specifically:
- The source gNB detects that a UE is approaching the coverage edge of one or more candidate cells (e.g., target RSRP is within 6 dB of the A3 offset threshold).
- For each candidate cell, the source gNB initiates an Xn HO preparation (XnAP HANDOVER REQUEST → HANDOVER REQUEST ACKNOWLEDGE) or N2 HO preparation. The target gNB reserves resources and returns a full RRC Reconfiguration payload (condRRCReconfig).
- The source gNB assembles the candidateCellList from all successful preparations and sends it to the UE via RRC Reconfiguration (conditionalReconfiguration IE).
- The UE stores all candidate configurations and begins per-candidate condition evaluation on every measurement interval.
Table 17.1 — CHO candidateCellList IE Field Summary (TS 38.331 §6.3.3.1)
| Field Name | Type / Range | Description | TS 38.331 Clause |
|---|---|---|---|
| condReconfigId | INTEGER (1..8) | Unique identifier for this candidate cell entry | §6.3.3.1 |
| condRRCReconfig | RRCReconfiguration | Complete RRC Reconfiguration the UE applies on executing to this candidate | §6.3.3.1 |
| condExecutionCond | SEQUENCE (1..2 events) | Measurement event(s) that must be fulfilled to trigger execution to this candidate | §6.3.3.1 |
| triggerQuantity | rsrp / rsrq / sinr | Reference quantity for the execution condition evaluation | §5.5.4 |
| a3-Offset | RSRP dB (range ±30 dB, 0.5 dB steps) | Offset applied to A3 condition evaluation for this specific candidate | §5.5.4.4 |
| hysteresis | 0–30 dB (0.5 dB steps) | Hysteresis for this candidate's execution condition | §5.5.4.4 |
| timeToTrigger | 0, 40, 64, 80, 100, 128, 160, 256, 320, 480, 512, 640, 1024, 1280, 2560, 5120 ms | TTT for this candidate; may differ from conventional A3 TTT | §5.5.4.4 |
| maxCandidateCells | 8 (Rel-16) | Maximum number of simultaneous candidates in the candidateCellList | §5.3.5a |
§17.3 CHO Execution and Condition Evaluation
Once the UE has received and stored the candidateCellList, it enters the CHO-configured state. In this state, the UE continues normal data exchange with the source cell while simultaneously evaluating the per-candidate execution conditions on every measurement reporting interval (as configured by the reportInterval in the measurement configuration).
Execution Condition Logic
TS 38.331 §5.3.5a.3 specifies three variants of execution condition:
- A3 condition (most common): Target RSRP (or RSRQ/SINR) exceeds source RSRP + offset + hysteresis for duration timeToTrigger. This is the standard "neighbour-is-better-by-threshold" condition.
- A5 condition: Source RSRP falls below threshold T1 AND target RSRP exceeds threshold T2. Used for coverage-failure-triggered CHO where the source has degraded below a critical level.
- Dual condition (A3 AND A5): The UE may be configured with two conditions per candidate. Both must be satisfied simultaneously. This allows the network to prevent premature CHO execution when the source is still acceptable.
Mn + Ofn + Ocn − Hys > Ms + Ofs + Ocs + OffCHO for duration TTTT,CHO
where:
Mn = measurement result (RSRP/RSRQ/SINR) of neighbour candidate cell
Ms = measurement result of source serving cell
Ofn, Ofs = frequency offset of neighbour/serving frequency
Ocn, Ocs = cell-individual offset (CIO) of neighbour/serving cell
Hys = hysteresis (applied with negative sign to prevent ping-pong)
OffCHO = a3-Offset specific to this candidateCellList entry
TTTT,CHO = timeToTrigger specific to this candidate (may be shorter than conventional A3 TTT)
The CHO TTT is typically set shorter than the conventional A3 TTT because CHO preparation has already been completed. Setting CHO-TTT = 0 ms is permissible and removes all time-domain hysteresis — the UE executes the moment the amplitude condition is met. In practice, CHO-TTT of 40–100 ms balances ping-pong prevention with fast response.
Multi-Candidate Priority and Tie-Breaking
If conditions for two or more candidates are simultaneously satisfied, TS 38.331 §5.3.5a.3 specifies that the UE shall execute the handover to the candidate with the lowest condReconfigId (i.e., the first-listed candidate in the conditionalReconfiguration IE). This is a deterministic tie-breaking rule, not a best-signal selection — it is therefore important that the network orders candidates by preference (e.g., strongest predicted RSRP) when constructing the candidateCellList.
CHO Cancel and Update
The source gNB can modify the candidateCellList at any time by sending a new RRC Reconfiguration with an updated conditionalReconfiguration IE. This allows the network to:
- Add new candidates (e.g., if the UE moves toward a previously-unforeseen cell)
- Remove candidates whose reserved resources have been released by the target gNB (e.g., due to resource reclamation timeout)
- Modify execution conditions if the propagation environment changes
After a successful CHO execution, the UE sends RRC Reconfiguration Complete with the condReconfigId of the executed candidate. The source gNB then sends XnAP CHO CANCEL to all other candidate gNBs to release their reserved resources.
§17.4 CHO Resource Reservation at Target gNBs
A key difference between CHO and conventional HO is that CHO requires target gNBs to hold resources in a pending state for an indeterminate duration. In conventional HO, the target reserves resources for at most T304 (2 seconds maximum). In CHO, resources may be held for tens of seconds or minutes, since the execution condition may take time to be met — or may never be met if the UE re-establishes with a different cell or goes idle.
Resource Reclamation Timer
3GPP TS 38.300 §9.2.3.3 requires the target gNB to implement a CHO resource reservation timer (vendor-configured; typically 30–120 seconds). When this timer expires, the target gNB releases the reserved resources and notifies the source gNB via XnAP CHO CANCEL. The source gNB must then either re-prepare that candidate (if still relevant) or remove it from the candidateCellList sent to the UE.
Table 17.2 — CHO vs Conventional HO: Resource Management Comparison
| Attribute | Conventional HO | CHO (Rel-16) |
|---|---|---|
| Number of targets prepared | 1 | Up to 8 (candidateCellList) |
| When preparation occurs | After A3/A5 event fires (source degraded) | Before trigger, while source is strong |
| Resource reservation duration at target | T304 (≤ 2 s) | Until CHO executed, cancelled, or reclamation timer expires (30–120 s) |
| UE latency from trigger to target sync | 60–200 ms (prep + exec) | < 20 ms (exec only) |
| Network involvement at execution | Required (RRC Reconfiguration delivery) | Not required (UE-autonomous) |
| Target count burdening network | 1 × HO preparation per attempt | Up to 8 × preparations, but amortised over time |
| RRC Reconfiguration Complete payload | No condReconfigId field | Includes condReconfigId of executed candidate |
| UE capability requirement | No CHO capability needed | UE must signal choCandidateCells capability ≥ 1 |
§17.5 CHO Failure Modes and TS 28.552 Counters
CHO introduces failure modes that have no analogue in conventional HO. The three primary CHO-specific failures are: (1) the execution condition is never met (condition-timeout), (2) the UE executes but the target RACH fails for all candidates, and (3) CHO preparation fails at one or more candidate cells.
Table 17.3 — TS 28.552 CHO Counter Definitions
| Counter Name (TS 28.552) | Trigger Event | Measurement Object | Notes |
|---|---|---|---|
| L.HO.CHO.PrepAtt | XnAP HO REQUEST with CHO configuration sent to a candidate gNB | Source NR cell (NCGI) | Incremented once per candidate preparation attempt |
| L.HO.CHO.PrepSucc | XnAP HO REQUEST ACK received from candidate gNB (condRRCReconfig returned) | Source NR cell | — |
| L.HO.CHO.PrepFail | XnAP HO PREPARATION FAILURE or timer expiry for candidate preparation | Source NR cell | Per candidate, not per CHO event |
| L.HO.CHO.ExecAtt | UE begins CHO execution (RRC Reconfiguration Complete with condReconfigId received) | Source NR cell | Incremented once per CHO event (not per candidate) |
| L.HO.CHO.ExecSucc | Successful RRC Reconfiguration Complete received at target and UE CONTEXT RELEASE COMMAND sent to source | Target NR cell (NCGI) | — |
| L.HO.CHO.ExecFail.RACH | RACH failure at executed candidate (no MSG4 received, T304 expiry) | Source NR cell | — |
| L.HO.CHO.Cancel.ReservTimeout | CHO resource reclamation timer expires at target before execution | Target NR cell | Indicates over-long CHO pre-configuration horizon |
| L.HO.CHO.Cancel.UERelease | CHO cancelled because UE moved to RRC_IDLE or performed RLF re-establishment to a non-CHO cell | Source NR cell | — |
CHOSR = L.HO.CHO.ExecSucc / L.HO.CHO.ExecAtt × 100%
Target: ≥ 98% (higher than conventional HOSR because CHO avoids preparation-during-fade failures)
CHO Preparation Success Rate:
CHO-PrepSR = L.HO.CHO.PrepSucc / L.HO.CHO.PrepAtt × 100%
Target: ≥ 96%
Example 17.1 — CHO Counter Analysis and CHOSR Decomposition
A source gNB reports the following 15-minute CHO PM counters:
- L.HO.CHO.PrepAtt = 3,600 (across 1,200 CHO events × 3 candidates avg)
- L.HO.CHO.PrepSucc = 3,456 (96.0% PrepSR)
- L.HO.CHO.PrepFail = 144
- L.HO.CHO.ExecAtt = 1,180 (of 1,200 CHO events, 20 never triggered = condition-timeout)
- L.HO.CHO.ExecSucc = 1,162
- L.HO.CHO.ExecFail.RACH = 18
- L.HO.CHO.Cancel.ReservTimeout = 48
Calculations:
- CHO-PrepSR = 3,456 / 3,600 × 100% = 96.0% — at target
- CHOSR = 1,162 / 1,180 × 100% = 98.5% — above 98% target
- Condition-never-met rate = 20 / 1,200 × 100% = 1.7% — UE improved before trigger fired
- RACH failure rate = 18 / 1,180 × 100% = 1.5% — acceptable
- ReservTimeout rate = 48 cancellations — review CHO trigger horizon; candidates being configured too early
Diagnosis: The 48 reclamation timeouts suggest the CHO pre-configuration is being triggered when the UE is still 15–20 dB above the execution threshold. Reduce the CHO pre-configuration trigger margin from 10 dB below A3 to 5 dB below A3 to shorten the reservation hold time.
§17.6 DAPS Handover — Dual Active Protocol Stack Architecture (TS 38.300 §9.2.3.4)
DAPS Handover (Dual Active Protocol Stack) addresses the user-plane interruption inherent in conventional handover. In a conventional HO, the UE applies the RRC Reconfiguration, drops the source bearers, and immediately switches all data transmission to the target cell — creating a user-plane gap of 20–50 ms even in the best case. For applications sensitive to jitter and packet loss (gaming, video conferencing, industrial automation), this gap is perceptible.
DAPS maintains two independent PDCP/RLC/MAC stacks simultaneously during the handover execution phase: one serving the source cell and one serving the target cell. The UE receives downlink data from both cells and transmits uplink on both, with the source stack remaining the primary anchor until an explicit DAPS source release message is received.
"DAPS handover: A handover procedure in which the UE maintains the connection to the source base station while setting up a connection to the target base station. The UE receives and transmits data via both source and target base stations simultaneously during the handover execution." — TS 38.300 §9.2.3.4
DAPS Bearer Architecture
Each DRB (Data Radio Bearer) that is to be maintained during DAPS is duplicated into a DAPS bearer pair:
- Source DAPS bearer: The original bearer on the source cell. Continues to carry user data (DL forwarding from UPF + UL from UE) during the execution phase.
- Target DAPS bearer: A new bearer established at the target cell during HO preparation. Begins carrying data once the UE has completed RACH to the target.
- PDCP layer behaviour: A single PDCP entity spans both source and target RLC/MAC stacks. The PDCP entity delivers DL PDUs from whichever stack receives them first (with duplicate detection by PDCP SN). For UL, the PDCP entity transmits on the target stack and ceases UL on the source after the RACH to the target is complete.
§17.7 DAPS HO Procedure — Step-by-Step (TS 38.331 §5.3.5.3)
The DAPS HO procedure adds four phases beyond the conventional HO: DAPS bearer setup during preparation, parallel active stacks during execution, PDCP data continuity management, and source release upon target path switch.
- DAPS HO preparation (source gNB → target gNB via Xn): The source gNB indicates in the XnAP HANDOVER REQUEST that the HO type is DAPS (dapsHORequired IE). The target gNB allocates resources for a DAPS bearer pair. The returned condRRCReconfig / RRCReconfiguration includes the
dapsConfigIE for each DAPS DRB. - RRC Reconfiguration with dapsConfig (source → UE): The UE receives the reconfiguration that contains both the target cell access parameters (RACH config, physCellId, ARFCN) and the
dapsConfigIE, which instructs the UE to keep the source PDCP stack active while establishing the target stack. - UE establishes target stack (RACH to target): The UE performs RACH to the target cell. Upon receiving MSG4 from the target, the UE activates the target RLC/MAC stack. The source PDCP stack remains active. T304 is not used for DAPS (the UE does not release source connectivity on T304 start).
- Dual active phase: Both source and target stacks are active. The PDCP entity delivers DL data from whichever arrives first (PDCP SN reordering window handles out-of-order). UL switches to target immediately after RACH success.
- RRC Reconfiguration Complete (UE → target gNB): The UE sends this message to the target, completing the access phase. The target gNB sends a PATH SWITCH REQUEST to the AMF to redirect the N3 UPF tunnel to the target gNB's N3 address.
- Path switch and N4 update (AMF → SMF → UPF): After path switch confirmation, new DL data is delivered via the target N3 tunnel. The UPF may buffer packets during the switch; these are forwarded to the target gNB via the source GTP-U forwarding tunnel.
- DAPS source release (source gNB → UE via source cell): After the path switch is acknowledged, the source gNB sends an RRC message instructing the UE to release the source DAPS stack. This message is the only explicit step that terminates source connectivity. The UE transitions to a single-stack state on the target cell.
§17.8 DAPS UE Capability and Prerequisites
DAPS imposes significantly higher UE complexity than conventional handover or CHO. The UE must simultaneously operate two complete RF chains (for simultaneous source and target reception/transmission), maintain two independent scheduler contexts, and manage a shared PDCP SN space across both stacks.
UE Capability Signaling
The UE signals DAPS capability in the UE capability IE daps-Parameters (TS 38.306 §4.2.7.7):
daps-SupportConfig: Indicates the maximum total number of simultaneous source and target cells — typically 1+1 (one source + one target) in Release 16.daps-UplinkPower: Whether the UE can simultaneously meet the UL power requirements for both source and target cells. This is the key constraint — if the source and target cells require the same UL power levels and the UE is power-limited, DAPS UL may not be feasible.daps-InterBandENDC: Extended capability indicating DAPS support across bands in EN-DC configurations (TS 37.340).
Table 17.4 — DAPS Prerequisites Checklist
| Prerequisite | 3GPP Reference | If Not Met |
|---|---|---|
| UE signals daps-SupportConfig ≥ 1 | TS 38.306 §4.2.7.7 | Network cannot configure DAPS HO for this UE; fall back to conventional HO |
| Xn interface exists between source and target gNB | TS 38.423 §8.3 | DAPS is only specified for Xn HO in Rel-16; N2 DAPS not supported |
| DRBs to be protected are mapped to DAPS bearers (dapsConfig IE present for each DRB) | TS 38.331 §6.3.2 | DRBs without dapsConfig IE are handled as conventional non-DAPS bearers (may be interrupted) |
| Source and target are same PLMN | TS 38.300 §9.2.3.4 | Cross-PLMN DAPS not supported in Release 16 |
| UE not in EN-DC anchor role (or EN-DC inter-band DAPS capability signaled) | TS 37.340 §10.3 | DAPS restricted for EN-DC configurations unless UE signals daps-InterBandENDC |
| Source gNB confirms directForwardingPathAvailability | TS 38.423 §9.2.2.1 | Without direct forwarding, buffered DL packets must traverse CN, increasing latency during path switch |
§17.9 DAPS TS 28.552 Counters and Interruption KPI
Table 17.5 — TS 28.552 DAPS Counter Definitions
| Counter Name (TS 28.552) | Trigger Event | Measurement Object |
|---|---|---|
| L.HO.DAPS.Att | XnAP HANDOVER REQUEST with dapsHORequired sent by source gNB | Source NR cell (NCGI) |
| L.HO.DAPS.PrepSucc | XnAP HO REQUEST ACK with DAPS config received (dapsConfig IE present) | Source NR cell |
| L.HO.DAPS.ExecSucc | RRC Reconfiguration Complete received at target; PATH SWITCH ACK received | Target NR cell (NCGI) |
| L.HO.DAPS.ExecFail.RACH | RACH failure at target during DAPS execution (MSG4 not received) | Source NR cell |
| L.HO.DAPS.SourceRelease.Time | Time from RRC Reconfiguration Complete (at target) to DAPS Source Release message sent | Source NR cell |
| L.HO.DAPS.UPInterruptTime | User-plane interruption time measured from last DL PDU on source stack to first DL PDU on target stack | Per DRB at target gNB |
DAPS-HOSR = L.HO.DAPS.ExecSucc / L.HO.DAPS.Att × 100%
Target: ≥ 99% (higher target than conventional HO because DAPS UEs typically have better RF capability)
DAPS User-Plane Interruption Time (TS 28.554):
TUP-int = Tlast-DL-source − Tfirst-DL-target
Target: < 1 ms (near-zero due to simultaneous stack activity)
Example 17.2 — DAPS vs Conventional HO: User-Plane Interruption Comparison
Scenario: A network carries 1,200 inter-gNB handovers per hour on a dense urban cluster. Half are conventional Xn HO (600), and half are DAPS Xn HO (600). The cluster's UPF has a moderate N4 update latency of 25 ms. Direct GTP-U forwarding between gNBs is enabled.
Conventional Xn HO interruption budget:
- T304 start to RACH MSG4: ~15 ms (good radio)
- PDCP reordering window + buffer drain: ~5 ms
- Total UP interruption (approx): 20 ms per HO
DAPS Xn HO interruption budget:
- Source PDCP active until explicit release message: both stacks delivering in parallel
- PDCP SN duplicate detection ensures no packet is missed
- Total UP interruption: < 1 ms (only PHY transition gap)
Result: For a 1 Gbps DL session during HO, a 20 ms interruption = ~2.5 MB of potential loss/delay. DAPS reduces this to <125 KB equivalent. For gaming at 50 ms RTT requirement, 20 ms of interruption triggers a visible freeze; DAPS interruption is imperceptible.
§17.10 CHO Combined with DAPS, and HO Mode Selection Framework
DAPS-CHO (Release 17)
Release 16 defined CHO and DAPS independently; a UE could use one or the other but not both simultaneously. 3GPP Release 17 introduced DAPS-CHO: a combination where the UE holds pre-configured DAPS handover commands for multiple candidate cells and executes DAPS HO autonomously when the condition for any candidate is met. This combines the zero-preparation-latency benefit of CHO with the zero-interruption benefit of DAPS.
DAPS-CHO requires the UE to signal both choCandidateCells capability (for CHO) and daps-SupportConfig (for DAPS). The pre-configuration procedure requires the source gNB to prepare DAPS bearers at each candidate cell, meaning the XnAP HANDOVER REQUEST includes both conditionalReconfiguration and dapsHORequired IEs.
Table 17.6 — HO Mode Comparison Matrix
| Mode | 3GPP Release | Prep. Latency | UP Interruption | Multi-candidate | UE Complexity | Best Use Case |
|---|---|---|---|---|---|---|
| Conventional Xn HO | Rel-15 | 30–50 ms | 15–30 ms | No (1 target) | Low | Good radio, short handover gap acceptable |
| Conventional N2 HO | Rel-15 | 60–100 ms | 25–50 ms | No (1 target) | Low | No Xn, cross-PLMN, inter-RAT |
| CHO (Rel-16) | Rel-16 | < 5 ms (prep done early) | 10–20 ms | Yes (up to 8) | Medium | High-speed UEs, cell edge, T304 failures |
| DAPS HO (Rel-16) | Rel-16 | 30–50 ms (Xn prep) | < 1 ms | No (1 target) | High (dual RF) | Low-latency applications, stationary UEs at cell edge |
| DAPS-CHO (Rel-17) | Rel-17 | < 5 ms | < 1 ms | Yes (up to 8) | Very high | High-speed + ultra-low-latency applications |
Table 17.7 — CHO Tuning Parameters and Recommended Settings
| Parameter | TS 38.331 Ref | Conventional HO | CHO Setting | Rationale |
|---|---|---|---|---|
| timeToTrigger (A3 exec cond) | §5.5.4.4 | 160–320 ms | 40–100 ms | Prep already complete; shorter TTT reduces ping-pong risk while allowing fast execution |
| a3-Offset (CHO-specific) | §6.3.3.1 | 3 dB | 1–2 dB | CHO should execute earlier (smaller offset) since source degradation is not a constraint during exec |
| CHO pre-config trigger margin | §5.3.5a | N/A | 4–6 dB below exec threshold | Too early → resource reservation timeouts. Too late → prep incomplete when exec fires. |
| candidateCellList size | §5.3.5a | 1 | 2–4 (optimal); max 8 | More candidates → more prep overhead. 2–4 covers direction uncertainty without excessive load. |
| CHO reservation timer (at target) | TS 38.300 §9.2.3.3 | N/A (T304 = 2 s) | 30–60 s | Must be long enough to cover typical dwell time in the edge zone; too short causes premature cancel |
| T304 (CHO exec) | §6.3.2 | 500–2000 ms | 300–500 ms | CHO execution is fast (no prep); T304 can be shorter. 500 ms provides adequate margin for RACH. |
Table 17.8 — CHO/DAPS Diagnostic Decision Tree
| Observed Symptom | First Counter to Check | Likely Root Cause | Corrective Action |
|---|---|---|---|
| CHOSR below 98% | L.HO.CHO.ExecFail.RACH vs L.HO.CHO.PrepFail ratio | If RACH failures dominate: target cell RACH overload or uplink interference. If PrepFail dominates: candidate target overloaded or Xn issue. | Tune PRACH preamble capacity at candidate targets; audit Xn interfaces |
| High L.HO.CHO.Cancel.ReservTimeout rate (>5%) | L.HO.CHO.Cancel.ReservTimeout | CHO pre-configuration triggered too early; UE spending too long in edge zone before condition fires | Reduce pre-config trigger margin (move closer to exec threshold); reduce candidateCellList size |
| CHO condition never fires (UE exits via RLF) | L.HO.CHO.Cancel.UERelease vs L.HO.CHO.ExecAtt | A3 exec threshold too aggressive (offset too small, no hysteresis); UE drops before condition met | Increase a3-Offset for CHO, enable A5 dual condition as backstop |
| DAPS-HOSR below 99% | L.HO.DAPS.ExecFail.RACH | Target RACH failure during DAPS — uplink power insufficient to access target while source active on same band | Verify UE daps-UplinkPower capability; avoid DAPS for intra-band same-UL-frequency scenarios |
| DAPS UP interruption >5 ms | L.HO.DAPS.UPInterruptTime | Source gNB delayed DAPS Source Release message; N4 path switch latency high; no direct GTP-U forwarding | Enable direct forwarding (directForwardingPathAvailability); audit UPF N4 latency; optimise source release trigger |
Example 17.3 — CHO Optimisation: Reducing Reservation Timeouts via Pre-config Horizon Adjustment
Problem: A suburban cluster reports L.HO.CHO.Cancel.ReservTimeout = 320 per hour out of 2,400 CHO events (13.3%). Target cell CPU utilisation increases during peak hours due to excessive PDCP/RLC context reservation.
Root cause analysis: The CHO pre-configuration trigger is set at 12 dB below the A3 execution threshold. At typical UE speeds (30–60 km/h in suburban), the UE spends 90–120 seconds in the edge zone. The CHO reservation timer at target cells is 60 seconds. 120 s dwell > 60 s timer → cancellation.
Actions:
- Reduce pre-configuration trigger margin from 12 dB to 6 dB below A3 threshold. This halves the time the UE spends pre-configured before the condition fires.
- Increase reservation timer from 60 s to 90 s to provide additional coverage for the remaining edge-zone dwell time.
- Reduce candidateCellList size from 4 to 2 candidates (the two highest-predicted candidates). This halves the total reservation resource burden.
Expected result: L.HO.CHO.Cancel.ReservTimeout reduced from 320/hr to <80/hr (3.3%). CHOSR improves marginally (fewer candidates means fewer wasted preparations). CPU load at target cells reduces by ~15%.
Example 17.4 — Worked Counter Example: CHO vs Conventional HO HOSR on Same Cluster
A network trial activates CHO on a high-mobility corridor (highway cluster, 120+ km/h UEs). The trial uses a cell-split strategy: odd cells use conventional Xn HO, even cells use CHO. One-week PM data:
| Metric | Conventional HO (odd cells) | CHO (even cells) | Delta |
|---|---|---|---|
| HO Attempts | 18,400 | 17,900 | — |
| HO Successes | 16,744 | 17,452 | — |
| HOSR | 91.0% | 97.5% | +6.5 pp |
| T304 Failure Rate | 4.2% | 0.4% | −3.8 pp |
| RLF during HO | 3.1% | 0.8% | −2.3 pp |
| Avg UP interruption (DT measured) | 28 ms | 12 ms | −16 ms |
Conclusion: CHO delivers +6.5 percentage-point HOSR improvement on the highway cluster. The dominant gain comes from eliminating T304 failures (from 4.2% → 0.4%), consistent with the pre-configuration eliminating preparation latency during deep fade periods at the cell edge.
Chapter 17 — Key Takeaways
- Conventional HO incurs a 60–200 ms service gap because network preparation occurs after the trigger fires, while the source cell is already degraded. CHO (Rel-16, TS 38.331 §5.3.5a) eliminates this by pre-configuring up to 8 candidate cells before the execution condition is met.
- The CHO
candidateCellListcarries one complete condRRCReconfig per candidate. The UE evaluates per-candidate A3/A4/A5 execution conditions autonomously and executes to the first satisfying candidate without further network involvement. Lowest condReconfigId wins in a tie. - CHO preparation uses standard Xn HO preparation (XnAP HO REQUEST → ACK), but the target gNB must hold resources until the CHO reservation timer expires (typically 30–120 s). Excessive reservation timeouts (counter: L.HO.CHO.Cancel.ReservTimeout) indicate the pre-configuration trigger is set too early.
- Key CHO tuning levers: pre-config trigger margin (4–6 dB below exec threshold), CHO-specific timeToTrigger (40–100 ms), a3-Offset per candidate (1–2 dB), and candidateCellList size (2–4 candidates).
- DAPS HO (Rel-16, TS 38.300 §9.2.3.4, TS 38.331 §5.3.5.3) maintains dual PDCP/RLC/MAC stacks simultaneously, reducing user-plane interruption to <1 ms. The source stack remains active until an explicit DAPS Source Release message, which follows the N3 path switch to the target UPF anchor.
- DAPS requires the UE to signal
daps-SupportConfig(TS 38.306 §4.2.7.7), a direct Xn interface between source and target, and same-PLMN operation. DAPS is Xn-only in Rel-16; N2 DAPS is not supported. - DAPS-CHO (Rel-17) combines both features: pre-configured DAPS candidates executed autonomously by the UE. This achieves near-zero preparation latency AND near-zero user-plane interruption, at the cost of the highest UE and network complexity.
- HO mode selection rule: N2 HO if no Xn; Xn HO if no CHO/DAPS UE capability; CHO if UE has CHO capability; DAPS if UE has DAPS capability; DAPS-CHO if UE has both (Rel-17). High-speed UEs (highway, rail) benefit most from CHO; low-latency applications (gaming, XR) benefit most from DAPS.
Automatic Neighbour Relations (ANR)
Complete 3GPP procedure analysis: ANR function architecture (TS 36.300 §22.3, TS 38.300 §9.3), NCGI detection via UE measurement reports and RRC, NRT management and neighbour addition/removal policy, SON coordination with load balancing and MRO, TS 28.552 ANR counter decomposition, optimisation thresholds and audit workflow — all from first principles
3GPP TS 38.300 §9.3 · TS 36.300 §22.3 · TS 38.331 §5.5.4 · TS 28.552 §5.1.3 · TS 38.413 · TS 36.423Chapter Learning Objectives
After completing this chapter, you will be able to:
- Explain the neighbour relation problem in dense 5G NR deployments and why manual NRT maintenance is operationally unsustainable
- Trace the full ANR NCGI detection flow: UE RRC measurement report with unknown PCI, CGI read procedure (TS 38.331 §5.5.4.4), and gNB-initiated X2/Xn TNL lookup
- Describe the NRT data model — neighbour relation attributes (noRemove, noHO, noX2/noXn, blacklisted) and their impact on handover policy
- Classify all ANR state transitions: detected → candidate → active → stale → removed, and map each to TS 28.552 counters
- Explain how the ANR function coordinates with MRO and MLB SON functions, including the SON coordination arbitration rules
- Distinguish intra-frequency, inter-frequency, and inter-RAT (E-UTRA/NR) ANR procedures and the measurement gaps required for each
- Compute NRT health KPIs — missing neighbour ratio, redundant neighbour ratio, and ANR success rate — from TS 28.552 performance data
- Apply the six-step ANR audit workflow to identify and resolve misconfigured NRT entries in a live 5G NR network
- Design ANR configuration parameters (reportCGI, TTT, A3 offsets, NRT size limits) for high-density urban and wide-area rural deployments
- Interpret the interaction between ANR and PCI confusion (PCI mod-3/mod-30 clash) and apply avoidance strategies
- Construct an end-to-end ANR optimisation case study using counter traces and root-cause analysis
§18.1 Introduction — The Neighbour Relation Problem
Every handover in 5G NR requires a neighbour relation to exist in the serving cell's Neighbour Relation Table (NRT). Without an entry for a potential target cell, the source gNB cannot initiate preparation, and the UE will fail to execute a handover even if the target cell delivers a substantially better signal. The consequence is avoidable Radio Link Failure (RLF), unnecessary throughput degradation at the cell edge, and elevated inter-gNB N2 re-establishment load on the AMF.
In a static, manually planned network the NRT can be built at deployment time. In practice, 5G NR networks are never static. New gNBs are continuously added, sectors are retilted, antenna heights change, and indoor coverage nodes are commissioned after the macro layer is live. Any of these changes can create new effective neighbours — cells that are now reachable by UEs in the coverage overlap zone — without any corresponding NRT update. The only scalable solution is Automatic Neighbour Relations (ANR).
ANR is a SON (Self-Organising Network) function specified in TS 38.300 §9.3 for 5G NR and (with identical architecture) in TS 36.300 §22.3 for LTE. Its purpose is to allow the network to autonomously discover new neighbouring cells, verify they can serve as handover targets, add them to the NRT, and remove entries that are no longer useful — all without operator intervention.
"The ANR function is responsible for managing the Neighbour Relation Table (NRT). The NRT contains entries for neighbour cells including intra-frequency, inter-frequency and inter-RAT cells. The ANR function uses UE measurements to detect new neighbour cells and to maintain the NRT." — TS 38.300 §9.3.1 (Release 17)
This chapter traces the complete ANR mechanism from physical-layer measurement through NCGI detection, NRT population, Xn transport-network-layer (TNL) association, and SON coordination. Eight tables capture all key parameters and counter mappings. Four worked examples build intuition for the optimisation decisions that ANR exposes.
§18.2 NRT Data Model and Neighbour Relation Attributes
The NRT is a per-cell database maintained by the gNB (or eNB in LTE). Each entry in the NRT represents a directed relationship from the serving cell to a potential target cell. The relationship is directed: cell A having B in its NRT does not imply B has A in its NRT. Symmetry must be explicitly configured or ANR-discovered in both directions.
Core NRT Entry Fields
Each NRT entry carries the following mandatory and optional attributes, as specified in TS 36.423 §9.2.26 (X2) and the equivalent XnAP IEs for NR:
| Attribute | Type | Meaning | Default |
|---|---|---|---|
neighbourCellId |
NCGI / ECGI | Globally unique cell identifier (MCC+MNC+NCI for NR, MCC+MNC+ECI for LTE) | Mandatory |
physCellId |
0–1007 | Physical Cell Identity of the neighbour — used by UE to distinguish cells on the same frequency | Mandatory |
nrFrequencyRef |
NR-ARFCN | Absolute Radio Frequency Channel Number of the SSB used for measurement | Mandatory |
noRemove |
Boolean | When TRUE, the ANR function is prohibited from autonomously removing this entry. Used to protect manually-configured golden neighbours. | FALSE |
noHO |
Boolean | When TRUE, handover to this neighbour is blocked. Entry is retained for measurement reporting only. | FALSE |
noXn |
Boolean | When TRUE, Xn interface setup is not attempted. Fallback to N2 (NGAP) handover if HO is permitted. | FALSE (attempt Xn) |
blacklisted |
Boolean | When TRUE, both measurement reporting and HO to this cell are disabled. Set by ANR after repeated preparation failures. | FALSE |
sourceOfEntry |
Enum | Origin: SON_ANR, OAM, SELF, or OTHER. Determines if ANR can autonomously remove it. |
— |
noRemove = TRUE prevents ANR from deleting the entry but says nothing about whether HO can proceed. noHO = TRUE prevents handover while keeping the entry visible for measurement reporting. A common configuration error is setting noHO = TRUE on a temporarily congested cell and forgetting to reset it — the result is a permanent HO black spot that ANR will never self-heal.
NRT Size Limits
The gNB implementation limits the total NRT size per cell. While 3GPP does not mandate a specific maximum, typical vendor implementations support 32–128 intra-RAT neighbours per cell and 16–32 inter-RAT entries. When the NRT reaches capacity, ANR must apply an eviction policy before adding new entries. The standard eviction criterion is: remove the ANR-discovered entry with the longest elapsed time since the last successful handover use — equivalent to a Least-Recently-Used (LRU) cache policy.
§18.3 NCGI Detection — The CGI Read Procedure (TS 38.331 §5.5.4.4)
The fundamental challenge for ANR is that UE measurement reports (A3, A4, A5 events) identify neighbour cells only by their Physical Cell Identity (PCI). The PCI is a 10-bit value (0–1007) scoped to a single frequency layer — it is not globally unique. Two cells on the same ARFCN in different cities may share the same PCI. The gNB cannot add an NRT entry for a PCI alone; it needs the full NR Cell Global Identity (NCGI = MCC + MNC + NCI, 36 bits).
ANR solves this by using the UE to read the cell's System Information Block 1 (SIB1), which contains the NCGI. This is the CGI read procedure, specified in TS 38.331 §5.5.4.4 and triggered via the reportCGI IE in the measurement configuration.
CGI Read Trigger Conditions
The gNB triggers the CGI read procedure when all of the following are true:
- A UE measurement report contains a PCI that does not exist in the serving cell's NRT.
- The reported RSRP of the unknown-PCI cell exceeds a configurable threshold (typically −110 dBm or better, to ensure the UE can reliably decode SIB1).
- The UE's measurement configuration does not already include a
reportCGIrequest for that PCI on that ARFCN. - The gNB has not received a recent CGI read failure for the same (PCI, ARFCN) pair (to avoid repeated futile attempts).
"The UE shall, if it receives a reportCGI in the measObjectNR: attempt to acquire the NCGI and the global gNB-ID of the cell indicated by the physCellId and perform the following actions: include the cgi-Info and report the NCGI in the measurement report." — TS 38.331 §5.5.4.4 (Release 17)
CGI Read Procedure Step-by-Step
Measurement Gap Requirement for CGI Read
For intra-frequency CGI reads, no measurement gap is required — the UE can read SIB1 from the unknown cell during its normal reception windows. For inter-frequency and inter-RAT CGI reads, a measurement gap must be scheduled. TS 38.133 §9 defines the gap patterns: Gap Pattern 0 (40 ms period, 6 ms gap) is the most common. During the gap the UE suspends downlink reception from the serving cell; this creates a brief throughput interruption that the gNB must account for in its scheduling decisions.
| Scenario | Gap Required | SIB1 Acquisition Time | Total Procedure (approx.) | Throughput Impact |
|---|---|---|---|---|
| Intra-frequency NR | No | 20–40 ms (2–4 SIB1 periods) | 60–100 ms | Negligible |
| Inter-frequency NR | Yes (GP0: 40 ms/6 ms) | 80–160 ms | 150–300 ms | ~15% DL reduction during gaps |
| Inter-RAT (E-UTRA) | Yes (GP0 or GP1) | 120–240 ms (SIB1 + SIB4/5) | 250–450 ms | ~20% DL reduction during gaps |
| Inter-RAT (WLAN) | Yes | 200–400 ms | 400–700 ms | ~25% DL reduction during gaps |
§18.4 ANR State Machine — From Detection to Active Neighbour
Every NRT entry managed by ANR progresses through a defined set of states. Understanding these states is essential for interpreting TS 28.552 counters and diagnosing NRT instability (entries oscillating between added and removed).
| Transition | Trigger | TS 28.552 Counter | Typical Value (healthy network) |
|---|---|---|---|
| UNDETECTED → DETECTED | MeasurementReport with unknown PCI on monitored ARFCN | SON.ANR.NbrDetected |
5–20 / cell / day (stable network) |
| DETECTED → CANDIDATE | Successful CGI read (cgi-Info present in MeasReport) | SON.ANR.NbrCGISuccess |
80–95% of DETECTED |
| DETECTED → REMOVED | CGI read failures exceed retry limit (default: 3 attempts) | SON.ANR.CGIFail |
<10% of DETECTED |
| CANDIDATE → ACTIVE | Xn Setup Request success or noXn=TRUE set |
SON.ANR.NbrAdded |
>90% of CANDIDATE |
| ACTIVE → STALE | No successful HO to this neighbour for T_stale (default: 30 days) | SON.ANR.NbrStale |
<5% of ACTIVE/month |
| STALE/ACTIVE → REMOVED | ANR eviction (LRU policy) or OAM command, noRemove=FALSE | SON.ANR.NbrRemoved |
~Equal to NbrAdded (steady state) |
| ACTIVE → REMOVED (direct) | Repeated Xn HO preparation failures (≥3 consecutive) | SON.ANR.PrepFail |
<2% of ACTIVE |
§18.5 ANR KPIs and Counter Formulas
Three primary KPIs characterise NRT health and ANR function performance. These are derived directly from TS 28.552 performance measurement counters and should be evaluated per-cell, per-gNB, and at cluster level during any mobility optimisation campaign.
Missing Neighbour Ratio (MNR)
The Missing Neighbour Ratio quantifies how often UEs encounter cells that are not yet in the NRT. A high MNR indicates that the ANR function is not keeping pace with network changes or that the CGI read procedure is failing at elevated rates.
Redundant Neighbour Ratio (RNR)
The Redundant Neighbour Ratio measures the fraction of NRT entries that have not been used for handover in the past T_stale window. High RNR wastes NRT capacity and increases per-cell measurement configuration overhead.
ANR CGI Success Rate (ACGSR)
ACGSR measures the fraction of CGI read attempts that successfully resolve a PCI to an NCGI. Failures are caused by insufficient signal quality at the unknown cell, measurement gap scheduling conflicts, or the UE leaving the cell's coverage before SIB1 acquisition completes.
ANR Add Rate and Remove Rate
In a stable network, the rate at which ANR adds and removes NRT entries should be approximately equal over a 30-day window. A persistently higher add rate than remove rate signals NRT capacity exhaustion is approaching. A higher remove rate than add rate after a network change indicates ANR is cleaning up stale entries correctly.
§18.6 Intra-Frequency, Inter-Frequency, and Inter-RAT ANR
ANR operates across three frequency domains, each with distinct measurement configuration requirements and CGI read complexity.
Intra-Frequency ANR
The simplest case. Both the serving cell and the unknown neighbour are on the same NR ARFCN. The UE continuously monitors intra-frequency neighbours as part of its connected-mode measurement procedures (A3/A4/A5 events). No measurement gap is required for SIB1 reading. The CGI read completes in 20–60 ms. This case accounts for the majority of ANR activity in homogeneous macro deployments.
Inter-Frequency ANR
The unknown neighbour is on a different NR ARFCN. The gNB must first have configured the UE to perform inter-frequency measurements (measObjectNR for the target ARFCN must exist in the measurement configuration). If the serving cell has not already configured measurements on the target ARFCN, the gNB must add a new measObjectNR and measurement identity before the reportCGI trigger can be added. Additionally, measurement gaps must be configured via measGapConfig (TS 38.331 §6.3.5.7). The CGI read procedure then takes 150–300 ms due to gap scheduling.
"For inter-frequency measurements, the UE shall perform the measurements in measurement gaps. The measurement gap pattern shall be configured by the network... The UE shall apply the configured measurement gap patterns for performing the required measurements." — TS 38.133 §9.1.2 (Release 17)
Inter-RAT ANR (NR ↔ E-UTRA)
The most complex case. The unknown cell is on a different radio access technology — typically E-UTRA (LTE) when the 5G NR network overlays an existing LTE coverage layer. The procedure requires:
- A
measObjectEUTRAto be configured for the EARFCN of the target LTE cell - Measurement gaps for inter-RAT reception
- SIB1 (and optionally SIB4/SIB5) reading from the LTE cell to extract the ECGI
- E-UTRA CGI reporting via the
cgi-InfoEUTRAfield in the NR MeasurementReport - After ECGI is known, the gNB can establish X2 (rather than Xn) to the LTE eNB and add an inter-RAT NRT entry
| Scenario | measObject Type | Gap Required | reportCGI IE | Interface for NRT Entry |
|---|---|---|---|---|
| Intra-freq NR→NR | measObjectNR (same ARFCN) |
No | reportCGI-NR |
Xn (TS 38.423) |
| Inter-freq NR→NR | measObjectNR (new ARFCN) |
Yes (GP0/GP1) | reportCGI-NR |
Xn (TS 38.423) |
| Inter-RAT NR→LTE | measObjectEUTRA |
Yes (GP0/GP1) | reportCGI-EUTRA |
X2 (TS 36.423) or en-gNB Xn |
| Inter-RAT NR→WLAN | measObjectUTRA-FDD |
Yes | WLAN-specific IE | N26 (core coordination) |
§18.7 PCI Confusion and Its Interaction with ANR
ANR relies on PCI to identify unknown neighbours. If two cells on the same frequency share the same PCI (a PCI collision) the ANR function will incorrectly associate measurement reports from one cell with CGI data obtained from the other. The result is a corrupt NRT entry — a NCGI that does not correspond to the cell the UE actually measured. Handover attempts using this entry will either succeed against the wrong cell (confusing the session continuity logic) or fail at preparation because the NCGI belongs to a different gNB.
Two distinct PCI confusion types affect ANR:
PCI Collision
Two cells on the same frequency have identical PCI values within mutual coverage range. The UE cannot distinguish them by PCI alone. Any measurement report for that PCI is ambiguous. ANR detects this condition when the CGI read procedure returns two different NCGIs for the same (PCI, ARFCN) pair over successive measurement reports. Counter: SON.PCI.CollisionDetected.
PCI Confusion (mod-3 / mod-30 Clash)
Even without a collision, LTE/NR physical-layer signals can interfere if neighbouring cells' PCIs share the same modulo residue used by reference signals:
- mod-3 clash (NR): DMRS sequences in NR are partially indexed by PCI mod 3. If two adjacent cells have PCIs with the same mod-3 residue, their DMRS patterns partially overlap, degrading channel estimation for UEs in the coverage overlap area.
- mod-30 clash (LTE, relevant for NSA): LTE Cell-Specific Reference Signals (CRS) are indexed by PCI mod 3 (port 0) and mod 6 (ports 1–3). In NSA deployments the LTE anchor cell's CRS interference with a co-located NR cell can confuse ANR neighbour detection if the LTE eNB and NR gNB share the same PCI mod residue.
"Physical Cell Identity (PCI) planning shall ensure that PCI collisions and PCI confusions are avoided. A PCI collision occurs when two cells with an overlapping coverage area use the same PCI. A PCI confusion occurs when two cells with an overlapping coverage area have PCIs that belong to the same PCI group." — TS 36.300 §22.5.1 (applicable to NR by TS 38.300 reference)
§18.8 ANR Coordination with MRO and MLB
ANR is one of three foundational SON functions specified in 3GPP — the others being Mobility Robustness Optimisation (MRO, TS 36.300 §22.3.2) and Mobility Load Balancing (MLB, TS 36.300 §22.3.3). These functions share the NRT as a common data structure, and their actions must be coordinated to avoid conflicting NRT modifications.
ANR–MRO Interaction
MRO detects too-early, too-late, and wrong-cell handovers by analysing RLF reports (TS 38.331 §5.3.14) and handover outcome counters. When MRO identifies a too-late handover to a specific neighbour, it may recommend increasing the A3 offset to that neighbour — which implies the neighbour relation must already exist in the NRT. If ANR has not yet added the cell, or has removed it as stale, MRO's optimisation is stymied. Conversely, MRO may recommend blacklisting a neighbour after repeated too-early HO failures — which requires ANR to set noHO = TRUE for that entry.
The coordination rule in TS 36.300 §22.3.4 states: MRO shall not modify an NRT entry that has been marked noRemove by OAM. ANR shall not remove an NRT entry that MRO has modified in the current optimisation window.
ANR–MLB Interaction
MLB uses the NRT to identify candidate target cells for load redistribution. When a serving cell becomes congested, MLB selects NRT entries with available capacity and adjusts the A5 handover offset to push UEs toward them. If ANR removes an NRT entry that MLB is actively using for load redistribution, the MLB function loses its target and the load redistribution attempt fails. The coordination mechanism is a usage lock: MLB marks NRT entries it is actively using with a mlbLock = TRUE attribute. ANR must check this flag before evicting any entry.
§18.9 ANR Configuration Parameters
ANR behaviour is controlled by a set of parameters that must be tuned to the specific deployment scenario. The following table lists the key parameters defined in TS 38.300 §9.3 and typically exposed by vendor implementations through OAM/NMS interfaces.
| Parameter | Spec Reference | Typical Range | Urban Default | Rural Default | Effect of Increasing |
|---|---|---|---|---|---|
anrRsrpThreshold |
TS 38.300 §9.3 | −130 to −90 dBm | −110 dBm | −115 dBm | Fewer CGI reads triggered; reduces measurement overhead but may miss weak neighbours |
anrNrtMaxSize |
Vendor | 16–128 | 64 | 32 | More neighbours stored; increases HO flexibility but grows measurement configuration complexity |
anrStaleTimeout (T_stale) |
TS 38.300 §9.3 | 7–90 days | 30 days | 60 days | Entries retained longer; reduces NRT churn but increases redundant neighbour ratio |
anrCgiRetryLimit |
Vendor | 1–5 | 3 | 3 | More attempts before CGI read gives up; increases ACGSR for marginal cells at cost of longer procedure time |
anrPrepFailThreshold |
Vendor | 2–10 | 3 | 5 | More prep failures tolerated before NRT entry is blacklisted; useful for intermittently congested neighbours |
anrXnSetupTimeout |
TS 38.423 | 1–10 s | 5 s | 5 s | Longer wait for Xn Setup Ack; useful when transport latency is high but increases CANDIDATE state duration |
Urban vs. Rural Parameter Strategy
Urban dense deployments have many physically proximate cells but limited propagation range. The MNR tends to be high because new small cells are frequently commissioned. Parameters should favour fast ANR detection (low anrRsrpThreshold, high anrNrtMaxSize) with aggressive stale cleanup (low anrStaleTimeout). Rural macro deployments have fewer cells but longer propagation paths; weak signals at 150+ km may still represent valid neighbours for fast-moving UEs (trains). Parameters should favour detection sensitivity (slightly lower anrRsrpThreshold) and longer retention (higher anrStaleTimeout).
§18.10 ANR Audit Workflow — Six Steps to NRT Optimisation
A systematic ANR audit should be performed after any significant network change (new cell addition, antenna modification, frequency refarming) and as part of the quarterly SON health review. The following six-step workflow is derived from field practice and aligned with the TS 28.552 counter set.
§18.11 Worked Examples
Worked Example 18.1 — MNR Calculation and Missing Neighbour Identification
Scenario: After commissioning 12 new indoor small cells in a shopping centre, the macro cluster covering the venue shows elevated handover failure rates. You extract the following counters for the serving macro cell (Cell ID: 460-00-A001) over a 7-day window:
SON.ANR.NbrDetected= 234 (unknown PCIs in measurement reports)SON.HO.PrepAttIntra= 4,280SON.HO.PrepAttInter= 890SON.ANR.NbrCGISuccess= 198SON.ANR.CGIFail= 36
Step 1 — Compute MNR:
MNR of 4.53% exceeds the target of <2%. This confirms the indoor cells are not yet in the macro NRT.
Step 2 — Compute ACGSR:
ACGSR of 84.6% is slightly below target (>85%). This suggests the indoor cells are at marginal signal strength from the macro perspective — the measurement gap timing and the anrRsrpThreshold (currently −110 dBm) are borderline for the indoor environment. Action: lower anrRsrpThreshold to −115 dBm for this macro cluster and add the indoor cells manually to the NRT as seed entries with noRemove = FALSE (allowing ANR to verify and maintain them). Expected outcome: MNR drops below 1% within 3 days as ANR completes CGI reads for the remaining entries.
Worked Example 18.2 — Stale NRT Cleanup and RNR Reduction
Scenario: A rural macro gNB (Cell ID: 460-00-B007) has an NRT that is 91% full (58 of 64 entries occupied). The ANR function has stopped adding new neighbours because the table is near capacity, and the MNR has risen to 6.8%. You review the NRT and find 19 entries with zero handover usage in the past 90 days.
Step 1 — Compute RNR:
RNR of 32.8% is far above the target of <10%. The current anrStaleTimeout is 90 days (overly conservative for this deployment).
Step 2 — Action plan: Reduce anrStaleTimeout to 30 days. This immediately marks 19 entries as STALE and eligible for eviction. ANR evicts them (LRU order) over the next 24 hours, freeing 19 NRT slots. The available capacity allows ANR to resume new neighbour detection, and MNR drops from 6.8% to 1.4% within 7 days as the missing cells are added. One caution: verify that the 19 stale entries do not correspond to cells used by MLB for inter-cell load balancing (check mlbLock flag before reducing T_stale).
Worked Example 18.3 — CGI Read Failure Root Cause Analysis
Scenario: A gNB in a high-rise urban cluster shows SON.ANR.CGIFail = 87 over 7 days against SON.ANR.NbrDetected = 105. ACGSR = 17.1% — critically below the 85% target. The cluster is operating on n78 (3.5 GHz), with inter-frequency measurements on n41 (2.6 GHz).
Investigation: All 87 CGI failures are on the n41 ARFCN. The gNB log shows: ANR_CGI_FAIL: gap_pattern_GP0_unavailable, scheduler_conflict. Root cause: the gNB is already using Gap Pattern GP0 for MRO inter-frequency measurements. ANR's CGI read procedure cannot schedule a second GP0 gap simultaneously, so all n41 CGI reads time out.
Resolution: Configure Gap Pattern GP1 (80 ms period, 6 ms gap) as a secondary gap for ANR CGI reads on n41. This introduces a small additional throughput overhead (~7.5% DL reduction during GP1 gaps) but resolves all CGI failures. After the configuration change, ACGSR recovers to 93.2% within 48 hours and the previously missing n41 neighbours are added to the NRT.
Worked Example 18.4 — ANR–MRO Conflict Resolution
Scenario: MRO has identified cell 460-00-C012 as a "too-early handover" target and set noHO = TRUE for this entry in the NRT of the serving cell 460-00-C005. Three weeks later, ANR's stale detection marks the same entry as STALE (no HO usage, T_stale = 21 days). ANR attempts to evict the entry, but the SON Coordination Engine blocks the eviction because MRO placed a modification lock on the entry.
Expected behaviour (per TS 36.300 §22.3.4): The SON Coordinator keeps the NRT entry in STALE state but prevents eviction while MRO's lock is active. MRO will release the lock after its observation window (typically 7–14 days) confirms the A3 offset adjustment has resolved the too-early HO condition. Once the MRO lock is released, ANR may evict the entry if it remains unused. If C012 is then re-detected by a new UE measurement report, the full UNDETECTED→ACTIVE cycle restarts with the corrected A3 offset in place.
Key lesson: The ANR–MRO lock mechanism prevents the common failure mode where ANR removes a neighbour that MRO is in the process of optimising, only for ANR to re-add it immediately — creating an NRT churn loop that degrades both functions' convergence times.
§18.12 Chapter Summary and TS 28.552 Counter Reference
ANR is the SON function that keeps the Neighbour Relation Table accurate and complete as the network evolves. Its three core operations — CGI read (NCGI discovery), Xn setup (transport-layer association), and NRT maintenance (add/remove/stale) — are specified in TS 38.300 §9.3 and TS 38.331 §5.5.4.4. The function operates in continuous background mode, driven by UE measurement reports, and coordinates with MRO and MLB through shared NRT attribute locks.
| Counter Name | Description | Granularity | KPI Formula |
|---|---|---|---|
SON.ANR.NbrDetected |
Unknown PCIs received in measurement reports — triggers CGI read | Per cell / 15 min | MNR numerator |
SON.ANR.NbrCGISuccess |
CGI read procedures completing with valid NCGI returned | Per cell / 15 min | ACGSR numerator |
SON.ANR.CGIFail |
CGI read procedures failing (timeout, gap conflict, SIB1 decode fail) | Per cell / 15 min | ACGSR denominator supplement |
SON.ANR.NbrAdded |
New NRT entries successfully added (Xn setup complete or noXn=TRUE) | Per cell / 15 min | Rate: NbrAdded / day |
SON.ANR.NbrRemoved |
NRT entries removed by ANR eviction (LRU or prep failure threshold) | Per cell / 15 min | ANR_net_growth supplement |
SON.ANR.NbrStale |
NRT entries transitioned to STALE state (T_stale expired) | Per cell / daily | RNR numerator |
SON.ANR.PrepFail |
NRT entries blacklisted due to repeated Xn HO preparation failures | Per cell / 15 min | Blacklist rate |
SON.PCI.CollisionDetected |
PCI collisions detected by ANR (inconsistent NCGI for same PCI/ARFCN pair) | Per cell / daily | PCI health index |
| KPI | Formula | Green (healthy) | Amber (investigate) | Red (immediate action) |
|---|---|---|---|---|
| Missing Neighbour Ratio (MNR) | NbrDetected / (HO.PrepAtt) × 100% | < 2% | 2–5% | > 5% |
| Redundant Neighbour Ratio (RNR) | NbrStale / NRT_size × 100% | < 10% | 10–20% | > 20% |
| ANR CGI Success Rate (ACGSR) | NbrCGISuccess / (NbrCGISuccess + CGIFail) × 100% | > 85% | 70–85% | < 70% |
| Blacklist Rate | PrepFail / NRT_size × 100% | < 2% | 2–5% | > 5% |
| NRT Utilisation | NRT_entries / NRT_max × 100% | < 70% | 70–90% | > 90% |
| Dimension | Manual NRT | ANR-Managed NRT |
|---|---|---|
| New cell integration time | Hours to days (manual configuration) | Minutes to hours (automatic after CGI read) |
| Stale entry removal | Never (unless operator explicitly removes) | Automatic after T_stale (default: 30 days) |
| PCI confusion detection | Not detected — corrupt entries persist | Detected via NCGI inconsistency; entry held in DETECTED state |
| NRT capacity management | No eviction — table overflows silently | LRU eviction with noRemove/mlbLock protection |
| SON function coordination | Not applicable | MRO and MLB lock mechanisms prevent conflicts |
| Operator effort at scale | High — O(N²) relations for N cells | Low — audit and exception management only |
| Risk of wrong entries | High (config errors persist indefinitely) | Low (entries validated via CGI read + Xn setup) |
"The ANR function maintains the Neighbour Relation Table. The gNB may use UE measurements to detect new neighbour cells and remove outdated neighbour relations from the NRT. The ANR function in the gNB may coordinate with the SON functions in the gNB (e.g. MRO, MLB) to avoid conflicting actions on the NRT." — TS 38.300 §9.3.2 (Release 17)
- NCGI resolution is ANR's core value: PCIs are not globally unique. The CGI read procedure (TS 38.331 §5.5.4.4) is the mechanism that converts a locally-scoped PCI into a globally-unique NCGI suitable for NRT storage and Xn setup.
- Measurement gaps are the bottleneck: Inter-frequency CGI reads require measurement gaps. Gap scheduling conflicts (e.g., simultaneous MRO and ANR gap requirements) are the most common cause of ACGSR degradation below 85%.
- PCI planning must precede ANR deployment: ANR cannot resolve PCI collisions — it can only detect them. A clean PCI plan (no mod-3 confusion, no collisions within 15 km on the same ARFCN) is a prerequisite for reliable ANR operation.
- Three KPIs govern NRT health: MNR (missing neighbours), RNR (redundant neighbours), and ACGSR (CGI read success). All three are directly derivable from TS 28.552 counters without any drive test.
- SON coordination prevents churn: The mlbLock and MRO modification lock mechanisms ensure that ANR evictions do not undo active MLB/MRO optimisation work — a critical detail for networks running multiple SON functions simultaneously.
Mobility KPI RCA Framework
Systematic root-cause analysis for 5G NR mobility degradation: HOSR decomposition (TS 28.554 §8), counter-to-failure-type mapping (TS 28.552), A3/A5 parameter interaction, too-early/too-late/wrong-cell classification (MRO TS 38.300 §9.2.7), ping-pong detection, inter-frequency and inter-RAT HO failure taxonomy, Xn vs N2 path discrimination, UE-side RLF categorisation — all derived from first principles with worked examples
3GPP TS 28.554 §8 · TS 28.552 §5.1.3 · TS 38.300 §9.2.7 · TS 38.331 §5.3.5 · TS 38.413 §8.4 · TS 38.423 §8.3Chapter Learning Objectives
After completing this chapter, you will be able to:
- Decompose the TS 28.554 Handover Success Rate (HOSR) KPI into its constituent TS 28.552 counters and identify which counter increment signals which failure mode
- Classify every mobility failure into the three MRO categories — too-early HO, too-late HO, and wrong-cell HO — and map each to its distinct counter signature
- Construct and navigate the full Mobility RCA decision tree: from HOSR alarm through preparation failure, execution failure, and ping-pong identification
- Distinguish Xn-path preparation failures from N2-path preparation failures using per-cause TS 28.552 counters and Xn/N2 interface statistics
- Explain why A3 offset, hysteresis, and timeToTrigger interact non-linearly and derive the parameter adjustment direction for each failure class
- Identify inter-frequency and inter-RAT HO failure patterns that require measurement-gap-aware analysis distinct from intra-frequency RCA
- Compute the ping-pong handover rate from TS 28.552 counters and set the threshold that separates parameter misconfiguration from genuine topology instability
- Apply the six-step mobility RCA workflow to a real PM counter dataset and arrive at a prioritised parameter change recommendation
- Integrate mobility KPI analysis with retainability counters to separate HO-induced RLF from non-HO RLF at the cell level
- Evaluate the impact of UE speed distribution on A3 TTT optimisation and derive speed-adaptive handover thresholds for heterogeneous deployment scenarios
- Validate a mobility optimisation action using before/after HOSR, ping-pong rate, and RSRP-at-HO distributions extracted from TS 28.552 PM data
§19.1 Introduction — Why Mobility RCA Is Non-Trivial
Handover Success Rate (HOSR) is the single most-watched mobility KPI in any 5G NR network. When HOSR drops below threshold, the temptation is to immediately adjust A3 offset or timeToTrigger. That reflex is almost always wrong — and often makes the problem worse.
The reason is structural: HOSR is a composite KPI that aggregates failures from at least five distinct failure mechanisms, each requiring a different remedy. A too-early handover and a too-late handover both depress HOSR, yet their parameter corrections are diametrically opposite. Reducing timeToTrigger fixes too-late HO but worsens too-early HO. Increasing A3 offset corrects too-early HO but risks too-late HO and RLF. Without decomposing the HOSR degradation to its root failure type, any parameter change is a coin flip.
This chapter builds a systematic Root-Cause Analysis (RCA) framework for 5G NR mobility. The framework is grounded in three specifications:
- TS 28.554 §8 — normative HOSR KPI definition, formula, and observation period
- TS 28.552 §5.1.3 — per-cause HO counters that decompose HOSR numerator and denominator
- TS 38.300 §9.2.7 — Mobility Robustness Optimisation (MRO) function and its too-early/too-late/wrong-cell classification algorithm
"The Handover Success Rate (HOSR) is defined as the ratio of the number of successful handovers to the number of attempted handovers within a measurement period. An attempted handover is counted at the point when the source cell triggers HO preparation. A successful handover is counted when the UE completes HO execution and accesses the target cell." — TS 28.554 §8.1.1 (Release 17)
Section §19.2 defines the HOSR decomposition model. Sections §19.3–§19.5 analyse the three MRO failure classes. Section §19.6 covers Xn vs N2 path discrimination. Section §19.7 addresses inter-frequency and inter-RAT specifics. Section §19.8 treats ping-pong HO detection. Section §19.9 presents the six-step RCA workflow. Sections §19.10–§19.11 provide worked examples and the optimisation validation methodology.
§19.2 HOSR Decomposition Model
TS 28.554 §8.1.1 defines HOSR as:
Eq 19.1 — Handover Success Rate (TS 28.554 §8.1.1)
HOSR = HO.ExecSucc / HO.PrepAtt × 100 [%]
where HO.ExecSucc is the count of UEs that successfully accessed the target cell and HO.PrepAtt is the count of HO preparation attempts initiated by the source cell.
This single-fraction KPI conceals a two-stage loss structure. Every HO attempt must pass through preparation and then execution. Failures can occur at either stage, and the counter signatures differ:
| Stage | Success Counter | Failure Counter | Primary Failure Causes | RCA Direction |
|---|---|---|---|---|
| Preparation | HO.PrepSucc |
HO.PrepFail |
Target cell capacity rejection, Xn/N2 timeout, missing neighbour relation, target cell RF inadequate | Check target cell load, NRT, interface latency |
| Execution | HO.ExecSucc |
HO.ExecFail |
T304 expiry (UE loses source before accessing target), target RA failure, too-early or too-late trigger | Check A3/TTT parameters, RACH config at target, UE speed |
| Post-HO | — | HO.TooEarly, HO.TooLate, HO.WrongCell |
UE triggers RLF or re-establishment shortly after HO completion (too-early) or instead of attempting HO (too-late) | MRO function — A3 offset and TTT adjustment |
The full HOSR decomposition identity is:
Eq 19.2 — HOSR Decomposition Identity
HO.PrepAtt = HO.PrepSucc + HO.PrepFail
HO.PrepSucc = HO.ExecSucc + HO.ExecFail
HOSR = (HO.PrepAtt − HO.PrepFail − HO.ExecFail) / HO.PrepAtt
§19.3 MRO Failure Classification — Too-Early, Too-Late, Wrong-Cell
The Mobility Robustness Optimisation (MRO) function, specified in TS 38.300 §9.2.7, classifies every post-handover RLF event into one of three categories based on the temporal relationship between the handover completion (or non-completion) and the subsequent radio link failure.
"The MRO function shall detect the following HO problems: too early HO, too late HO, and HO to wrong cell. For each detected HO problem, the MRO function shall indicate the problem to the SON coordination function and may initiate parameter adjustments to prevent recurrence." — TS 38.300 §9.2.7.1 (Release 17)
19.3.1 Too-Early Handover
A too-early handover occurs when the UE is handed over while the source cell was still providing adequate service. The gNB detects this pattern when:
- A HO completion is recorded (the UE accessed the target cell and sent RRCReconfigurationComplete)
- Within T_mro_detect (typically 1–3 seconds after HO completion), the UE sends an RLF report indicating RLF at the target cell, or the target gNB reports RRC Re-establishment from the UE
- The source cell RSRP at the time of HO trigger was above the too-early RSRP threshold (typically −100 dBm or better)
The TS 28.552 counter for too-early detection is HO.TooEarlyNum, incremented at the source gNB. The root cause is excessive A3 sensitivity: the A3 event fires prematurely because a3-Offset is too small or timeToTrigger is too short for the UE speed profile.
Eq 19.3 — Too-Early HO Rate
Too-Early Rate = HO.TooEarlyNum / HO.ExecSucc × 100 [%]
Threshold: > 5% is the typical alarm threshold for dense urban deployments.
19.3.2 Too-Late Handover
A too-late handover occurs when the UE experiences RLF on the source cell because the A3 event was not triggered in time. The gNB detects this when:
- A UE sends an RRCReestablishmentRequest to a neighbouring cell (not the source cell) indicating RLF
- The RLF report carried in the RRCReestablishment procedure shows that the UE's last RSRP on the source cell was below the coverage threshold
- No HO preparation was ongoing at the time of RLF
The counter is HO.TooLateNum. Too-late HO is the dominant failure mode in large-cell rural deployments and on-highway clusters where UE speed causes rapid RSRP deterioration between A3 trigger and HO command delivery.
Eq 19.4 — Too-Late HO Rate
Too-Late Rate = HO.TooLateNum / (HO.TooLateNum + HO.ExecSucc) × 100 [%]
Note: The denominator adds TooLate events to ExecSucc because TooLate events never resulted in a PrepAtt — they are pure MRO-detected misses, not HOSR components.
19.3.3 Wrong-Cell Handover
A wrong-cell handover occurs when the UE is handed over to a cell that cannot provide adequate service, and the UE must re-establish to a third cell (neither the original source nor the selected target). This pattern indicates that the NRT ordering is wrong — the target cell selected by the A3 event is not the geometrically optimal neighbour.
The counter is HO.WrongCellNum. Wrong-cell HO often coexists with PCI confusion or missing NRT entries. The fix is NRT reordering, not parameter adjustment.
| Failure Class | Counter | Temporal Pattern | Source RSRP at Trigger | Corrective Action |
|---|---|---|---|---|
| Too-Early HO | HO.TooEarlyNum |
RLF within T_mro (1–3 s) after HO success | Good (> −100 dBm) | Increase a3-Offset (+1 to +2 dB) or increase TTT |
| Too-Late HO | HO.TooLateNum |
RLF at source cell; no HO was in progress | Poor (< −110 dBm) | Decrease a3-Offset (−1 to −2 dB) or decrease TTT |
| Wrong-Cell HO | HO.WrongCellNum |
Re-establishment to 3rd cell after HO success | Variable | Correct NRT ordering; check PCI confusion (mod-3/mod-30) |
| Ping-Pong HO | HO.PingPongNum |
Return HO within T_pp (typically < 30 s) of outgoing HO | Marginal (−105 to −115 dBm) | Increase TTT; add A3 hysteresis; check RF boundary asymmetry |
§19.4 A3 Parameter Interaction — Offset, Hysteresis, and TTT
The A3 event fires when the filtered measurement of the best neighbour cell exceeds the filtered measurement of the serving cell plus the A3 offset, maintained for the full duration of the timeToTrigger (TTT). The entry condition from TS 38.331 §5.5.4.4 is:
Eq 19.5 — A3 Entry Condition (TS 38.331 §5.5.4.4)
Mn + Of,n + Ocn − Hys > Mp + Of,p + Ocp + Of
where Mn = filtered neighbour RSRP, Mp = filtered serving cell RSRP, Of = a3-Offset, Hys = hysteresis, Ocn/Ocp = cell-individual offsets, Of,n/Of,p = frequency-specific offsets.
The three primary tunable parameters — a3-Offset, hysteresis, and timeToTrigger — interact as follows:
| Parameter | Typical Range | Increase Effect | Decrease Effect | Risk if Over-Corrected |
|---|---|---|---|---|
a3-Offset |
0–24 dB (0.5 dB steps) | Harder to trigger HO: reduces too-early, increases too-late risk | Easier to trigger HO: reduces too-late, increases too-early risk | Too high: RLF at cell edge. Too low: ping-pong oscillation. |
hysteresis |
0–30 dB (0.5 dB steps) | Widens trigger/cancellation gap: reduces ping-pong | Narrows gap: faster HO, more ping-pong | Too high: permanently delays HO at coverage boundary. |
timeToTrigger |
0–5120 ms (discrete values) | Longer filtering: reduces false triggers, increases too-late risk at high UE speed | Shorter filtering: faster HO, increases too-early and ping-pong risk | TTT too long at high speed: UE leaves coverage before HO fires. |
filterCoefficient |
k = 0–19 | Heavier smoothing: reduces noise-driven triggers, increases latency | Less smoothing: faster tracking, noisier A3 firing | High k at high UE speed: measurement lag causes both too-early and too-late patterns simultaneously. |
§19.5 Preparation Failure Root-Cause Analysis
Preparation failures (HO.PrepFail) are distinct from execution failures and require a different analysis path. The preparation stage involves signalling between the source gNB and the target gNB (via Xn or N2). Failures here are caused by target-side rejections or transport-layer problems, not by A3 parameter misconfiguration.
Per-Cause Preparation Failure Counters
TS 28.552 §5.1.3.4 defines per-cause counters for preparation failure. The most important are:
| Failure Cause | TS 28.552 Counter | Interface | Root Cause | Corrective Action |
|---|---|---|---|---|
| No Radio Resources Available | HO.PrepFail.NoRadio |
Xn / N2 | Target cell PRB utilisation > 85%; admission control rejection | Load balance away from target; check MLB parameters |
| Target Cell Missing from NRT | HO.PrepFail.NoNRT |
Source gNB internal | ANR has not yet discovered the target cell; manual NRT gap | Trigger ANR CGI read; add NRT entry manually |
| Xn Interface Timeout | HO.PrepFail.XnTimeout |
Xn | Target gNB unreachable; SCTP association down; BGP routing issue | Check Xn SCTP heartbeat; verify transport layer path |
| Target Cell Unacceptable | HO.PrepFail.Unacceptable |
Xn / N2 | Target cell does not support UE capability (NR band, CA, MIMO layers); security mismatch | Check UE capability vs target cell configuration; update NR-DC configuration |
| Preparation Timer Expiry | HO.PrepFail.Timer |
Xn / N2 | tXnRelocPrep (Xn) or tNGRelocPrep (N2) expired before HANDOVER COMMAND received | Increase timer values; diagnose transport latency |
Xn vs N2 Path Discrimination
When a preparation failure is detected, the RCA must determine whether the HO was attempted via Xn or via N2 (NGAP), as the remediation differs. TS 28.552 provides separate counters:
HO.PrepAtt.XnandHO.PrepFail.Xn— Xn-path attempts and failuresHO.PrepAtt.N2andHO.PrepFail.N2— N2-path (NGAP) attempts and failures
Eq 19.6 — Path-Specific Preparation Failure Rate
Xn PrepFail Rate = HO.PrepFail.Xn / HO.PrepAtt.Xn × 100 [%]
N2 PrepFail Rate = HO.PrepFail.N2 / HO.PrepAtt.N2 × 100 [%]
A high Xn PrepFail Rate with a normal N2 PrepFail Rate confirms an Xn transport or configuration issue. A high N2 PrepFail Rate indicates AMF capacity or NGAP session management problems.
§19.6 Execution Failure Root-Cause Analysis
Execution failures (HO.ExecFail) occur after the HO command has been delivered to the UE but the UE fails to access the target cell. The most common cause is T304 timer expiry: the UE cannot complete RACH on the target cell within the configured T304 window.
T304 and Target Cell RACH Configuration
T304 is the handover execution timer specified in TS 38.331 §7.3. It starts when the UE receives the RRCReconfiguration message containing the mobility control info. If the UE does not complete the random access procedure on the target cell before T304 expires, the UE declares HO failure, initiates RRC Re-establishment, and the source gNB increments HO.ExecFail.
"Upon initiation of the handover execution: 1> start timer T304 with the timer value set to t304, as included in the mobilityControlInfo; 2> apply the downlink assignments and uplink grants provided in the reconfigurationWithSync; 3> initiate the random access procedure on the target SpCell." — TS 38.331 §5.3.5.3 (Release 17)
T304 expiry is almost always a symptom, not the root cause. The root causes are:
- Target RSRP too low when HO fires: The A3 event fired at the coverage boundary where target RSRP is marginal. RACH preamble is lost due to high path loss. Fix: tighten the HO trigger threshold (reduce a3-Offset) to handover earlier while target RSRP is still strong.
- RACH configuration mismatch: The target cell's preamble format, RA-RNTI, or PRACH occasion configuration is suboptimal for UEs arriving at the cell edge. Fix: check target cell RACH parameter set (Section §10.2).
- T304 value too short: On congested target cells, the RACH backoff may cause RACH attempts to span multiple retransmissions; if T304 is set to 200 ms (minimum), even a single RACH retransmission with contention resolution can exceed the timer. Fix: increase T304 to 500 ms or 1000 ms for congested cells.
| T304 Value (ms) | Max RACH Attempts in Window | ExecFail Risk | Recommended Scenario |
|---|---|---|---|
| 200 | 1–2 | High (congested cells) | Lightly loaded, excellent target coverage |
| 500 | 3–5 | Medium | Standard deployment; default recommendation |
| 1000 | 6–10 | Low | Dense urban; high RACH contention environments |
| 2000 | 12–20 | Very low (risk: UE hangs in HO state) | Special cases: high-speed train, known RACH contention issue |
§19.7 Inter-Frequency and Inter-RAT Handover RCA
Inter-frequency and inter-RAT handovers add a measurement-gap dependency that is absent from intra-frequency HO. This gap dependency creates a unique failure signature: execution failures that are periodic (correlated with gap occurrence) rather than uniformly distributed.
A5 Event for Inter-Frequency HO
While A3 is the standard intra-frequency HO trigger, A5 is used for inter-frequency HO to a lower-priority layer. The A5 entry condition (TS 38.331 §5.5.4.5) requires two simultaneous conditions:
Eq 19.7 — A5 Entry Conditions (TS 38.331 §5.5.4.5)
Condition 1: Mp + Hys < Thresh1 (serving cell below upper threshold)
Condition 2: Mn − Hys > Thresh2 (neighbour cell above lower threshold)
Both conditions must remain true simultaneously for the full TTT duration. If either condition drops out during TTT, the event is cancelled and the timer restarts.
The dual-condition nature of A5 creates a specific false-cancellation problem: at the coverage boundary, the serving cell RSRP oscillates around Thresh1. Each time it briefly rises above Thresh1, Condition 1 cancels, the TTT resets, and the A5 event is never reported despite the UE genuinely needing to leave. This manifests as HO.TooLateNum events on cells at the edge of the anchor frequency coverage.
| Failure Pattern | Counter Signature | Root Cause | Fix |
|---|---|---|---|
| A5 Condition-1 thrash at boundary | HO.TooLateNum high; HO.PrepAtt.InterFreq low |
Thresh1 set at same value as RLF threshold; no margin for oscillation | Raise Thresh1 by 3–5 dB above RLF threshold to create trigger headroom |
| Measurement gap collision | HO.ExecFail spikes periodic; RACH fail logs show gap-period pattern |
Target cell PRACH occasions fall within UE measurement gap windows | Adjust gap pattern; change PRACH occasion position relative to gap |
| Inter-RAT B1 event never fires | HO.PrepAtt.B1 = 0; RSRP on E-UTRA visible in DT |
B1 threshold set too high; measurement gap not scheduled; inter-RAT neighbour not in measObjectEUTRA | Lower B1 threshold; verify inter-RAT NRT; check measurement object configuration |
§19.8 Ping-Pong Handover Detection and Analysis
A ping-pong handover is defined as a handover in which the UE returns to the original source cell (or a cluster of cells with identical location) within a short time window T_pp after the initial outgoing handover. TS 28.552 defines the counter HO.PingPong.Num for this event, with T_pp typically set to 30 seconds.
Eq 19.8 — Ping-Pong Handover Rate (TS 28.552)
Ping-Pong Rate = HO.PingPong.Num / HO.ExecSucc × 100 [%]
Threshold: > 10% is a concern; > 20% indicates systematic A3 parameter misconfiguration or RF asymmetry requiring cell-specific correction.
Ping-pong HO does not directly degrade HOSR (both the outgoing and return handovers may complete successfully), but it degrades user experience through repeated service interruptions and wastes capacity on repeated preparation signalling. Each ping-pong cycle incurs 2 × HO interruption time.
Ping-Pong Root Causes
Three structural causes drive ping-pong HO:
- RF boundary asymmetry: Cells A and B both see each other as the best neighbour alternately as the UE sits at the boundary. This is geometric — reducing A3 offset makes it worse. The fix is antenna retilt or power adjustment to move the boundary away from the UE trajectory.
- TTT too short for boundary dwell time: UEs sitting at the boundary dwell in the A3 entry zone for less time than TTT, so the event fires only briefly before the UE moves back. Shortening TTT forces a HO that fires when the UE is still at the boundary (too early), completing just before the UE moves back. Increasing TTT prevents the first HO from completing at all (too-late risk). The solution is a moderate TTT increase (160 ms → 256 ms) combined with a small A3 offset increase (+0.5 dB).
- Cell-specific hysteresis set to zero: Hysteresis provides a guard band between entry and cancellation conditions. Without hysteresis, any noise-driven RSRP dip at the target immediately cancels the A3 event and the UE returns. Adding
hysteresis= 1–2 dB resolves this class of ping-pong.
§19.9 Six-Step Mobility RCA Workflow
The following workflow is a systematic procedure for diagnosing HOSR degradation on any 5G NR cell. It should be applied at the cell level (not cluster level) because different cells in the same cluster may have different dominant failure modes.
The six steps and their counter checks are summarised below:
| Step | Counter Ratio | Threshold | Action if Exceeded | Spec Reference |
|---|---|---|---|---|
| 1. Confirm HOSR alarm | HO.ExecSucc / HO.PrepAtt |
< 95% (typical KPI target) | Proceed to step 2 | TS 28.554 §8.1.1 |
| 2. Prep failure check | HO.PrepFail / HO.PrepAtt |
> 3% | Check NoRadio, XnTimeout, NoNRT causes | TS 28.552 §5.1.3.4 |
| 3. Exec failure check | HO.ExecFail / HO.PrepSucc |
> 2% | Check T304, target RSRP distribution, RACH config | TS 28.552 §5.1.3.5; TS 38.331 §7.3 |
| 4. Too-early check | HO.TooEarlyNum / HO.ExecSucc |
> 5% | Increase a3-Offset by 1–2 dB; increase TTT by one step | TS 38.300 §9.2.7; TS 28.552 |
| 5. Too-late check | HO.TooLateNum / HO.ExecSucc |
> 3% | Decrease a3-Offset by 1–2 dB; decrease TTT by one step; verify NRT completeness | TS 38.300 §9.2.7; TS 28.552 |
| 6. Ping-pong check | HO.PingPong.Num / HO.ExecSucc |
> 10% | Add hysteresis 1–2 dB; increase TTT; check RF boundary symmetry | TS 28.552 §5.1.3.6 |
§19.10 Worked Examples
Example 19.1 — Diagnosing HOSR = 88% on a Highway Macro
Given: A highway macro cell reports HOSR = 88% over a 24-hour period. The network target is 95%. PM data shows:
HO.PrepAtt= 4,200HO.PrepFail= 126 (3.0%)HO.PrepSucc= 4,074HO.ExecFail= 378 (9.3% of PrepSucc)HO.ExecSucc= 3,696 (HOSR = 88.0%)HO.TooEarlyNum= 74 (2.0% of ExecSucc)HO.TooLateNum= 612 (16.6% of ExecSucc)HO.PingPong.Num= 185 (5.0% of ExecSucc)
Current parameters: a3-Offset = 3 dB, TTT = 640 ms, filterCoefficient k = 4. UE speed on highway: 110–130 km/h (30.6–36.1 m/s).
RCA Walkthrough:
Step 2: PrepFail = 3.0% — just at threshold. Check per-cause: 80% of PrepFail is HO.PrepFail.XnTimeout. Xn transport latency elevated at 180 ms (normal < 50 ms). Root cause: routing change on backhaul. Action: restore Xn routing, not a parameter issue.
Step 3: ExecFail = 9.3% — significantly above 2% threshold. The dominant too-late signature strongly suggests the UE is being handed over too late, so when the HO fires the target RSRP is already marginal and T304 expires. Confirm: target RSRP distribution at HO trigger shows median = −112 dBm. This is below the reliable RACH threshold of −105 dBm.
Step 5: TooLate = 16.6% — well above 3% threshold. Confirms too-late dominant failure.
TTT Analysis: UE speed = 33 m/s. A3 margin (zone between best-server boundary and coverage edge) estimated at 40 m from RF planning data. Maximum safe TTT = 40/33 = 1.2 s. Current TTT = 640 ms — within budget. However, filterCoefficient k = 4 (a = 0.5) adds a measurement lag of approximately 2 / (1 - 0.5) × 200 ms = 800 ms measurement settling time. Effective A3 latency = 640 ms + 800 ms = 1,440 ms > 1,200 ms budget. The filter is too slow for the UE speed.
Recommended Actions:
- Reduce filterCoefficient from k = 4 to k = 2 (a = 0.75, settling time ≈ 400 ms). This reduces effective A3 latency to 640 + 400 = 1,040 ms < 1,200 ms budget.
- Reduce a3-Offset from 3 dB to 2 dB to trigger HO 1 dB earlier (when target RSRP is still > −106 dBm).
- Restore Xn routing to reduce PrepFail.
Predicted post-change HOSR: ExecFail should fall from 9.3% to < 3%; TooLate from 16.6% to < 5%; HOSR should recover to > 95%.
Example 19.2 — Separating HO-Induced RLF from Non-HO RLF
Given: A cell shows degraded retainability KPI alongside HOSR degradation. The task is to determine what fraction of DRB drops are caused by HO failures versus non-HO causes.
Counter extraction:
DRB.AbnormRel.HO= 180 (DRB releases caused by HO failure, i.e., T304 expiry leading to RLF)DRB.AbnormRel.NonHO= 420 (DRB releases from non-HO causes: coverage hole, uplink interference, timer expiry in stationary UEs)DRB.AbnormRel= 600 (total abnormal DRB releases)
Eq 19.9 — HO-Induced RLF Fraction
HO-RLF Fraction = DRB.AbnormRel.HO / DRB.AbnormRel × 100 = 180/600 = 30%
Conclusion: 30% of DRB drops are HO-induced. HOSR optimisation will address this fraction. The remaining 70% require a separate coverage or interference RCA. Attempting to fix retainability KPI purely through A3 parameter changes will have limited impact if the dominant 70% non-HO cause is not addressed.
Example 19.3 — Speed-Adaptive TTT Selection
Problem: A cell cluster serves both pedestrian UEs (3 km/h) and vehicular UEs (120 km/h). A single TTT value is configured. Determine the TTT value that minimises the combined too-early + too-late failure rate.
Given: A3 margin zone width d = 50 m (distance over which A3 entry condition is continuously met). UE speed v₁ = 0.83 m/s (pedestrian), v₂ = 33.3 m/s (vehicular).
Eq 19.10 — Maximum Safe TTT per Speed Class
TTT_max = d / v
Pedestrian: TTT_max = 50 / 0.83 = 60.2 s → any TTT value is safe for pedestrians
Vehicular: TTT_max = 50 / 33.3 = 1.50 s = 1500 ms
Optimal TTT: Select TTT = 640 ms (the 3GPP-defined value closest to but below 1500 ms). This is safe for vehicular UEs. Pedestrian UEs will experience a slightly faster HO trigger, increasing too-early risk marginally, but pedestrian UEs are unlikely to cross cell boundaries rapidly enough to trigger the too-early pattern.
Note: If the cluster has a dominant vehicular population (> 60% of UE-hours), consider enabling speed-dependent mobility (SDM) if supported, which allows the gNB to shorten TTT for UEs reporting high Doppler estimates in the UE capability report.
Example 19.4 — Validating a Mobility Optimisation Action
Scenario: An a3-Offset change from 2 dB to 3 dB was applied to a cluster of 12 cells to address too-early HO. Validate the effectiveness of the change using PM data from the week before and week after.
| Counter / KPI | Before (week avg) | After (week avg) | Change | Expected Direction |
|---|---|---|---|---|
| HOSR (%) | 91.2 | 94.8 | +3.6 pp | Increase (target met) |
| HO.TooEarlyNum / ExecSucc (%) | 8.1 | 2.4 | −5.7 pp | Decrease (expected) |
| HO.TooLateNum / ExecSucc (%) | 2.2 | 3.8 | +1.6 pp | Slight increase (acceptable) |
| HO.PingPong.Num / ExecSucc (%) | 12.3 | 5.1 | −7.2 pp | Decrease (beneficial side effect) |
| DRB.AbnormRel.HO (count/cell/hour) | 4.2 | 1.8 | −57% | Decrease (expected) |
Validation conclusion: The change achieved its objective (HOSR +3.6 pp, TooEarly −5.7 pp). The slight increase in TooLate (+1.6 pp, from 2.2% to 3.8%) is within acceptable range (below 5% threshold). The HO-induced RLF rate (DRB.AbnormRel.HO) dropped by 57%. The optimisation is validated and should be retained.
§19.11 Mobility-to-Retainability Counter Linkage
Mobility failures do not remain isolated — they propagate into the retainability domain within minutes. The causal chain is: HO failure → T304 expiry → UE declares RLF → RRC Re-establishment → if re-establishment fails, DRB drop and call loss are recorded. Operators who analyse these domains in isolation will misattribute retainability degradation to coverage problems when the true cause is HO parameter misconfiguration.
"Radio link failure (RLF): A UE shall declare RLF when: the T310 timer expires; or when the T312 timer expires; or when a random access problem is indicated by the MAC layer while neither T300, T301, T304, T311 nor T319 is running." — TS 38.331 §5.3.10.1 (Release 17)
The linkage counters to track jointly are:
| Counter | Domain | Mobility Link |
|---|---|---|
HO.ExecFail |
Mobility | Every increment corresponds to a T304 expiry — potential DRB.AbnormRel.HO increment |
DRB.AbnormRel.HO |
Retainability | Direct link: counts DRB drops caused by HO failure (subset of DRB.AbnormRel) |
RRC.ConnReestabAtt |
Retainability | Elevated value = UEs declaring RLF; check whether mobility or coverage is the cause by cross-checking with HO.TooLateNum |
RRC.ConnReestabSucc |
Retainability | If Re-establishment success rate is low, the network has both a HO problem and a coverage problem simultaneously |
HO.TooLateNum |
Mobility (MRO) | Each too-late event is also a missed HO opportunity that resulted in RLF — increments both mobility and retainability degradation |
The cross-domain HOSR-Retainability correlation formula provides a quantitative link:
Eq 19.11 — Cross-Domain Impact Estimate
Expected DRB.AbnormRel.HO ≈ HO.ExecFail × P(RLF | ExecFail)
where P(RLF | ExecFail) ≈ 0.7–0.9 in typical deployments (some T304 expiries lead to successful re-establishment; a fraction result in complete call drop). A value close to 0.9 indicates the target cell coverage is inadequate for re-establishment after T304 expiry.
Chapter Summary
- HOSR decomposition: HOSR = HO.ExecSucc / HO.PrepAtt. The two-stage model splits failures into PrepFail (target/transport causes) and ExecFail (A3 parameter/T304 causes). Both stages must be analysed before any parameter change is made.
- MRO failure classes: Too-early (fire too soon — increase offset/TTT), too-late (fire too late — decrease offset/TTT), wrong-cell (incorrect NRT ordering). These are mutually exclusive root causes with opposite parameter corrections.
- A3 parameter interaction: a3-Offset, hysteresis, TTT, and filterCoefficient interact multiplicatively. Changing one without checking the others risks introducing a new failure mode while suppressing the original one.
- Preparation failure path: Check per-cause counters (NoRadio, XnTimeout, NoNRT) and Xn vs N2 path discrimination before concluding a preparation failure is parameter-related.
- Ping-pong: Detected by HO.PingPong.Num; caused by RF boundary asymmetry, insufficient hysteresis, or TTT mismatch with boundary dwell time. Fix: add hysteresis first; then TTT if ping-pong persists.
- Six-step workflow: Apply sequentially — the first counter threshold crossed identifies the dominant failure mode. Do not skip steps or apply corrections speculatively.
- Retainability linkage: HO.ExecFail propagates to DRB.AbnormRel.HO. Retainability KPI degradation must be disaggregated by HO vs non-HO cause before targeting corrective actions.
PDSCH/PUSCH Scheduling
Complete 3GPP scheduling framework for 5G NR downlink and uplink: slot-based and non-slot scheduling, DCI formats (1_0, 1_1, 0_0, 0_1), resource allocation types (0 and 1), time-domain resource assignment (TDRA), HARQ process management (16 processes, NDI toggle, HARQ-ACK timing), link adaptation (MCS table, CQI-to-MCS mapping, BLER-based outer loop), scheduling request (SR) and BSR procedures, semi-persistent scheduling (SPS/CG), TDD uplink-downlink configuration impact, and TS 28.552 scheduling KPI decomposition — all derived from TS 38.211, TS 38.212, TS 38.213, TS 38.214, and TS 28.552 with worked examples
3GPP TS 38.211 §7.3 · TS 38.212 §7.3 · TS 38.213 §9–10 · TS 38.214 §5–6 · TS 28.552 §5.1.2 · TS 28.554 §6Chapter Learning Objectives
After completing this chapter, you will be able to:
- Describe the slot structure of 5G NR (14 OFDM symbols, 1 ms slot at 15 kHz SCS, numerology scaling) and explain how mini-slot scheduling reduces latency for URLLC services
- Decode DCI format 1_1 and DCI format 0_1 field-by-field and map each field to its corresponding TS 38.212 §7.3 bit allocation table
- Distinguish resource allocation Type 0 (RBG bitmap) from Type 1 (starting RB + length) and calculate the number of bitmap bits required for a given bandwidth part
- Construct the TDRA table and determine the valid PDSCH/PUSCH mapping types (A and B) for a given slot configuration and TDD pattern
- Trace the complete HARQ process lifecycle — initial transmission, NDI toggle, HARQ-ACK reporting, retransmission, and process release — using 16-process asynchronous HARQ for NR
- Apply the TS 38.214 MCS tables (64QAM and 256QAM variants) to convert CQI to modulation order and target code rate and then to transport block size
- Explain the outer-loop link adaptation (OLLA) algorithm and derive the OLLA step size relationship to maintain a 10% BLER target
- Describe the Scheduling Request and Buffer Status Report procedures and explain how SR periodicity and BSR format affect uplink scheduling latency
- Compare dynamic scheduling, semi-persistent scheduling (SPS) for DL, and configured grant (CG) for UL and identify the deployment scenarios that favour each
- Quantify the impact of TDD UL/DL configuration on achievable UL and DL throughput fractions and calculate scheduling opportunity density for each TDD pattern
- Extract scheduling KPIs from TS 28.552 PM counters (DL/UL PRB utilisation, MCS distribution, HARQ retransmission rate) and derive root causes from counter signatures
- Apply the scheduling optimisation workflow to a real counter dataset and produce a prioritised parameter change recommendation covering MCS aggressiveness, HARQ process count, and SR/CG configuration
§20.1 Introduction — Why Scheduling is the Throughput Engine
The 5G NR scheduler is the most consequential single algorithm in a deployed gNB. Every microsecond, the scheduler decides which UEs receive resources, on which PRBs, at which modulation and coding scheme, and with which HARQ process. The cumulative effect of millions of these decisions determines the cell throughput, user experience, spectral efficiency, and energy consumption seen in the live network.
Unlike earlier generations where scheduling was largely a black-box proprietary function, 5G NR exposes the scheduling decision surface through precisely defined signaling interfaces. DCI formats specify to the UE exactly what resources have been allocated. MCS tables define the quantised link adaptation space. HARQ protocols determine retransmission behaviour. All of this is normatively specified in TS 38.211 through TS 38.214, giving the RAN engineer a deterministic model against which real network behaviour can be benchmarked.
This chapter covers the complete scheduling framework from first principles:
- §20.2 — NR slot and symbol structure: the scheduling grid
- §20.3 — DCI format anatomy: DL scheduling (1_0, 1_1) and UL scheduling (0_0, 0_1)
- §20.4 — Frequency-domain resource allocation: Type 0 and Type 1
- §20.5 — Time-domain resource assignment and mapping types A/B
- §20.6 — HARQ operation: 16-process asynchronous NR HARQ
- §20.7 — Link adaptation: CQI, MCS tables, and outer-loop OLLA
- §20.8 — SR and BSR: uplink demand signaling
- §20.9 — SPS and Configured Grant: deterministic low-latency scheduling
- §20.10 — TDD configuration impact on scheduling opportunity density
- §20.11 — TS 28.552 scheduling KPI framework and counter decomposition
- §20.12 — Scheduling optimisation workflow: worked examples
"The Physical Downlink Shared Channel (PDSCH) shall be used to carry downlink user data and higher layer messages. The gNB shall schedule PDSCH resources using Downlink Control Information (DCI) carried on PDCCH. The UE shall interpret the DCI to determine the time-frequency resources assigned for the PDSCH, the modulation and coding scheme, and the HARQ process number." — TS 38.211 §7.3.1 (Release 17)
§20.2 NR Slot and Symbol Structure — The Scheduling Grid
All NR scheduling occurs within the NR frame structure defined in TS 38.211 §4. The fundamental scheduling unit is the slot: 14 consecutive OFDM symbols of equal duration. The slot duration depends on the subcarrier spacing (SCS) numerology μ as follows:
Eq 20.1 — Slot Duration vs Numerology (TS 38.211 §4.3.2)
Tslot = 1 / 2μ ms
For μ = 0 (15 kHz SCS): Tslot = 1.0 ms | μ = 1 (30 kHz): 0.5 ms | μ = 2 (60 kHz): 0.25 ms | μ = 3 (120 kHz): 0.125 ms
Each slot contains 14 OFDM symbols (normal CP). The symbols within a slot may be designated as Downlink (D), Uplink (U), or Flexible (X) according to the TDD slot format table in TS 38.213 §11.1. The gNB signals the TDD pattern through RRC (tdd-UL-DL-ConfigurationCommon) and may override individual flexible symbols dynamically via Slot Format Indicator (SFI) DCI.
| Numerology μ | SCS (kHz) | Slot Duration | Slots/Subframe | Slots/Frame | Typical Bands |
|---|---|---|---|---|---|
| 0 | 15 | 1.0 ms | 1 | 10 | FR1 < 3 GHz (n1, n3, n28) |
| 1 | 30 | 0.5 ms | 2 | 20 | FR1 3–6 GHz (n41, n77, n78) |
| 2 | 60 | 0.25 ms | 4 | 40 | FR1 (data only, no SSB) |
| 3 | 120 | 0.125 ms | 8 | 80 | FR2 mmWave (n257, n258, n260) |
| 4 | 240 | 0.0625 ms | 16 | 160 | FR2 reference signals only |
§20.3 DCI Format Anatomy — Downlink and Uplink Scheduling Commands
Downlink Control Information (DCI) is the mechanism by which the gNB communicates resource assignments to the UE. DCI is carried on the PDCCH and is CRC-scrambled with the UE's C-RNTI (for dynamic scheduling) or CS-RNTI (for SPS/CG). TS 38.212 §7.3 defines four scheduling DCI formats relevant to PDSCH and PUSCH:
| DCI Format | Purpose | Scrambled With | Key Fields | Typical Size (bits) |
|---|---|---|---|---|
1_0 |
DL fallback scheduling | C-RNTI / SI-RNTI / RA-RNTI | Freq. resource, TDRA, MCS, HARQ PID, NDI, RV, PUCCH resource | ~28 |
1_1 |
DL full scheduling | C-RNTI / CS-RNTI | BWP, freq. resource (Type 0/1), TDRA, VRB-to-PRB, MCS, HARQ, NDI, RV, antenna port, SRS request, PUCCH resource, PDSCH-to-HARQ timing, CBGTI | ~40–80 |
0_0 |
UL fallback scheduling | C-RNTI / CS-RNTI | Freq. resource, TDRA, MCS, NDI, RV, HARQ PID, TPC, UL/SUL indicator | ~28 |
0_1 |
UL full scheduling | C-RNTI / CS-RNTI | BWP, freq. resource (Type 0/1), TDRA, MCS, HARQ, NDI, RV, TPC, SRS resource, antenna port, CSI request, PTRS, CBGTI | ~45–90 |
"DCI format 1_1 is used for the scheduling of PDSCH in one cell. Bit fields in DCI format 1_1 are defined as specified in the following, starting with the MSB: Identifier for DCI formats — 1 bit; Bandwidth part indicator — 0 or 2 bits; Frequency domain resource assignment — number of bits determined by the resource allocation type and the size of the active downlink bandwidth part." — TS 38.212 §7.3.1.2.2 (Release 17)
20.3.1 DCI Format 1_1 Field Decomposition
DCI format 1_1 is the primary DL scheduling DCI used in connected-mode operation. Its field structure, in order of appearance (MSB first), is:
| Field | Bits | Purpose | Optimization Relevance |
|---|---|---|---|
| DCI format identifier | 1 | Distinguishes DL (1) from UL (0) DCIs | — |
| BWP indicator | 0–2 | Selects which of up to 4 configured DL BWPs is active | BWP switching latency; wide vs narrow BWP tradeoff |
| Frequency domain resource assignment | Varies | RBG bitmap (Type 0) or RB start + length (Type 1) | Scheduling granularity; fragmentation vs contiguous |
| Time domain resource assignment | 4 | Index into PDSCH-TimeDomainResourceAllocationList | Start symbol S and duration L in PDSCH-TDRA table |
| VRB-to-PRB mapping | 1 | Non-interleaved (0) or interleaved (1) VRB mapping | Frequency diversity for MCS-limited UEs |
| MCS | 5 | Modulation and coding scheme index (0–31) | Link adaptation; highest single scheduling variable |
| New Data Indicator (NDI) | 1 | Toggled on new TB; identical NDI = retransmission | HARQ retransmission identification |
| Redundancy Version (RV) | 2 | Selects HARQ RV (0, 2, 3, 1) for chase or incremental combining | HARQ combining gain; typical sequence: 0→2→3→1 |
| HARQ process number | 4 | Identifies which of 16 HARQ processes carries this TB | HARQ process blocking analysis |
| Downlink assignment index (DAI) | 2–4 | Counter for HARQ-ACK multiplexing in TDD | HARQ-ACK codebook construction (Type 1/2) |
| TPC for PUCCH | 2 | Closed-loop power control for PUCCH carrying HARQ-ACK | PUCCH coverage; HARQ-ACK reliability |
| PDSCH-to-HARQ feedback timing | 3 | K1: number of slots after PDSCH end for HARQ-ACK | HARQ round-trip time; impacts process count requirement |
| Antenna port(s) | 4–6 | DMRS port(s) for spatial multiplexing (1–8 layers) | MIMO layer count; precoding matrix selection |
| CBG Transmission Information (CBGTI) | 0 or 8 | Bitmap of code block groups to (re)transmit | CBG retransmission — reduces overhead for large TBs |
§20.4 Frequency-Domain Resource Allocation — Type 0 and Type 1
TS 38.214 §5.1.2 defines two resource allocation types for PDSCH, both selectable via DCI format 1_1. The gNB may configure a UE to support Type 0 only, Type 1 only, or both (Type 1 default with Type 0 fallback via RRC IE resourceAllocation).
20.4.1 Resource Allocation Type 0 — RBG Bitmap
Type 0 allocates resources as a bitmap of Resource Block Groups (RBGs). Each RBG consists of P consecutive PRBs, where P is determined by the BWP size as given in TS 38.214 Table 5.1.2.2.1-1:
Eq 20.2 — RBG Size P for Type 0 Allocation (TS 38.214 Table 5.1.2.2.1-1)
P = 2 if NBWP ≤ 36 | P = 4 if 37 ≤ NBWP ≤ 72 | P = 8 if 73 ≤ NBWP ≤ 144 | P = 16 if 145 ≤ NBWP ≤ 275
Number of RBGs: NRBG = ⌈ (NBWP + Nstart mod P) / P ⌉
Bitmap length = NRBG bits (1 = allocated, 0 = not allocated).
Type 0 allows non-contiguous, frequency-diverse allocations with any arbitrary subset of RBGs. This is optimal for frequency-selective fading environments where CQI varies significantly across the band. The cost is bitmap overhead: a 100 MHz BWP (66 RBGs at P=4) requires a 66-bit bitmap field in every DCI.
20.4.2 Resource Allocation Type 1 — Starting PRB + Length
Type 1 allocates a contiguous set of virtual resource blocks (VRBs) defined by a starting VRB index RBstart and an allocation length LRBs. This is encoded compactly using a single resource indicator value (RIV):
Eq 20.3 — Resource Indicator Value Encoding (TS 38.214 §5.1.2.2.2)
If (LRBs − 1) ≤ ⌊NBWP/2⌋:
RIV = NBWP × (LRBs − 1) + RBstart
Else:
RIV = NBWP × (NBWP − LRBs + 1) + (NBWP − 1 − RBstart)
Bit width = ⌈ log2(NBWP × (NBWP + 1) / 2) ⌉
For a 100 MHz BWP (NBWP = 66 PRBs), the RIV field is ⌈log2(66 × 67 / 2)⌉ = ⌈log2(2211)⌉ = 12 bits — far more compact than the 66-bit Type 0 bitmap. Type 1 is the default allocation type in most commercial deployments for this reason.
§20.5 Time-Domain Resource Assignment — TDRA Table and Mapping Types A/B
The TDRA field in DCI format 1_1 (4 bits, up to 16 entries) indexes into a PDSCH-TimeDomainResourceAllocationList configured by RRC. Each entry specifies three parameters: K0 (slot offset from PDCCH to PDSCH), S (starting OFDM symbol within the slot), and L (number of consecutive symbols allocated). The combination (S, L) determines the PDSCH mapping type:
| Mapping Type | Valid Starting Symbol S | Valid Duration L (symbols) | DMRS Position | Use Case |
|---|---|---|---|---|
| Type A (slot-based) | 0, 1, 2, 3 | 3–14 | Symbol 2 or 3 (front-loaded) | Nominal eMBB scheduling; maximum DMRS separation |
| Type B (mini-slot) | 0–12 | 2, 4, 7 | First symbol of allocation | URLLC low-latency; DL preemption insertion |
"For PDSCH mapping type A, the PDSCH allocation within a slot starts at symbol 0, 1, 2, or 3. For PDSCH mapping type B, the PDSCH may start at any OFDM symbol within the slot and has a duration of 2, 4, or 7 OFDM symbols. The DM-RS for PDSCH mapping type A is located at the OFDM symbol position specified by dmrs-TypeA-Position (value 2 or 3)." — TS 38.214 §5.1.2.1 (Release 17)
The default TDRA table for a standard TDD 7D:2S:2U (DDDSUUDDDD) pattern at μ=1 contains entries that respect the slot boundary constraints: DL slots admit type A entries starting at symbol 0 with L=12 or L=14; the special slot (S) admits shorter type A entries limited to the DL portion; and UL slots carry only PUSCH TDRA entries with appropriate DMRS positioning.
§20.6 HARQ Operation — 16-Process Asynchronous NR HARQ
Hybrid Automatic Repeat reQuest (HARQ) is the primary error recovery mechanism for 5G NR. Unlike LTE, which used synchronous HARQ with fixed 8 ms round-trip timing, NR employs asynchronous HARQ for both DL and UL, with up to 16 HARQ processes per UE per cell. The increase from 8 to 16 processes is driven by the shorter slot durations and variable K1 timing (PDSCH-to-HARQ feedback) introduced in NR.
"For the physical downlink shared channel, a UE shall support up to 16 HARQ processes. The UE shall maintain a soft buffer per HARQ process. For a given HARQ process, if the new data indicator (NDI) is toggled with respect to the previous transmission of the same HARQ process, the UE shall flush the soft buffer and decode the new transport block. If the NDI is not toggled, the UE shall combine the received signal with the soft buffer content." — TS 38.214 §5.1 (Release 17)
20.6.1 HARQ Process Lifecycle
Each HARQ process transitions through four states:
- EMPTY — No pending TB. The gNB may assign this process to a new transmission (initial transmission, NDI toggled).
- PENDING_ACK — Initial transmission sent; waiting for HARQ-ACK from UE within K1 slots.
- NACK — HARQ-ACK received as NACK or DTX; gNB may retransmit (same NDI, RV advances: 0→2→3→1).
- ACK / RELEASED — HARQ-ACK received as ACK; process returns to EMPTY after K1 slots.
Eq 20.4 — Minimum HARQ Processes Required (TS 38.214 §5.4)
NHARQ,min = ⌈ (K0 + Lsym/14 + K1) / Tslot ⌉ + 1
where K0 = PDCCH-to-PDSCH slot offset, Lsym/14 ≈ 1 slot for full-slot PDSCH, K1 = PDSCH-to-HARQ feedback slots.
For K0=0, K1=4 at μ=1: NHARQ,min = 4 + 1 + 1 = 6 processes. Supporting 16 processes allows the scheduler to overlap multiple in-flight TBs, avoiding HARQ stalling at high throughput.
20.6.2 NDI Toggle and RV Sequence
The NDI bit is the UE's definitive indicator of new vs retransmitted data. The gNB toggles NDI (0→1 or 1→0) when transmitting a new TB to a HARQ process, and preserves the NDI value across all retransmissions of the same TB. The RV sequence for incremental redundancy is specified in TS 38.212 §5.4.2.1 and follows the pattern: RV0 → RV2 → RV3 → RV1. RV0 is self-decodable (contains systematic bits); subsequent RVs add parity bits at different circular buffer starting points, increasing the decoder's log-likelihood ratio accumulation.
§20.7 Link Adaptation — CQI, MCS Tables, and Outer-Loop OLLA
Link adaptation is the process by which the scheduler selects the MCS for each PDSCH/PUSCH transmission to maximise throughput subject to a block error rate (BLER) target. NR link adaptation operates on two loops:
- Inner loop (CQI-based): The UE periodically reports Channel Quality Indicator (CQI), which the gNB converts to an MCS index using the MCS table of TS 38.214 §5.1.3.
- Outer loop (BLER-based OLLA): The gNB measures the actual observed BLER from HARQ-ACK feedback and applies an offset to the CQI-to-MCS mapping to drive BLER toward a target value (typically 10% for initial transmissions).
20.7.1 CQI Reporting and MCS Table Mapping
TS 38.214 defines three MCS tables. Table 5.1.3.1-1 (64QAM, the standard table) is used for most eMBB UEs. Table 5.1.3.1-2 (256QAM) is enabled via RRC configuration. Table 5.1.3.1-3 is for low-spectral efficiency operation (QPSK only, used for coverage-limited scenarios).
"The UE shall report a wideband CQI value in the range [0, 15]. A CQI value of 0 indicates that the channel quality is out of range. CQI values 1 to 15 represent channel quality levels associated with modulation order and code rate pairs defined in Table 5.2.2.1-2 of TS 38.214." — TS 38.214 §5.2.2 (Release 17)
| CQI Index | Modulation | Code Rate × 1024 | Efficiency (bits/RE) | Approx. SINR Threshold |
|---|---|---|---|---|
| 0 | — | — | 0 | out of range |
| 1 | QPSK | 78 | 0.1523 | −6.7 dB |
| 2 | QPSK | 120 | 0.2344 | −4.7 dB |
| 3 | QPSK | 193 | 0.3770 | −2.3 dB |
| 4 | QPSK | 308 | 0.6016 | 0.2 dB |
| 5 | QPSK | 449 | 0.8770 | 2.4 dB |
| 6 | QPSK | 602 | 1.1758 | 4.3 dB |
| 7 | 16QAM | 378 | 1.4766 | 5.9 dB |
| 8 | 16QAM | 490 | 1.9141 | 8.1 dB |
| 9 | 16QAM | 616 | 2.4063 | 10.3 dB |
| 10 | 64QAM | 466 | 2.7305 | 11.7 dB |
| 11 | 64QAM | 567 | 3.3223 | 14.1 dB |
| 12 | 64QAM | 666 | 3.9023 | 16.3 dB |
| 13 | 64QAM | 772 | 4.5234 | 18.7 dB |
| 14 | 64QAM | 873 | 5.1152 | 21.0 dB |
| 15 | 64QAM | 948 | 5.5547 | 22.7 dB |
20.7.2 Transport Block Size Calculation
Given MCS index IMCS from the TS 38.214 Table 5.1.3.1-1, the gNB follows the TBS determination procedure of TS 38.214 §5.1.3.2:
Eq 20.5 — Transport Block Size (TS 38.214 §5.1.3.2)
NRE' = NscRB × Nsymbsh − NDMRSPRB − NohPRB
NRE = min(156, NRE') × nPRB
Ninfo = NRE × R × Qm × ν
TBS is then derived from Ninfo via the quantisation table in TS 38.214 §5.1.3.2 (Steps 2–4).
where: NscRB=12, Nsymbsh=allocated symbols, NDMRSPRB=DMRS REs per PRB, NohPRB=overhead (PTRS/CSI-RS), nPRB=allocated PRBs, R=code rate, Qm=modulation order, ν=number of layers.
20.7.3 Outer-Loop Link Adaptation (OLLA)
The CQI reported by the UE is a one-slot-delayed, quantised, and potentially inaccurate estimate of the channel. The Outer Loop Link Adaptation (OLLA) algorithm compensates by maintaining a per-UE CQI offset Δ that is updated after each HARQ feedback event:
Eq 20.6 — OLLA Update Rule
If ACK: Δ(n+1) = Δ(n) + δup
If NACK: Δ(n+1) = Δ(n) − δdown
Equilibrium BLER target: BLERtarget = δup / (δup + δdown)
For 10% BLER target: set δup = 0.01, δdown = 0.09 (ratio 1:9).
Effective MCS index = CQI-to-MCS(CQI + Δ), clipped to valid MCS range.
§20.8 Scheduling Request and Buffer Status Report
Uplink scheduling is demand-driven: the UE must signal its data availability to the gNB before UL resources can be allocated. This signaling occurs through two complementary mechanisms: the Scheduling Request (SR) for immediate low-overhead indication, and the Buffer Status Report (BSR) for quantified queue-length information.
20.8.1 Scheduling Request Procedure (TS 38.321 §5.4.4)
When a UE has data to transmit and no UL grant is available, it triggers an SR. The SR is transmitted on PUCCH using the SR resource configured in schedulingRequestResourceConfig. SR resources are periodic, with period configurable from 1 to 80 slots (TS 38.331 IE periodicityAndOffset). The maximum waiting time for an SR opportunity is therefore:
Eq 20.7 — Maximum SR Waiting Time
TSR,wait = Tslot × SRperiod (slots)
At μ=1 (0.5 ms slots): 10-slot SR period = 5 ms max wait. 2-slot SR period = 1 ms max wait (URLLC).
After SR transmission, the UE starts sr-TransMax timer (default 4 attempts). If no UL grant arrives after sr-TransMax SRs, the UE initiates RRC connection re-establishment — a retainability event.
20.8.2 Buffer Status Report (TS 38.321 §5.4.5)
The BSR informs the gNB of the total data volume waiting in the UE's UL buffers, categorised by Logical Channel Group (LCG). NR supports four BSR formats:
| BSR Format | MAC CE Size | LCGs Reported | Buffer Size Granularity | Trigger Condition |
|---|---|---|---|---|
| Short BSR | 1 byte | 1 (highest priority LCG with data) | 32 levels (5-bit field) | Single LCG has data; padding available |
| Short Truncated BSR | 1 byte | 1 (highest priority) | 32 levels (5-bit field) | Insufficient PUSCH for Long BSR; send truncated |
| Long BSR | 1–5 bytes | Up to 8 LCGs with data | 256 levels (8-bit per LCG) | Multiple LCGs have data; padding for all |
| Long Truncated BSR | Variable | Highest priority LCGs that fit | 256 levels | Insufficient PUSCH for full Long BSR |
§20.9 Semi-Persistent Scheduling and Configured Grant
Dynamic scheduling requires a DCI per slot per UE, incurring PDCCH capacity overhead and scheduling latency. For services with predictable, periodic data patterns, NR provides two deterministic alternatives:
- Semi-Persistent Scheduling (SPS) for PDSCH (DL): The gNB configures a periodic DL grant via RRC (
sps-Config). The UE applies the grant every periodicity slots without requiring a DCI. An initial DCI with CS-RNTI activates SPS; a subsequent DCI deactivates it. - Configured Grant (CG) Type 1 and Type 2 for PUSCH (UL): CG Type 1 is fully configured via RRC with no DCI activation. CG Type 2 is RRC-configured but requires DCI activation. Both allow the UE to transmit UL data periodically without sending an SR and waiting for a dynamic grant.
"For configured scheduling type 1, the PUSCH shall be transmitted autonomously by the UE according to the configured resource without receiving a DCI format 0_0 or DCI format 0_1. The UE shall start the configured uplink grant periodically at every nth occasion defined by the configured periodicityAndOffset." — TS 38.321 §5.8.2 (Release 17)
| Parameter | SPS (DL PDSCH) | CG Type 1 (UL PUSCH) | CG Type 2 (UL PUSCH) |
|---|---|---|---|
| Direction | Downlink | Uplink | Uplink |
| Activation mechanism | DCI with CS-RNTI | RRC only (no DCI) | RRC + DCI with CS-RNTI |
| Periodicity range | 10–640 ms | 1–5120 slots | 1–5120 slots |
| Key use case | VoNR PDSCH (20 ms period) | VoNR PUSCH, URLLC (no SR delay) | URLLC with dynamic ON/OFF |
| HARQ operation | Standard HARQ with ACK/NACK | HARQ with or without retransmission | HARQ with retransmission DCI |
| PDCCH overhead saving | High (one DCI per session) | Maximum (zero DCI per period) | High (one DCI per session) |
§20.10 TDD UL/DL Configuration Impact on Scheduling Opportunity Density
In TDD deployments (the dominant 5G NR configuration), the fraction of slots available for DL vs UL directly determines the maximum achievable throughput in each direction. TS 38.213 §11.1 defines the slot format table; the TDD UL/DL pattern is configured via RRC IE tdd-UL-DL-ConfigurationCommon and may be dynamically adjusted per slot via SFI DCI.
Eq 20.8 — DL/UL Throughput Fraction
DL fraction = (NDL + fS × NS) / (NDL + NUL + NS)
UL fraction = (NUL + (1 − fS) × NS) / (NDL + NUL + NS)
where NDL = DL slots, NUL = UL slots, NS = special slots, fS = DL symbol fraction of special slot (typically 0.57 for 8DL+2GP+4UL symbol split).
| TDD Pattern | Period | DL Slots | S Slots | UL Slots | Approx. DL% | Approx. UL% | Use Case |
|---|---|---|---|---|---|---|---|
| DDDSU | 5 ms (10 slots) | 7 | 1 | 2 | 75% | 25% | Video streaming, eMBB DL-heavy |
| DDSUU | 5 ms (10 slots) | 6 | 1 | 3 | 64% | 36% | Balanced eMBB |
| DDSU | 2.5 ms (5 slots) | 2 | 1 | 2 | 50% | 50% | Symmetric IoT/enterprise |
| DSUUU | 2.5 ms (5 slots) | 1 | 1 | 3 | 30% | 70% | UL-heavy (live streaming, industrial) |
| DDDDDDDSUUUUUUUSDDDDDDD… (4+1) | 10 ms | 7 | 2 | 1 | 78% | 22% | FWA DL-dominant |
§20.11 TS 28.552 Scheduling KPI Framework and Counter Decomposition
TS 28.552 §5.1.2 defines the PM counters that expose scheduling behaviour in live networks. The key counters cluster into four groups: PRB utilisation, MCS distribution, HARQ performance, and scheduling latency.
| Counter Name | Type | Definition | KPI Derived |
|---|---|---|---|
DL.PRBUsed.Cell |
Gauge | Number of PRBs used for PDSCH per measurement interval | DL PRB Utilisation = DL.PRBUsed / (Available PRBs × DL slots) × 100% |
UL.PRBUsed.Cell |
Gauge | Number of PRBs used for PUSCH per measurement interval | UL PRB Utilisation |
DL.Throughput.Cell |
Counter | Cumulative PDSCH payload bits (MAC PDU) delivered to all UEs | Cell DL throughput (Mbps) |
UL.Throughput.Cell |
Counter | Cumulative PUSCH payload bits received from all UEs | Cell UL throughput (Mbps) |
DL.MCS.Distr |
Distribution | Count of PDSCH transmissions per MCS index (0–31) per interval | Average DL MCS; fraction of 256QAM usage |
UL.MCS.Distr |
Distribution | Count of PUSCH transmissions per MCS index (0–31) per interval | Average UL MCS; UL coverage distribution |
DL.HARQ.InitTrans |
Counter | Number of DL initial HARQ transmissions | Basis for HARQ retransmission rate |
DL.HARQ.Retrans |
Counter | Number of DL HARQ retransmissions (all RVs after RV0) | DL HARQ Retrans Rate = DL.HARQ.Retrans / DL.HARQ.InitTrans × 100% |
UL.HARQ.InitTrans |
Counter | Number of UL initial HARQ transmissions | UL HARQ baseline |
UL.HARQ.Retrans |
Counter | Number of UL HARQ retransmissions | UL BLER proxy (Retrans Rate ≈ initial BLER with OLLA at equilibrium) |
DL.Sched.Active.UE |
Distribution | Number of UEs scheduled per slot (histogram) | Scheduler load; pairing gain analysis |
20.11.1 PRB Utilisation Formula
Eq 20.9 — DL PRB Utilisation (TS 28.552 §5.1.2)
PRButil,DL = DL.PRBUsed.Cell / (NPRB × NDL slots × Tmeas / Tslot) × 100%
where NPRB = total available PRBs in the BWP, NDL slots = fraction of slots in DL direction, Tmeas = PM measurement interval (typically 15 or 60 min), Tslot = slot duration.
Alarm threshold: > 85% sustained PRB utilisation indicates capacity congestion requiring expansion or frequency/traffic rebalancing.
20.11.2 Counter Signature Interpretation
| Observed Counter Pattern | Root Cause Hypothesis | Verification Step | Corrective Action |
|---|---|---|---|
| High DL PRB util (>85%), low DL throughput | Low average MCS (poor RF / UEs at cell edge) | Check DL.MCS.Distr — high fraction at MCS 0–4 | Coverage optimization; RET/azimuth adjustment; beam tilt |
| DL HARQ retrans rate > 15% | OLLA offset too aggressive; CQI overestimate | Check DL.MCS.Distr percentile vs CQI distribution | Reduce OLLA step or OLLA ceiling; verify CQI report mode |
| UL HARQ retrans rate > 20% | UL interference (TDD cross-link, PIM) or PUSCH power limit | Check UL PRB util distribution; IOT noise floor trend | TDD guard time review; antenna isolation check; UL power offset |
| Low PRB util but low throughput | Insufficient active UEs; scheduler not triggered (UE in DRX) | Check DL.Sched.Active.UE histogram; DRX config | Adjust DRX cycle; reduce inactive timer; check UE camp rate |
| UL PRB util high; UL throughput low | High BSR but low MCS (UL coverage) or CG overhead | Check UL.MCS.Distr; CG resource utilisation | Reduce CG period; review UL PA class; check UL MIMO config |
§20.12 Scheduling Optimisation Workflow — Worked Examples
20.12.1 The Six-Step Scheduling RCA Workflow
20.12.2 Worked Example 1 — Low DL Throughput with High PRB Utilisation
Scenario: A cell in a dense urban sector reports DL throughput of 120 Mbps against a cluster median of 310 Mbps. PRB utilisation is 91%. Active UE count is normal (average 8 scheduled UEs per slot). HARQ DL retransmission rate is 8% (within normal range). TDD pattern is DDDSU, 100 MHz channel, μ=1.
Step 1 — Throughput gap confirmed: 120 Mbps vs 310 Mbps cluster median. Gap = 61%. Not a load issue (PRB util = 91%, load is high).
Step 2 — PRB utilisation: 91% > 85% threshold. Congestion path selected.
Step 3A — MCS Distribution: DL.MCS.Distr shows 62% of transmissions at MCS 0–6 (QPSK). Average MCS = 5.8. Cluster average = 14.2. This is a coverage-driven MCS degradation, not a capacity problem.
Root cause: The cell has a suboptimal electrical tilt resulting in excessive coverage overlap with a co-channel neighbour at 180 m. The CQI feedback is dominated by edge UEs receiving interference from the neighbour, pulling average MCS down to QPSK. PRB utilisation is high because low MCS requires many PRBs to deliver the same bit count.
Eq 20.10 — Throughput Impact of MCS Depression
Throughputactual = PRButil × NPRB × MCSeff × NDL slots/Tmeas
At MCS 5.8 avg efficiency ≈ 0.88 bits/RE: T = 0.91 × 66 PRBs × 12 × 10 RE/sym × 0.88 × 7 DL slots/ms × 1000 ms/s ≈ 122 Mbps — consistent with observation.
At cluster MCS 14.2 avg efficiency ≈ 3.3 bits/RE: T ≈ 0.75 × 66 × 120 × 3.3 × 7000 ≈ 308 Mbps — consistent with cluster median.
Step 5 — Corrective Action: Increase electrical tilt by 2° to reduce inter-site distance to the overlapping neighbour. Tighten neighbour list to exclude the interfering cell below RSRP −115 dBm threshold. Monitor DL.MCS.Distr for shift from QPSK toward 16QAM/64QAM.
Step 6 — Validation target: Average DL MCS to increase from 5.8 to ≥12.0. PRB utilisation to decrease from 91% to ≤70% (same traffic carried more efficiently). DL throughput to increase from 120 to ≥250 Mbps.
20.12.3 Worked Example 2 — High UL HARQ Retransmission Rate
Scenario: A cell in an industrial park reports UL HARQ retransmission rate of 28% (alarm threshold = 15%). UL PRB utilisation is 55% (not congested). UL throughput is 40 Mbps against cluster median of 95 Mbps. TDD pattern is DDSUU. The cell is at 3.5 GHz, 30 kHz SCS.
Step 1 — UL throughput gap: 40 vs 95 Mbps. Step 2 — UL PRB util = 55%, not congested. Step 3B — Active UE count normal. Step 4A — UL.HARQ.Retrans / UL.HARQ.InitTrans = 28% anomaly confirmed.
Step 3A — MCS Distribution (UL): UL.MCS.Distr shows bimodal distribution: 35% of transmissions at MCS 14–20 (normal), 40% at MCS 3–7 (coverage-limited), and unexpectedly 25% at MCS 0–2 (extreme edge or interference). The bimodal shape suggests a subset of UEs experiencing severe UL path loss — consistent with industrial building penetration at 3.5 GHz.
Root cause: Industrial building operators have machinery generating wideband 3.5 GHz interference (Class B industrial ISM emissions). The IOT noise rise measured at gNB is +8 dB above thermal noise floor on PRBs 20–45. UEs transmitted on those PRBs experience PUSCH SINR < 0 dB, causing systematic HARQ NACK.
Eq 20.11 — UL Throughput Degradation from Retransmission Overhead
UL_eff = UL.Throughput / (1 + UL.HARQ.Retrans / UL.HARQ.InitTrans)
At 28% retrans rate: UL_eff = UL.Throughput × 1 / 1.28 = 78% of potential throughput wasted on retransmissions.
Additional cost: each retransmission occupies a HARQ process slot, reducing the process pool available for new data when K1 timing coincides with UL interference bursts.
Step 5 — Corrective Action: Enable frequency-selective scheduling to avoid PRBs 20–45 (configure interference-avoidance PRB mask via gNB parameter). Configure UL power control with higher P0 offset (+3 dB) for UEs below SINR threshold. Engage IoT noise monitoring alarm on the affected PRB range.
Step 6 — Validation target: UL HARQ retransmission rate to drop from 28% to ≤12%. UL throughput to recover from 40 to ≥70 Mbps. UL.MCS.Distr bimodal peak at MCS 0–2 to disappear.
20.12.4 Worked Example 3 — HARQ Process Blocking at High Load
Scenario: During peak hours a cell reports DL throughput plateau at 580 Mbps despite only 78% PRB utilisation and average MCS = 19 (healthy). The gNB vendor alarm log shows periodic "HARQ process pool exhaustion" events. K1 is configured as 8 slots (μ=1 TDD, DDDSU pattern).
Analysis — Minimum HARQ process count at K1=8:
Eq 20.12 — HARQ Process Requirement at K1=8
NHARQ,min = K0 + 1 (PDSCH) + K1 + 1 = 0 + 1 + 8 + 1 = 10 processes
At 16 processes available and 10 required: headroom = 6 processes. However, when HARQ retransmission rate reaches 15%, some processes are held in NACK state across multiple slots, consuming 15% of the 16-process pool = 2.4 processes in retransmission state. Peak load can temporarily consume 13–14 processes, leaving 2–3 processes available for new scheduling — causing throughput plateau even at 78% PRB utilisation.
Corrective Action: Reduce K1 from 8 to 4 slots (change RRC dl-DataToUL-ACK values in PUCCH configuration). This reduces NHARQ,min from 10 to 6, freeing 4 additional processes for new transmissions at peak load. Verify that PUCCH coverage is sufficient for the shorter K1 timing (UEs at cell edge must receive HARQ-ACK opportunity reliably within 4 slots).
Validation target: HARQ process exhaustion events to drop from 12/hour to 0/hour. DL throughput ceiling to increase from 580 Mbps to ≥720 Mbps during peak hours.
Chapter 20 Summary
This chapter established the complete 5G NR PDSCH/PUSCH scheduling framework from slot structure through KPI decomposition:
- Slot and symbol structure (§20.2): The scheduling grid is defined by numerology μ, giving slot durations from 1 ms (μ=0) to 0.125 ms (μ=3). Each slot contains 14 OFDM symbols. Mini-slot scheduling (Type B, 2/4/7 symbols) enables sub-slot URLLC latency.
- DCI formats (§20.3): DCI 1_1 schedules DL PDSCH; DCI 0_1 schedules UL PUSCH. Each carries the complete resource assignment: frequency allocation, TDRA index, MCS, HARQ process number, NDI, RV, and K1 timing.
- Frequency-domain allocation (§20.4): Type 0 (RBG bitmap, frequency-diverse) and Type 1 (RIV-encoded contiguous allocation) are the two mechanisms, with Type 1 dominating commercial deployments due to compact DCI encoding.
- TDRA and mapping types (§20.5): The 4-bit TDRA field indexes a configured table of (K0, S, L) entries. Mapping Type A supports slot-based scheduling (S=0–3, L=3–14); Type B supports mini-slot (S=any, L=2/4/7).
- HARQ operation (§20.6): NR uses asynchronous HARQ with up to 16 processes. NDI toggle identifies new TBs; RV sequence (0→2→3→1) implements incremental redundancy. Minimum process count depends on K1 timing.
- Link adaptation (§20.7): Inner loop converts CQI to MCS via TS 38.214 tables; outer loop OLLA adjusts a per-UE offset to target 10% initial BLER. TBS is computed from allocated REs, MCS efficiency, and layer count.
- SR and BSR (§20.8): Uplink demand signaling uses SR (periodic PUCCH, 1–80 slot period) and BSR (MAC CE with 4-LCG buffer volumes). SR period is the primary UL scheduling latency determinant for delay-sensitive services.
- SPS and Configured Grant (§20.9): Deterministic scheduling eliminates per-slot DCI overhead. SPS for DL (VoNR 20 ms period) and CG Type 1/2 for UL (zero-SR latency) are essential for VoNR and URLLC services.
- TDD impact (§20.10): TDD pattern controls the DL/UL throughput ratio. DDDSU (~75% DL) suits video-dominant traffic; DSUUU (~70% UL) suits industrial/live-streaming scenarios. Guard slot symbol split contributes fractionally to both directions.
- Scheduling KPIs (§20.11): TS 28.552 PM counters (DL/UL PRB utilisation, MCS distribution, HARQ retransmission rate, active UE count) form the observability layer for scheduling optimisation. Counter anomaly signatures map to specific RCA paths.
- Scheduling optimisation workflow (§20.12): Three worked examples demonstrated the six-step workflow: throughput gap identification, PRB utilisation branching, MCS/HARQ counter deep-dive, root cause isolation, parameter change, and before/after validation.
MCS, BLER and Link Adaptation
Complete 3GPP link adaptation framework for 5G NR: MCS tables (TS 38.214 Table 5.1.3.1-1 and -2), transport block size calculation, CQI reporting (wideband and subband), BLER target management, outer-loop link adaptation (OLLA) convergence, modulation order vs SINR mapping, Shannon capacity bounds, TS 28.552 throughput and HARQ KPIs, failure mode diagnosis, and parameter optimisation — all derived from TS 38.214 §5.1.3, TS 38.213 §7.2, TS 38.212 §7.3, and TS 28.552 with worked examples and decision-tree RCA
3GPP TS 38.214 §5.1.3 · TS 38.213 §7.2 · TS 38.212 §7.3.1 · TS 28.552 §5.1.1 · TS 28.554 §6.4Chapter Learning Objectives
After completing this chapter, you will be able to:
- State the link adaptation goal: select the highest MCS that keeps initial BLER at or below 10% on the PDSCH/PUSCH, as specified in TS 38.214
- Read TS 38.214 Table 5.1.3.1-1 and -2 entry-by-entry and map each MCS index to modulation order Qm, target code rate R, and spectral efficiency
- Apply the TS 38.214 §5.1.3.2 TBS calculation algorithm step-by-step to derive the transport block size for any combination of PRB count, MCS, layers, and symbols
- Explain CQI wideband and subband reporting modes (TS 38.213 §7.2), decode the 15-entry CQI table, and map CQI to MCS for initial scheduling
- Quantify the interaction between initial BLER (10% target), HARQ combining gain, and residual BLER to derive effective throughput
- Implement the outer-loop link adaptation (OLLA) algorithm: derive the step-up/step-down ratio for a 10% BLER target, trace OLLA convergence, and diagnose OLLA divergence
- Map SINR to modulation order (QPSK, 16QAM, 64QAM, 256QAM) using Shannon and 3GPP capacity curves and explain the Shannon gap
- Interpret TS 28.552 PM counters L.Thrp.bits.DL, L.HARQ.AckRatio, and CQI distribution buckets to derive link adaptation KPIs
- Identify and diagnose the three principal LA failure modes: stuck-low MCS, MCS oscillation, and high BLER despite low MCS
- Produce a parameter optimisation recommendation covering CQI reporting mode, OLLA enable/disable, targetCodeRate offset, and cqi-PeriodOffset for a given failure signature
§21.1 Link Adaptation Goal — Maximum MCS at 10% BLER
Link adaptation (LA) is the continuous, per-TTI decision process by which the gNB selects the modulation and coding scheme (MCS) for each scheduled UE. The primary objective is elegantly simple: choose the highest MCS — and therefore the highest spectral efficiency — while keeping the initial transmission block error rate (BLER) at or below 10%. This 10% BLER target is not arbitrary; it represents the crossover point at which the overhead of HARQ retransmissions begins to exceed the gain from using a more aggressive MCS.
The LA algorithm operates in a closed feedback loop. The UE measures the downlink channel quality and reports it as a Channel Quality Indicator (CQI) to the gNB. The gNB maps this CQI to an MCS index, schedules the PDSCH, and later receives a HARQ ACK or NACK. The sequence of ACK/NACK outcomes is used by the outer-loop link adaptation (OLLA) algorithm to fine-tune the CQI offset and correct for systematic biases in the CQI report (e.g., channel ageing, quantisation error, interference estimation error).
"The UE shall report a Channel Quality Indicator (CQI) index in the range 0 to 15. The CQI value shall reflect the highest CQI index such that a single PDSCH transport block with a combination of modulation scheme and transport block size corresponding to that CQI index and occupying a group of downlink physical resource blocks could be received with a transport block error probability not exceeding 0.1." — 3GPP TS 38.213 §7.2.1 (Release 17)
The 10% initial BLER target is a network-side operating point, not a hard constraint imposed by the specification. The specification merely requires that the UE report a CQI that, if used directly, would produce ≤ 10% BLER. In practice the gNB applies an OLLA offset to the CQI-derived MCS to drive the actual BLER towards this target while compensating for measurement noise and channel variation.
§21.2 MCS Tables — TS 38.214 Table 5.1.3.1-1 and -2
TS 38.214 defines two primary MCS tables for PDSCH: Table 5.1.3.1-1 (default, 64QAM maximum) and Table 5.1.3.1-2 (high-order modulation, 256QAM maximum). A third table (5.1.3.1-3, low-SE 64QAM) exists for coverage-limited scenarios. The gNB signals which table to use via the RRC parameter mcs-Table in PDSCH-Config. Each table provides 29 entries (MCS 0–28) plus reserved entries 29–31.
"The modulation order Qm, target code rate R×1024, and spectral efficiency are given in Table 5.1.3.1-1, Table 5.1.3.1-2, and Table 5.1.3.1-3, for the MCS index IMCS given by the 5-bit MCS field of the DCI. The modulation order and target code rate determined from the tables are used for TBS determination." — 3GPP TS 38.214 §5.1.3.1 (Release 17)
Table 21.1 — TS 38.214 Table 5.1.3.1-1: MCS Index Table 1 for PDSCH (64QAM max, abbreviated)
| MCS Index IMCS | Modulation Order Qm | Target Code Rate R×1024 | Spectral Efficiency (bps/Hz) | Modulation |
|---|---|---|---|---|
| 0 | 2 | 120 | 0.2344 | QPSK |
| 1 | 2 | 157 | 0.3066 | QPSK |
| 2 | 2 | 193 | 0.3770 | QPSK |
| 3 | 2 | 251 | 0.4902 | QPSK |
| 4 | 2 | 308 | 0.6016 | QPSK |
| 5 | 2 | 379 | 0.7402 | QPSK |
| 6 | 2 | 449 | 0.8770 | QPSK |
| 7 | 2 | 526 | 1.0273 | QPSK |
| 8 | 2 | 602 | 1.1758 | QPSK |
| 9 | 2 | 679 | 1.3262 | QPSK |
| 10 | 4 | 340 | 1.3281 | 16QAM |
| 11 | 4 | 378 | 1.4766 | 16QAM |
| 12 | 4 | 434 | 1.6953 | 16QAM |
| 13 | 4 | 490 | 1.9141 | 16QAM |
| 14 | 4 | 553 | 2.1602 | 16QAM |
| 15 | 4 | 616 | 2.4063 | 16QAM |
| 16 | 4 | 658 | 2.5703 | 16QAM |
| 17 | 6 | 438 | 2.5664 | 64QAM |
| 18 | 6 | 466 | 2.7305 | 64QAM |
| 19 | 6 | 517 | 3.0293 | 64QAM |
| 20 | 6 | 567 | 3.3223 | 64QAM |
| 21 | 6 | 616 | 3.6094 | 64QAM |
| 22 | 6 | 666 | 3.9023 | 64QAM |
| 23 | 6 | 719 | 4.2129 | 64QAM |
| 24 | 6 | 772 | 4.5234 | 64QAM |
| 25 | 6 | 822 | 4.8164 | 64QAM |
| 26 | 6 | 873 | 5.1152 | 64QAM |
| 27 | 6 | 910 | 5.3320 | 64QAM |
| 28 | 6 | 948 | 5.5547 | 64QAM |
| 29–31 | Reserved | |||
Table 21.2 — TS 38.214 Table 5.1.3.1-2: MCS Index Table 2 (256QAM max, high-order entries shown)
| MCS Index IMCS | Qm | R×1024 | Spectral Efficiency | Modulation |
|---|---|---|---|---|
| 0–9 | 2 | 120–711 | 0.2344–1.3867 | QPSK (identical to Table 1) |
| 10–16 | 4 | 340–616 | 1.3281–2.4063 | 16QAM (identical to Table 1) |
| 17–20 | 6 | 438–553 | 2.5664–3.2461 | 64QAM |
| 21 | 8 | 434 | 3.3906 | 256QAM |
| 22 | 8 | 490 | 3.8281 | 256QAM |
| 23 | 8 | 553 | 4.3203 | 256QAM |
| 24 | 8 | 616 | 4.8125 | 256QAM |
| 25 | 8 | 658 | 5.1406 | 256QAM |
| 26 | 8 | 699 | 5.4609 | 256QAM |
| 27 | 8 | 772 | 6.0313 | 256QAM |
| 28 | 8 | 873 | 6.8203 | 256QAM |
| 29–31 | Reserved | |||
§21.3 Transport Block Size Calculation — TS 38.214 §5.1.3.2
The transport block size (TBS) is not directly encoded in the DCI. Instead, the UE and gNB independently compute the same TBS from the DCI parameters using the deterministic algorithm in TS 38.214 §5.1.3.2. This algorithm takes five primary inputs: the number of allocated PRBs (nPRB), the MCS index (which yields Qm and R), the number of OFDM symbols (Nsymb), the number of DMRS symbols (NDMRS), and the number of spatial layers (ν).
Eq 21.1 — Intermediate Information Bits N_info (TS 38.214 §5.1.3.2 Step 1)
Ninfo = S · nPRB · NRE · R · Qm · ν
Where: S = scaling factor (1.0 for normal CP), nPRB = allocated PRBs, NRE = REs per PRB per slot = 12 × (Nsymb − NDMRS) − NOH, R = code rate (from MCS table R×1024 ÷ 1024), Qm = modulation order, ν = number of layers
Eq 21.2 — Small TBS Quantisation (N_info ≤ 3824 bits, TS 38.214 §5.1.3.2 Step 2a)
N'info = max(24, 2n · ⌊Ninfo / 2n⌋) where n = max(3, ⌊log2(Ninfo)⌋ − 6)
Then TBS = closest value in TS 38.214 Table 5.1.3.2-1 not less than N'info
Eq 21.3 — Large TBS Formula (N_info > 3824 bits, TS 38.214 §5.1.3.2 Step 2b)
N'info = max(3840, 2n · round((Ninfo − 24) / 2n)) where n = ⌊log2(Ninfo − 24)⌋ − 5
Then: if R ≤ 1/4: TBS = 8·C·⌈(N'info + 24) / (8·C)⌉ − 24, C = ⌈(N'info + 24) / 3816⌉
if R > 1/4 and N'info > 8424: TBS = 8·C·⌈(N'info + 24) / (8·C)⌉ − 24, C = ⌈(N'info + 24) / 8424⌉
otherwise: TBS = 8·⌈(N'info + 24) / 8⌉ − 24
Worked Example 21.1 — TBS for MCS 20 (64QAM, 25 PRBs, 12 symbols, 1 layer)
Given: MCS index 20 (Table 5.1.3.1-1), nPRB = 25, Nsymb = 12, NDMRS = 1 (single DMRS symbol), NOH = 0, ν = 1 layer
Step 1: Look up MCS 20 → Qm = 6 (64QAM), R×1024 = 567 → R = 567/1024 = 0.5537
Step 2: Compute N_RE = 12 × (12 − 1) − 0 = 12 × 11 = 132 REs per PRB
Step 3: N_info = 1.0 × 25 × 132 × 0.5537 × 6 × 1 = 25 × 132 × 3.3222 = 10,968 bits
Step 4: Large TBS path (N_info = 10,968 > 3824): n = ⌊log₂(10,968 − 24)⌋ − 5 = ⌊13.42⌋ − 5 = 8
N'info = max(3840, 2⁸ · round((10,968 − 24)/256)) = max(3840, 256 · round(42.75)) = 256 × 43 = 11,008
Step 5: R > 1/4 and N'_info ≤ 8424 is FALSE (11,008 > 8424) → C = ⌈(11,008+24)/8424⌉ = ⌈1.311⌉ = 2
TBS = 8 × 2 × ⌈(11,008+24)/(8×2)⌉ − 24 = 16 × ⌈690.75⌉ − 24 = 16 × 691 − 24 = 11,056 − 24 = 11,032 bits = 1,379 bytes
Throughput check: At 30 kHz SCS (Tslot = 0.5 ms), throughput = 11,032 / 0.5 ms = 22.1 Mbps per PRB group per slot (single slot)
§21.4 CQI Reporting — TS 38.213 §7.2
The Channel Quality Indicator is the primary input to the gNB link adaptation algorithm. TS 38.213 §7.2 defines a 4-bit CQI index ranging from 0 (out of range) to 15. Each CQI index maps to a modulation order and an approximate code rate, representing the highest data rate that the UE believes can be decoded with ≤ 10% BLER. The CQI table used by the UE must match the MCS table configured by the gNB.
Table 21.3 — TS 38.213 Table 7.2.1-1: 4-bit CQI Table (default, 64QAM)
| CQI Index | Modulation | Code Rate × 1024 | Efficiency (bps/Hz) | Typical SINR range (dB) |
|---|---|---|---|---|
| 0 | Out of range (UE cannot decode) | |||
| 1 | QPSK | 78 | 0.1523 | −6 to −3 |
| 2 | QPSK | 120 | 0.2344 | −3 to 0 |
| 3 | QPSK | 193 | 0.3770 | 0 to 2 |
| 4 | QPSK | 308 | 0.6016 | 2 to 5 |
| 5 | QPSK | 449 | 0.8770 | 5 to 8 |
| 6 | QPSK | 602 | 1.1758 | 8 to 10 |
| 7 | 16QAM | 378 | 1.4766 | 10 to 12 |
| 8 | 16QAM | 490 | 1.9141 | 12 to 14 |
| 9 | 16QAM | 616 | 2.4063 | 14 to 17 |
| 10 | 64QAM | 466 | 2.7305 | 17 to 19 |
| 11 | 64QAM | 567 | 3.3223 | 19 to 21 |
| 12 | 64QAM | 666 | 3.9023 | 21 to 23 |
| 13 | 64QAM | 772 | 4.5234 | 23 to 25 |
| 14 | 64QAM | 873 | 5.1152 | 25 to 28 |
| 15 | 64QAM | 948 | 5.5547 | >28 |
CQI can be reported in two granularities, configured via cqi-ReportConfig in RRC:
- Wideband CQI: A single CQI value reflecting the average channel quality across the entire BWP. Reported via PUCCH Format 2 (periodic, period set by reportingPeriod) or via PUSCH (aperiodic, triggered by DCI field). Low overhead, suitable for low-mobility UEs. Period options: 5, 10, 20, 40, 80, 160 slots.
- Subband CQI: Per-subband differential CQI (2-bit delta relative to wideband CQI). Enables frequency-selective scheduling. Subband size J is configured per bandwidth (TS 38.214 Table 5.2.1.4-2). Higher overhead but essential for FDD or UEs with frequency-selective channels.
Table 21.4 — CQI Reporting Modes and Configuration Parameters
| Mode | Trigger | Granularity | Overhead | Best Use Case | Key RRC Parameter |
|---|---|---|---|---|---|
| Periodic WB | Timer | Wideband | Low (4 bits/period) | Low/medium mobility, TDD | cqi-ReportPeriodic → reportingPeriod |
| Periodic SB | Timer | Wideband + subband delta | Medium | FDD, frequency-selective channels | cqi-ReportPeriodic → subbandSize |
| Aperiodic WB | DCI trigger bit | Wideband | On-demand | Burst scheduling, dense UE loads | reportTriggerSize in DCI |
| Aperiodic SB | DCI trigger bit | Subband | Higher (per subband) | Heavy frequency-selective scheduling | aperiodicTriggerList |
§21.5 BLER Target, HARQ Interaction, and Effective Throughput
The initial transmission BLER target of 10% is designed to operate in concert with the HARQ retransmission mechanism. When a transport block fails decoding (BLER event), the UE sends a NACK and the gNB retransmits using Chase Combining (CC) or Incremental Redundancy (IR). Subsequent transmission attempts combine with the soft-buffer contents from prior attempts, increasing the effective SNR and dramatically reducing the conditional BLER.
Eq 21.4 — Residual BLER after N HARQ rounds
BLERresidual(N) ≈ BLERinitN
For BLERinit = 0.10 and N = 2 rounds: BLERresidual ≈ 0.01 (1%). For N = 3: ≈ 0.001 (0.1%). This assumes uncorrelated fading between retransmissions — valid for time diversity ≥ coherence time.
Eq 21.5 — Effective Throughput with HARQ Retransmissions
Tputeff = TBS × (1 − BLERresidual) / Tavg_tx
Where Tavg_tx = average transmission time including retransmissions = Tslot × (1 + BLERinit + BLERinit2 + …) ≈ Tslot / (1 − BLERinit)
Substituting: Tputeff = TBS × (1 − BLERresidual) × (1 − BLERinit) / Tslot ≈ TBS × (1 − BLERinit) / Tslot
At 10% initial BLER: efficiency factor = 0.90 × TBS/Tslot — only a 10% penalty vs perfect channel knowledge.
Worked Example 21.2 — Effective Throughput vs Initial BLER
Scenario: TBS = 11,032 bits, Tslot = 0.5 ms (30 kHz SCS). Compare BLER targets: 5%, 10%, 20%.
| BLERinit | Tavg_tx (ms) | Tputeff (Mbps) | SE penalty (%) |
|---|---|---|---|
| 5% | 0.5/(1−0.05) = 0.526 | 11,032×0.999/0.526 = 20.96 | 5.0 |
| 10% | 0.5/(1−0.10) = 0.556 | 11,032×0.99/0.556 = 19.65 | 10.0 |
| 20% | 0.5/(1−0.20) = 0.625 | 11,032×0.96/0.625 = 16.94 | 20.8 |
Conclusion: The 10% BLER operating point sacrifices only ~10% effective throughput compared to ideal, while allowing the MCS to be one or two indices higher than a 5% BLER target would permit. This tradeoff is optimised by the OLLA algorithm in §21.6.
§21.6 Outer-Loop Link Adaptation (OLLA)
The inner-loop of link adaptation translates a CQI report directly to an MCS. The outer loop (OLLA) applies a signed offset Δolla to the CQI before MCS selection: MCS = f(CQI + Δolla). This offset compensates for the systematic gap between reported CQI and the actual channel conditions at the time of transmission — caused by channel ageing, Doppler, CQI quantisation, and interference estimation errors.
"For PDSCH, the UE assumes that the channel estimation is performed based on DMRS. The CQI reported shall be consistent with the demodulation performance of the UE. The gNB may apply an inner-loop or outer-loop correction to the MCS selection process to achieve the desired BLER operating point." — 3GPP TS 38.214 §5.2.2.1 informative note (Release 17)
Eq 21.6 — OLLA Step Size Relationship for 10% BLER Target
step_up / step_down = BLERtarget / (1 − BLERtarget) = 0.10 / 0.90 = 1/9
In steady state, the expected change in Δ per transmission = 0:
(1 − BLERtarget) × step_up − BLERtarget × step_down = 0
Typical values: step_down = 0.9 CQI units, step_up = 0.1 CQI units. After each ACK: Δ += 0.1; after each NACK: Δ −= 0.9.
Eq 21.7 — OLLA Steady-State BLER Condition
BLERss = step_up / (step_up + step_down)
For step_up = 0.1, step_down = 0.9: BLERss = 0.1 / (0.1 + 0.9) = 0.10 = 10% ✓
To target 5% BLER: step_up = 0.05, step_down = 0.95. To target 1% BLER: step_up = 0.01, step_down = 0.99.
Worked Example 21.3 — OLLA Convergence from Cold Start
Scenario: UE reports CQI = 10 (actual channel supports CQI = 12). OLLA starts at Δ = 0. step_up = 0.1, step_down = 0.9. Actual BLER at MCS selected from CQI 10 is 3% (UE is overconservative). Expected OLLA behaviour:
- Transmissions 1–10: ~97% ACK, ~3% NACK. Net Δ change ≈ 0.97×0.1 − 0.03×0.9 = +0.097 − 0.027 = +0.07/tx
- After 10 tx: Δ ≈ +0.7 CQI units → MCS selection attempts CQI 10.7 → borderline MCS 11→12
- After ~50 tx: Δ converges to approximately +2.0 (CQI effective ≈ 12), BLER stabilises near 10%
- Once converged: step_up events (90% of tx) → Δ moves +0.1 per ACK; step_down events (10%) → Δ moves −0.9 per NACK → net drift ≈ 0
Key observation: OLLA convergence time depends on initial CQI error magnitude. A 2-CQI error (common with 200 ms channel ageing at 3 km/h) converges in 20–30 transmissions (~15–30 ms at 30 kHz SCS).
§21.7 Modulation Order vs SINR — Shannon Capacity and Practical Thresholds
The selection of modulation order is governed by the SINR available at the UE receiver. Higher-order modulation encodes more bits per symbol but requires a higher SINR to maintain the constellation separation needed for reliable demodulation. The relationship between SINR and achievable spectral efficiency is bounded by the Shannon-Hartley theorem:
Eq 21.8 — Shannon Capacity (AWGN Channel)
C = B · log2(1 + SINR)
For a single PRB (B = 180 kHz) at SINR = 20 dB (SINR_linear = 100): C = 180,000 × log₂(101) = 180,000 × 6.66 = 1.20 Mbps per PRB. Practical NR systems operate 2–4 dB below the Shannon bound due to the coded modulation gap.
Eq 21.9 — Required SINR for Qm-order Modulation (approximation)
SINRrequired ≈ 2Q_m · R − 1 (linear; coded gap ≈ 2–3 dB above Shannon)
QPSK (Qm=2, R=0.5): SINR ≈ 2¹ − 1 = 1 (0 dB). 16QAM (Qm=4, R=0.5): ≈ 2² − 1 = 3 (4.8 dB). 64QAM (Qm=6, R=0.75): ≈ 2⁴·⁵ − 1 ≈ 22 (13.5 dB). 256QAM (Qm=8, R=0.85): ≈ 2⁶·⁸ − 1 ≈ 110 (20.4 dB).
Table 21.5 — Practical SINR Thresholds for Modulation Order (NR PDSCH, 10% initial BLER)
| Modulation | Qm | CQI Range | Approx SINR Range (dB) | Typical MCS Range | Peak SE (bps/Hz) |
|---|---|---|---|---|---|
| QPSK | 2 | 1–6 | <0 to 10 | 0–9 | 1.33 |
| 16QAM | 4 | 7–9 | 10 to 17 | 10–16 | 2.57 |
| 64QAM | 6 | 10–15 | 17 to 28 | 17–28 | 5.55 |
| 256QAM | 8 | 11–15 (table 2) | >25 | 21–28 (table 2) | 6.82 |
§21.8 TS 28.552 Link Adaptation KPIs
TS 28.552 defines the 5G NR Performance Measurement specification. The counters relevant to link adaptation monitoring fall into three groups: throughput counters, HARQ outcome counters, and CQI distribution counters. These are collected at the cell level and reported in 15-minute or 1-hour measurement intervals.
Table 21.6 — Key TS 28.552 Link Adaptation PM Counters
| Counter Name | TS 28.552 Reference | Description | Unit | Typical Range |
|---|---|---|---|---|
| L.Thrp.bits.DL | §5.1.1.3 | Total DL PDSCH bits successfully received per cell per interval | bits | 10⁹–10¹² per 15 min |
| L.Thrp.bits.UL | §5.1.1.3 | Total UL PUSCH bits successfully received per cell per interval | bits | 10⁸–10¹¹ per 15 min |
| L.HARQ.AckRatio.DL | §5.1.3.1 | Ratio of HARQ ACK to total HARQ feedback events on PDSCH (= 1 − BLERinit) | ratio | 0.85–0.98 |
| L.HARQ.AckRatio.UL | §5.1.3.1 | Ratio of HARQ ACK to total HARQ feedback events on PUSCH | ratio | 0.82–0.97 |
| L.CQI.Distr.Bin[0..15] | §5.1.2.1 | Histogram of reported CQI values (one bucket per CQI index 0–15) | count | Depends on cell load |
| L.DL.MCS.Distr.Bin[0..28] | §5.1.1.6 | Histogram of scheduled MCS indices on PDSCH (per MCS 0–28) | count | Depends on channel conditions |
| L.PRB.UsedDL | §5.1.1.2 | Average number of PRBs used per slot in DL across the measurement interval | PRBs | 0 – BW-dependent max |
| L.PRB.UsedUL | §5.1.1.2 | Average number of PRBs used per slot in UL across the measurement interval | PRBs | 0 – BW-dependent max |
Eq 21.10 — Cell DL Throughput from TS 28.552 Counters
Tputcell_DL (bps) = L.Thrp.bits.DL / Tmeasurement_interval
Initial BLER = 1 − L.HARQ.AckRatio.DL
Mean CQI = Σ(i × L.CQI.Distr.Bin[i]) / Σ(L.CQI.Distr.Bin[i]) for i = 0..15
PRB utilisation = L.PRB.UsedDL / (maximum PRBs in BWP)
§21.9 Link Adaptation Failure Modes
Link adaptation failures manifest as three principal signatures in the PM counter data. Each has a distinct counter pattern and a different root cause hierarchy:
Table 21.7 — Link Adaptation Failure Mode Matrix
| Failure Mode | L.HARQ.AckRatio | L.DL.MCS mean | L.CQI mean | Throughput | Root Cause |
|---|---|---|---|---|---|
| Stuck Low MCS | High (>95%) | Low (<10) | Low (1–6) | Very low | Coverage limit, antenna tilt too high, pilot pollution, or OLLA clamped at minimum |
| MCS Oscillation | Variable, noisy | High variance | High variance | Suboptimal | OLLA step size too large, fast fading faster than CQI reporting period, stale CQI |
| High BLER at Low MCS | Low (<85%) | Low (<8) | Low but BLER still high | Severely degraded | Interference (pilot or data channel), hardware fault (PA), or massive channel estimation error |
| CQI Overestimation | Low (70–85%) | High (>20) | High (12–15) | Unstable | Mobility causing channel ageing, mismatch between CQI RS and data channel beamforming |
Worked Example 21.4 — Diagnosing High BLER Despite Low MCS
Observed counters: L.HARQ.AckRatio.DL = 0.72 (28% BLER), L.DL.MCS mean = 5 (QPSK, R≈0.37), L.CQI mean = 4, L.Thrp.bits.DL = 40% of expected.
Hypothesis 1 — Coverage limit: At MCS 5 (QPSK, R=0.37), the minimum required SINR is approximately −2 dB. If SINR were coverage-limited to −2 dB, BLER of 10% would be expected, not 28%. Reject hypothesis.
Hypothesis 2 — Interference: A 28% BLER at MCS 5 implies an effective SNR approximately 4–6 dB below the required threshold. This is consistent with an interfering co-channel signal 3–5 dB above the noise floor (I/N ≈ +3–5 dB). Check: is this cell on the same frequency as a neighbour with high output power and poor handover boundary?
Hypothesis 3 — Hardware fault: Check PM counter for PA power reduction events. A degraded PA may reduce PDSCH RS transmission power, causing the UE to report an inflated CQI (measured on SSB at normal power) while the actual PDSCH SNR is 4–6 dB lower.
Recommended action: (1) Check interference matrix — identify dominant interferer in drive test or using X2/Xn RSRP neighbours. (2) Audit PA hardware alarm history. (3) If interference confirmed: adjust ICIC parameters or trigger ANR to add HO event A3 towards interferer. (4) If hardware fault: replace RRU.
§21.10 Link Adaptation Parameter Optimisation
"The UE shall be configured with cqi-ReportConfig, which includes fields for the CQI reporting type (periodic or aperiodic), the CQI feedback type (wideband or subband), the reporting period and offset, the CQI table to use, and the PMI feedback type. The UE shall generate and report CQI/PMI/RI based on the configured cqi-ReportConfig." — 3GPP TS 38.214 §5.2.1 (Release 17)
Table 21.8 — Link Adaptation Parameter Optimisation Reference
| Parameter | 3GPP Reference | Default / Range | Failure Mode Addressed | Optimisation Guidance |
|---|---|---|---|---|
| reportingPeriod (CQI periodic) | TS 38.214 §5.2.1.4 / TS 38.331 | 20 slots (typical); 5, 10, 20, 40, 80, 160 | MCS oscillation from stale CQI | Reduce to 10 or 5 slots for high-mobility UEs (v > 30 km/h). Increase to 40–80 for static UEs to reduce overhead. |
| cqi-PeriodOffset | TS 38.331 CQI-ReportPeriodic | 0; 0 to (period−1) | CQI collision with other UPTs | Distribute UE CQI reporting across slots to avoid PUCCH congestion. Stagger by 1–3 slots in dense cells. |
| cqi-Table (mcs-Table) | TS 38.214 §5.1.3.1 / TS 38.331 | table1 (64QAM); table2 (256QAM) | Stuck-low MCS in good SINR conditions | Enable table2 (256QAM) only for UEs with consistently reported CQI ≥ 13 and SINR > 25 dB. Avoid for edge UEs — 256QAM increases sensitivity to CQI mismatch. |
| OLLA enable/step size | TS 38.214 §5.1.3 (informative); implementation-defined | Enabled; step_up=0.1, step_dn=0.9 | All CQI mismatch scenarios | Never disable OLLA in production. Increase step_dn (e.g., 1.8) to recover faster from overestimation. Decrease step_dn (e.g., 0.5) for high-variance channels to reduce oscillation. |
| targetCodeRate offset (δ) | TS 38.214 §5.1.3.1 (gNB implementation) | 0 dB; −3 to +3 dB | Systematic high BLER (offset < 0) or stuck-low MCS (offset > 0) | If mean BLER > 15%: set δ = −1 dB (more conservative). If mean BLER < 3% and MCS low: set δ = +1 dB (more aggressive). Verify against L.HARQ.AckRatio after 24 hours. |
| subbandSize J | TS 38.214 Table 5.2.1.4-2 | 4–16 PRBs (bandwidth-dependent) | Frequency-selective BLER pattern | Smaller J = finer granularity = better frequency-selective scheduling benefit but higher PUCCH overhead. Use J=4 for 20 MHz FDD; J=8–16 for wider bandwidths. |
Worked Example 21.5 — Full LA Optimisation Workflow
Scenario: A 100 MHz NR cell (FR1, 30 kHz SCS, 66 PRBs active) shows the following 24-hour PM data:
- L.HARQ.AckRatio.DL = 0.82 (BLERinit = 18%)
- L.DL.MCS mean = 16 (high MCS)
- L.CQI mean = 13 (high — most UEs in good SINR)
- L.Thrp.bits.DL = 1.8 × 10¹⁰ bits in 15 minutes = 20 Gbps peak
Step 1 — Identify failure mode: BLER = 18% > 10% target. MCS is high (16) despite poor BLER. CQI = 13 implies 64QAM capable. This is CQI overestimation: the channel quality has degraded (possibly interference or mobility) but CQI reports are lagging.
Step 2 — Verify with OLLA behaviour: OLLA should be driving Δ negative to reduce MCS. If BLER has been persistently high for hours, OLLA step_dn may be too small (0.9) to compensate fast enough. The 18% BLER suggests OLLA is operating at MCS 16 with actual channel supporting only MCS 12–13.
Step 3 — Parameter changes:
- Reduce cqi-reportingPeriod from 20 to 10 slots — halves CQI staleness latency
- Increase OLLA step_dn from 0.9 to 1.5 — more aggressive downward correction on NACK
- Set targetCodeRate offset δ = −1 dB — shifts MCS selection 1 step more conservative
Step 4 — Expected outcome after 24 hours: L.HARQ.AckRatio.DL should rise to 0.88–0.92. L.DL.MCS mean may drop to 13–14 but effective throughput should increase due to fewer retransmissions.
Throughput estimate post-fix: At MCS 14 (SE = 2.16 bps/Hz) and 10% BLER: Tput = 0.90 × 2.16 × 180 kHz × 66 PRBs × 20 slots/ms = 0.90 × 2.16 × 11.88 MHz = 23.1 Mbps per cell — an improvement vs 18% BLER at MCS 16 (SE = 2.57): 0.82 × 2.57 × 11.88 = 25.0 Mbps, but HARQ retransmissions occupying additional slots reduce effective capacity to approximately 20 Mbps. The fix yields a net gain of ~15% in effective throughput.
Chapter 21 Summary
- LA goal: Select highest MCS keeping initial BLER ≤ 10% — optimised by OLLA to balance spectral efficiency against retransmission overhead (§21.1)
- MCS tables: TS 38.214 defines Table 1 (64QAM, MCS 0–28) and Table 2 (256QAM, MCS 0–28); each entry specifies Qm, R×1024, and spectral efficiency (§21.2)
- TBS calculation: TS 38.214 §5.1.3.2 two-path algorithm (N_info ≤ 3824 vs > 3824) quantises N_info to a standard TBS; both gNB and UE compute independently from DCI fields (§21.3)
- CQI reporting: 15-entry 4-bit CQI table; wideband (low overhead) vs subband (frequency-selective); periodic (PUCCH) and aperiodic (PUSCH trigger) modes (§21.4)
- BLER and HARQ: 10% initial BLER → ≈ 1% residual after 2 HARQ rounds; effective throughput ≈ 0.90 × TBS/Tslot; HARQ combining gain essential for high-SINR cells (§21.5)
- OLLA algorithm: step_up/step_down ratio = 1/9 for 10% BLER target; converges in ~20–30 transmissions; OLLA diverges when channel varies faster than step convergence rate (§21.6)
- SINR vs modulation: QPSK < 10 dB, 16QAM 10–17 dB, 64QAM 17–28 dB, 256QAM > 25 dB; practical thresholds are 2–4 dB above Shannon bound (§21.7)
- TS 28.552 KPIs: L.HARQ.AckRatio.DL = 1 − BLERinit; L.CQI.Distr gives CQI histogram; L.DL.MCS.Distr gives MCS histogram; combine to derive LA health (§21.8)
- Failure modes: Stuck-low MCS (coverage/OLLA clamp), MCS oscillation (stale CQI/large step), high BLER at low MCS (interference/HW) — each has distinct counter signature (§21.9)
- Optimisation: CQI period, OLLA step sizes, targetCodeRate offset, MCS table selection, and subband CQI granularity are the five LA control levers with well-defined tradeoffs (§21.10)
MIMO Layers and Codebooks
Spatial multiplexing capacity, Type I and Type II codebook structures, rank indicator reporting, DL/UL MIMO throughput analysis, massive MIMO CSI-RS beam management, MIMO configuration parameters, TS 28.552 MIMO KPIs (L.RankDist.DL.*), and failure mode diagnosis — all derived from TS 38.214 §5.2, TS 38.211 §7.3, TS 38.213 §8, and TS 28.552 with worked examples and eight reference tables
3GPP TS 38.214 §5.2 · TS 38.211 §7.3 · TS 38.213 §8 · TS 38.331 §6.3 · TS 28.552 §5.1.1Chapter Learning Objectives
After completing this chapter, you will be able to:
- Derive the MIMO capacity formula using per-layer SINR values and explain how eigenvalue spread determines the practical rank ceiling
- Describe the structure of the Type I Single-Panel codebook (W = W1 × W2) and map PMI indices to precoding vectors for up to 4 layers
- Contrast the Type II codebook linear combination structure against Type I and quantify the spectral efficiency gain versus PUCCH overhead cost
- Explain Rank Indicator (RI) reporting, the eigenvalue-based channel rank test, and why RI can be bounded below SINR predictions
- Calculate peak DL MIMO throughput from layer count, bandwidth, code rate, modulation order, and overhead fraction
- Describe TDD reciprocity-based UL precoding, SRS configuration, and the UL codebook defined in TS 38.214 §6.1.1.2
- Trace the massive MIMO CSI-RS beam refinement chain from SSB beam sweeping through NZP-CSI-RS to BPL precoding
- Map the key RRC parameters (maxMIMO-Layers, pdsch-Config, csi-MeasConfig) to their 3GPP specification locations
- Compute average DL rank and high-rank ratio from TS 28.552 PM counters L.RankDist.DL.{1..8}
- Diagnose low-RI, RI-stuck, and Type II PUCCH overflow failure modes from counter signatures and propose parameter remedies
§22.1 Spatial Multiplexing versus Diversity — Capacity and the Rank Concept
A multi-antenna system can exploit its spatial degrees of freedom in two fundamentally different ways. Diversity sends the same information stream on multiple antennas to reduce fading variance and improve link reliability. Spatial multiplexing sends independent data streams — layers — on simultaneously active spatial paths, multiplying throughput by the number of independently supportable streams.
The 5G NR physical layer specification (TS 38.214) encodes this choice through the transmission rank ν: a value from 1 to min(NT, NR) selected by the rank indicator (RI) reported by the UE. At rank 1, the precoding matrix reduces to a single beam vector, providing maximum array gain and diversity. At rank ν > 1, the precoding matrix W is a NT × ν matrix that simultaneously excites ν spatial streams, each occupying the full time-frequency resource grid of a single PDSCH allocation.
The theoretical capacity of a MIMO channel with ν active layers is given by the Shannon sum over individual per-layer SINR values after spatial processing:
Eq 22.1 — MIMO Spatial Multiplexing Capacity (Shannon bound)
C = B × ∑i=1ν log2(1 + SINRi) [bit/s]
where B is the allocated bandwidth [Hz], ν is the number of layers (rank), and SINRi is the post-equalisation signal-to-interference-plus-noise ratio on layer i. The SINR values are determined by the channel singular value decomposition: SINRi ∝ σi2 / N0, where σi are the singular values of the channel matrix H.
The rank of the channel — the number of non-negligible singular values — is the fundamental physical constraint on spatial multiplexing gain. A channel with high eigenvalue spread (one dominant singular value) favours rank-1 beam-forming. A channel with near-equal singular values (low spread, rich scattering) supports high-rank spatial multiplexing. The UE measures this through CSI reference signals and reports the RI that maximises expected throughput.
"The precoding matrix W used for PDSCH transmission with ν layers shall be selected from the codebook defined in clause 5.2.2, based on the PMI and RI reported by the UE, or may be configured by the network for non-codebook-based transmission. The number of transmission layers ν shall not exceed the rank indicator RI reported by the UE." — TS 38.214 §5.2.1 (Release 17)
Table 22.1 — MIMO Rank vs Channel Condition
| Rank (ν) | Eigenvalue Profile | Typical Environment | Array Gain | Multiplexing Gain | Preferred Codebook |
|---|---|---|---|---|---|
| 1 | One dominant σ₁ ≫ σ₂ | LOS, cell-edge, indoor deep | Maximum (NT) | None | Type I rank-1 |
| 2 | σ₁ ≈ 2σ₂ | Suburban, light NLOS | High | ~2× | Type I rank-2 |
| 4 | Near-equal σ₁≈σ₂≈σ₃≈σ₄ | Urban dense NLOS | Moderate | ~4× | Type II rank-2/4 |
| 8 | All singular values equal | Rich scattering (theoretical) | Low per layer | ~8× | Type II extended |
§22.2 Type I Single-Panel Codebook (TS 38.214 §5.2.2.2)
The Type I Single-Panel codebook is the baseline MIMO precoding mechanism for NR. It targets deployments with a single antenna panel at the gNB and supports up to 8 layers (rank). The codebook is designed for FDD operation where the gNB does not have direct channel reciprocity and must rely entirely on UE-reported CSI (PMI + RI + CQI).
The precoding matrix W is constructed as a two-stage product:
Eq 22.2 — Type I Single-Panel Codebook Structure (TS 38.214 §5.2.2.2)
W = W1 × W2
W1: wideband matrix selecting a beam group — a set of orthogonal DFT beams spanning the angular neighbourhood of the dominant channel direction. W1 is indexed by i1,1 and i1,2 for the horizontal and vertical dimensions respectively.
W2: subband matrix selecting a specific beam within the group and applying co-phasing between polarisations. W2 is indexed by PMI index i2.
For a 2-port (N1=1, N2=1) configuration: W1 is a 2×2 block matrix and W2 co-phases the two polarisations with one of {1, j, -1, -j} (QPSK alphabet).
The UE reports two PMI components: i1 = (i1,1, i1,2, i1,3) as a wideband indicator and i2 as a subband indicator, plus the RI and CQI for each codeword. The gNB then indexes into the codebook tables in TS 38.214 Tables 5.2.2.2.1-1 through 5.2.2.2.5-1 (for various antenna configurations) to retrieve the precoding matrix.
"For a UE reporting a Type I Single-Panel CSI, the precoding matrix W for ν layers is defined as W = W₁W₂, where W₁ and W₂ are selected from the codebook subsets configured by the network. The codebook subsets shall be configured by higher layer parameter codebookSubset." — TS 38.214 §5.2.2.2.1 (Release 17)
Table 22.2 — Type I Single-Panel Codebook Parameters by Antenna Configuration
| Config (N1,N2) | Ports | Max Rank | W1 indices | W2 indices | Codebook Table |
|---|---|---|---|---|---|
| (1,1) | 2 | 2 | i₁=0 | i₂ ∈ {0,1,2,3} | Table 5.2.2.2.1-1 |
| (2,1) | 4 | 4 | i₁,₁ ∈ {0..3} | i₂ ∈ {0..15} | Table 5.2.2.2.2-1 |
| (4,1) | 8 | 8 | i₁,₁ ∈ {0..7} | i₂ ∈ {0..15} | Table 5.2.2.2.3-1 |
| (4,2) | 16 | 8 | i₁,₁∈{0..7}, i₁,₂∈{0..3} | i₂ ∈ {0..15} | Table 5.2.2.2.4-1 |
| (8,2) | 32 | 8 | i₁,₁∈{0..15}, i₁,₂∈{0..3} | i₂ ∈ {0..15} | Table 5.2.2.2.5-1 |
§22.3 Type II Codebook (TS 38.214 §5.2.2.3)
The Type II codebook supersedes Type I in high-rank scenarios where precise beam shaping per subband significantly improves spectral efficiency. Instead of selecting a single beam, the UE reports a linear combination of L orthogonal DFT beams with complex amplitude coefficients, allowing the precoding vector to track fine angular and frequency variations in the channel.
Eq 22.3 — Type II Codebook Precoding Vector (TS 38.214 §5.2.2.3)
w = ∑l=1L pl × bl
where bl are the L selected DFT basis beams (column vectors from the oversampled DFT codebook), pl are the complex combining coefficients reported by the UE (amplitude + phase), and L ∈ {2, 3, 4} is the number of beams configured by higher layer. The full multi-layer precoding matrix W stacks per-layer vectors. Each layer may use a different linear combination.
Overhead: the UE must report Re{pl} + Im{pl} for each of L beams per polarisation per layer. For L=4, rank-2: approximately 2×2×4×2 = 32 complex coefficients per subband → significantly higher PUCCH payload than Type I.
"For Type II CSI reporting, the UE shall report, for each layer l, the beam selection indicator, the broadband amplitude coefficients, and the subband phase and amplitude coefficients. The number of beams L shall be configured by higher layer parameter numberOfBeams and shall be in the set {2, 3, 4}." — TS 38.214 §5.2.2.3.1 (Release 17)
Table 22.3 — Type I vs Type II Codebook Feature Comparison
| Feature | Type I Single-Panel | Type II | Type II Port Selection (Rel-16) |
|---|---|---|---|
| Precoder type | Single DFT beam + co-phase | Linear combo of L DFT beams | Subset of port signals |
| Number of beams L | 1 | 2, 3, or 4 | Configured subset |
| Max rank | 8 | 4 (Rel-15), 8 (Rel-16+) | 2 |
| Subband feedback | i₂ (3–5 bits) | p_l amplitudes + phases (15–30 bits) | Port selection + co-phase |
| PUCCH overhead | Low | High | Medium |
| SE advantage | Baseline | +10–25% dense urban | +5–15% mixed |
| 3GPP clause | §5.2.2.2 | §5.2.2.3 | §5.2.2.3.2 |
§22.4 Rank Indicator Reporting — Channel Rank Determination
The Rank Indicator (RI) is the UE's recommendation for the number of MIMO layers to schedule on a given time-frequency resource. It is reported together with PMI and CQI as part of the Channel State Information (CSI) report. The network uses RI to determine the precoding matrix rank but is not obligated to follow it exactly — it may override the rank subject to scheduling constraints.
The UE determines RI by evaluating the hypothetical throughput achievable at each rank value:
Eq 22.4 — RI Selection Criterion (TS 38.214 §5.2.1.4)
RI = argmaxν ∈ {1,...,8} Cν
Cν = ∑i=1ν log2(1 + SINRi)
The SINR per layer is estimated from the channel matrix H using the singular value decomposition H = U × Σ × VH. The singular values σi determine per-layer SINR. For MMSE receivers: SINRi ≈ σi2P / (σν+12P + N₀), where the self-interference from remaining layers is treated as noise. For MU-MIMO configurations the UE only reports RI for its own allocation.
The eigenvalue spread is the key physical quantity. Define spread as κ = σ1 / σν. When κ is large (one dominant eigenvalue, LOS or few scatterers), adding more layers yields diminishing capacity gain because lower eigenvalues contribute near-zero SINR. When κ ≈ 1 (isotropic scattering), every additional layer adds a full log₂ term and high rank is always preferred.
§22.5 DL MIMO Throughput — Peak Calculation and Worked Example
The peak downlink throughput of a MIMO configuration can be calculated directly from the 5G NR physical layer parameters. The formula accounts for the number of spatial layers, available bandwidth, modulation and coding scheme, and overhead from reference signals and control channels:
Eq 22.5 — DL MIMO Peak Throughput (TS 38.214 §5.1.3.2)
RDL = ν × (1 − OH) × NPRB × 12 × Qm × R × fs / Tslot
ν = number of MIMO layers (rank)
OH = overhead fraction (PDCCH + DMRS + CSI-RS ≈ 0.14 for typical NR FR1)
NPRB = allocated PRBs (bandwidth dependent)
Qm = modulation order (2=QPSK, 4=16QAM, 6=64QAM, 8=256QAM)
R = code rate (0 to 1, target ≈ 0.93 for MCS 27 in 256QAM table)
fs = scaling factor (1.0 for normal CP)
Tslot = slot duration (0.5 ms at 30 kHz SCS, 14 symbols)
Worked Example 22.1 — 4-Layer 100 MHz 64QAM Peak DL Throughput
Configuration: 100 MHz bandwidth (FR1, 30 kHz SCS), 4 MIMO layers, 64QAM MCS 27 (R=948/1024 ≈ 0.926), DMRS + PDCCH overhead = 14%, TDD 7D:2S:1U pattern (effective DL fraction = 0.75)
Step 1 — PRBs: 100 MHz at 30 kHz SCS → 273 PRBs (from TS 38.104 Table 5.3.2-1)
Step 2 — Symbols per slot: 14 symbols × (1 − 0.14) = 12.04 useful symbols
Step 3 — Bits per slot per layer: 273 PRBs × 12 subcarriers × 6 bits (64QAM) × 0.926 × 12.04 / 14 = 273 × 12 × 6 × 0.926 × 0.860 = 15,625 bits/slot/layer
Step 4 — Total bits per slot (4 layers): 4 × 15,625 = 62,500 bits/slot
Step 5 — Throughput: 62,500 bits × 2000 slots/s (0.5 ms slot) = 125 Mbps per TDD slot × 0.75 DL fraction = ~940 Mbps
Note: This matches TS 38.306 reported UE capability for Category NR-Advanced 4-layer DL.
Table 22.4 — DL MIMO Peak Throughput by Configuration (100 MHz, 30 kHz SCS, TDD 7:2:1)
| Layers (ν) | Modulation | MCS | Code Rate | Approx. PRBs | Peak DL Rate |
|---|---|---|---|---|---|
| 1 | 64QAM | MCS 27 | 0.926 | 273 | ~235 Mbps |
| 2 | 64QAM | MCS 27 | 0.926 | 273 | ~470 Mbps |
| 4 | 64QAM | MCS 27 | 0.926 | 273 | ~940 Mbps |
| 4 | 256QAM | MCS 27 | 0.926 | 273 | ~1.25 Gbps |
| 8 | 256QAM | MCS 27 | 0.926 | 273 | ~2.5 Gbps |
§22.6 UL MIMO and SRS — TDD Reciprocity-Based Precoding
Uplink MIMO exploits multiple transmit antennas at the UE to increase UL throughput. Unlike DL where the gNB controls precoding, UL precoding can be either codebook-based (UE selects from a defined codebook and signals the TPMI to the gNB) or non-codebook-based (gNB estimates the UL channel from SRS and computes the optimal precoding, which it then signals to the UE via DCI format 0_1).
In TDD operation, channel reciprocity allows the gNB to estimate the DL channel matrix HDL from the UL SRS measurements, since HDL ≈ HULT when UL and DL use the same frequency. This is the foundation of reciprocity-based massive MIMO precoding.
Eq 22.6 — TDD Reciprocity Condition
HDL(f, t) ≈ HULT(f, t) when |tDL − tSRS| < Tcoh
where Tcoh is the channel coherence time. At 3.5 GHz, Tcoh ≈ 10–50 ms for pedestrian speeds. SRS must be configured with sufficient periodicity to maintain valid reciprocity estimates. The gNB uses the reciprocity estimate to compute the precoding matrix W = V (right singular vectors of H) without requiring any DL codebook-based feedback from the UE.
"For non-codebook based UL transmission, the UE shall transmit SRS resources as configured by the network. The network shall use the received SRS to determine the UL precoding matrix and shall signal the UL transmission precoding matrix indicator (TPMI) or the SRS resource indicator (SRI) to the UE in DCI format 0_1." — TS 38.214 §6.1.1.1 (Release 17)
Table 22.5 — UL Codebook (TS 38.214 §6.1.1.2) — TPMI Index to Precoding Matrix (2-port example)
| TPMI Index | Layers (ν) | Precoding Matrix W | Description |
|---|---|---|---|
| 0 | 1 | [1, 0]T / √2 | Port 0 only |
| 1 | 1 | [0, 1]T / √2 | Port 1 only |
| 2 | 1 | [1, 1]T / 2 | Both ports in-phase |
| 3 | 1 | [1, j]T / 2 | Both ports 90° phase |
| 4 | 2 | [[1,0],[0,1]] / √2 | Spatial multiplexing (full rank) |
| 5 | 2 | [[1,1],[1,-1]] / 2 | Hadamard precoding |
§22.7 Massive MIMO — NZP-CSI-RS, ZP-CSI-RS, and Beam Refinement
Massive MIMO deployments with 32–256 antenna elements use a hierarchical beam management procedure to narrow from a coarse SSB beam sweep to a precise NZP-CSI-RS-based beam for PDSCH precoding. The process is standardised in TS 38.214 §5.2.1 and TS 38.331 and involves three reference signal types working in sequence.
Non-Zero Power CSI-RS (NZP-CSI-RS): configured by the gNB via RRC parameter NZP-CSI-RS-Resource. Used for channel estimation (CSI-RS for CSI acquisition) and beam management (CSI-RS for beam management). Up to 32 CSI-RS ports per resource can be configured, supporting massive MIMO codebook feedback with full angular resolution.
Zero Power CSI-RS (ZP-CSI-RS): a muting pattern that creates blank resource elements in the PDSCH, used to protect CSI-RS of other cells from interference and to assist the UE in measuring inter-cell channel quality. Configured via ZP-CSI-RS-Resource in pdsch-Config.
The beam pair link (BPL) management procedure follows three levels defined in TS 38.214 §5.2.1.3:
Table 22.6 — Beam Management Procedure Levels (TS 38.214 §5.2.1.3)
| Procedure | Reference Signal | Purpose | Reporting | Periodicity |
|---|---|---|---|---|
| P-1 (Initial) | SSB sweep | Coarse beam acquisition, cell search | CRI in CSI report | SSB period (5–160 ms) |
| P-2 (Refinement) | NZP-CSI-RS | Fine spatial beam refinement | CRI + PMI (RSRP) | CSI-RS period (1–640 slots) |
| P-3 (Recovery) | NZP-CSI-RS | Beam failure recovery (BFR) | PRACH / SR | Triggered by BFI event |
"The UE shall measure the reference signal received power (RSRP) of the configured NZP-CSI-RS resources and report the CRI (CSI-RS Resource Indicator) corresponding to the resource with the highest RSRP. The reported CRI shall be used by the gNB to determine the transmit beam for subsequent PDSCH transmission." — TS 38.214 §5.2.1.3.1 (Release 17)
Worked Example 22.2 — Configuring NZP-CSI-RS for 64-Antenna Massive MIMO
Scenario: 64T64R antenna array (8 horizontal × 4 vertical × 2 polarisations), 3.5 GHz, TDD, 100 MHz bandwidth.
CSI-RS resource configuration (RRC):
- nrofPorts = 32 (maximum per NZP-CSI-RS-Resource)
- firstOFDMSymbolInTimeDomain = 4 (after PDCCH region)
- density = one (1 RE per PRB per port)
- periodicityAndOffset: slots80, offset 0 (80-slot periodicity at 30 kHz = 40 ms)
- resourceMapping: row4 (covers 4 consecutive OFDM symbols)
UE reports: CRI (which of 8 CSI-RS beams was strongest) + PMI (Type II, L=4 beams from within the best CRI beam group) + RI + CQI per layer per subband.
gNB action: Selects PDSCH precoding W = sum of L=4 DFT basis beams weighted by reported p_l coefficients, steered toward the CRI-reported beam direction. Applies W to all 32 TX ports. Expected SINR gain vs SSB-only precoding: +3 to +8 dB at cell edge.
§22.8 MIMO Configuration Parameters (TS 38.331)
MIMO operation is controlled by a set of RRC parameters that together define the codebook type, maximum layer count, CSI measurement resources, and PUCCH reporting configuration. The key parameters and their specification locations are:
Table 22.7 — Key MIMO RRC Parameters (TS 38.331 §6.3.2)
| Parameter | RRC IE Location | Values / Range | Effect |
|---|---|---|---|
| maxMIMO-Layers | PDSCH-ServingCellConfig | 1, 2, 4, 8 | Caps the RI the UE can report; limits max DL rank regardless of channel |
| maxMIMO-LayersDL | PhysicalCellGroupConfig | 1–8 | UE capability cap on DL MIMO layers per cell |
| codebookSubset | PUSCH-Config / CSI-ReportConfig | fullyAndPartialAndNonCoherent, partialAndNonCoherent, nonCoherent | Restricts UL codebook to UE coherence capability (TS 38.214 §6.1.1.2) |
| nrofPorts | NZP-CSI-RS-ResourceMapping | 1,2,4,8,12,16,24,32 | Number of CSI-RS ports; determines codebook dimension |
| csi-ReportConfig | CSI-MeasConfig | List of CSI-ReportConfig IEs | Defines what CSI quantities (RI, PMI, CQI, CRI, LI) to report and on which resource |
| reportQuantity | CSI-ReportConfig | cri-RI-PMI-CQI, cri-RI-i1, cri-RSRP, ssb-Index-RSRP, … | Selects the CSI feedback type: full codebook or beam-management only |
| numberOfBeams | CodebookConfig → Type2 | 2, 3, 4 | Number of linear combination beams L for Type II codebook |
| tpmi | DCI format 0_1 field | TPMI index per TS 38.214 §6.1.1.2 | Signals UL codebook precoding matrix to UE for codebook-based UL MIMO |
Worked Example 22.3 — Enabling Type II Codebook with 32-Port CSI-RS
Configuration objective: Enable Type II PMI reporting with L=4 beams on a 32-port CSI-RS resource for 4-layer DL MIMO in a dense urban macro cell.
Step 1 — CSI-RS resource: Configure NZP-CSI-RS with nrofPorts=32, density=one, periodicityAndOffset=slots40.
Step 2 — CSI report config: Set reportQuantity = cri-RI-PMI-CQI; set codebookConfig.type2.numberOfBeams = 4; set codebookConfig.type2.phaseAlphabetSize = 8 (3-bit phase).
Step 3 — PUCCH capacity check: Type II with L=4, rank-2: payload ≈ 2 layers × 2 polarisations × 4 beams × (1 bit amplitude + 3 bits phase) = 64 bits per subband. Ensure PUCCH format 2/3 is configured with sufficient PUCCH resources (bitWidth ≥ 64 per UCI report).
Step 4 — Max rank cap: Set maxMIMO-Layers = 4 in PDSCH-ServingCellConfig.
Expected outcome: Average DL rank increases from 1.8 (Type I baseline) to 2.6–3.1 in rich-scattering sectors. DL throughput gain: +15–22%.
§22.9 TS 28.552 MIMO KPIs — L.RankDist.DL and Average Rank
TS 28.552 defines PM counters specifically for MIMO layer distribution monitoring. The counter family L.RankDist.DL.{1..8} counts the number of PDSCH TTIs (or PRB-slots in newer counter definitions) scheduled at each rank value. These counters are the primary tool for assessing MIMO utilisation in a live network.
Eq 22.7 — Average DL Rank from TS 28.552 Counters
RIavg = ∑ν=18 [ν × L.RankDist.DL.ν] / ∑ν=18 L.RankDist.DL.ν
High-Rank Ratio (HRR): fraction of transmissions at rank ≥ 4
HRR = (L.RankDist.DL.4 + L.RankDist.DL.5 + L.RankDist.DL.6 + L.RankDist.DL.7 + L.RankDist.DL.8) / ∑ν=18 L.RankDist.DL.ν
Worked Example 22.4 — Computing Average DL Rank from Counter Data
Counter snapshot (1 hour, dense urban sector):
| Counter | Value | Counter | Value |
|---|---|---|---|
| L.RankDist.DL.1 | 42,000 | L.RankDist.DL.5 | 3,200 |
| L.RankDist.DL.2 | 35,000 | L.RankDist.DL.6 | 1,400 |
| L.RankDist.DL.3 | 18,000 | L.RankDist.DL.7 | 400 |
| L.RankDist.DL.4 | 12,500 | L.RankDist.DL.8 | 100 |
Total TTIs: 42,000 + 35,000 + 18,000 + 12,500 + 3,200 + 1,400 + 400 + 100 = 112,600
Weighted sum: (1×42,000) + (2×35,000) + (3×18,000) + (4×12,500) + (5×3,200) + (6×1,400) + (7×400) + (8×100) = 42,000 + 70,000 + 54,000 + 50,000 + 16,000 + 8,400 + 2,800 + 800 = 244,000
RIavg = 244,000 / 112,600 = 2.17
HRR = (12,500 + 3,200 + 1,400 + 400 + 100) / 112,600 = 17,600 / 112,600 = 15.6%
Interpretation: Average rank of 2.17 indicates moderate spatial multiplexing gain. HRR of 15.6% is low — typical of suburban deployment with mixed LOS/NLOS. Investigate antenna tilt, cross-polarisation ratio, and UE capability distribution to improve RI distribution.
§22.10 MIMO Failure Modes and Optimisation
Understanding when MIMO fails to deliver expected gain requires distinguishing between fundamental channel limitations and configuration or hardware problems. The following failure modes are the most commonly encountered in live 5G deployments.
22.10.1 Low RI Despite Good SINR
Symptom: L.RankDist.DL.1 dominates (>60%) even when wideband SINR > 15 dB. The channel has high received power but is rank-deficient. Root causes:
- LOS geometry: Strong direct path creates one dominant eigenvalue. Rank-1 is physically correct. No optimisation action required — this is expected LOS behaviour.
- Antenna cross-polarisation coupling: If both polarisations at TX or RX are correlated (e.g., XPIC < 10 dB), the 2-polarisation degrees of freedom collapse into 1. Check antenna port calibration and cross-polarisation discrimination (XPD) values.
- maxMIMO-Layers capped at 1: RRC parameter restricting rank. Verify PDSCH-ServingCellConfig.maxMIMO-Layers value in RRC configuration dump.
- UE capability: UE category supports only 1RX. Verify via UECapabilityInformation and L.RankDist.DL split per UE category.
22.10.2 RI Stuck — Rank Unchanging Over Time
Symptom: L.RankDist.DL counter for one rank value is 99%+ of total for extended periods. Dynamic rank adaptation appears frozen. Root causes:
- CSI feedback loop broken: UE is not sending updated PMI/RI. Check PUCCH resource availability, SR failures (L.SR.Fail counter), and PUCCH BLER.
- RI restriction parameter: Some implementations have a per-sector RI override parameter that overrides UE-reported RI. Verify no vendor-specific restriction is active.
- CSI report periodicity too long: If CSI-RS periodicityAndOffset is set to 640 slots (320 ms at 30 kHz SCS), the RI updates only every 320 ms — appearing stuck in short PM intervals. Reduce to ≤40 slots for time-varying channels.
22.10.3 Type II Overhead Overloading PUCCH
Symptom: After enabling Type II codebook, PUCCH errors increase (L.PUCCH.DTX or L.UL.PUCCH.NACK counters rise). Some UEs revert to CQI-only reporting. Root causes:
- PUCCH format undersized: Type II PMI payload with L=4 beams can reach 64+ bits per subband. PUCCH format 1 (2 bits) or format 2 (small nrofSymbols) cannot carry this payload. Configure PUCCH format 3 or 4 with sufficient symbol allocation.
- PUCCH resource shortage: Multiple UEs attempting simultaneous Type II CSI reports exhaust PUCCH resources, causing DTX. Implement PUCCH resource prioritisation or stagger CSI report offsets.
- UE CSI capability mismatch: UE does not support Type II (capability bit csi-ReportFramework.typeII-PortSelectionRI-Restriction absent). Check UECapabilityInformation before enabling Type II for a UE group.
"The rank indicator (RI) shall be jointly determined with the PMI and CQI such that the combination of RI, PMI, and CQI maximises the expected transport block size that can be transmitted with a PDSCH block error rate not exceeding 0.1 at the UE." — TS 38.214 §5.2.1.4.2 (Release 17)
Table 22.8 — MIMO Failure Mode Diagnostic Summary
| Failure Mode | Counter Signature | Root Cause | Remediation Parameter |
|---|---|---|---|
| Low RI despite high SINR | L.RankDist.DL.1 > 60%, L.Thrp.bits.DL low vs theoretical peak | LOS geometry, XPD < 10 dB, maxMIMO-Layers=1 | Verify antenna XPD; increase maxMIMO-Layers; check UE capability distribution |
| RI stuck at fixed value | One L.RankDist.DL.ν dominates >99% for hours | PUCCH failure, CSI period too long, vendor RI restriction | Reduce CSI-RS periodicityAndOffset; fix PUCCH; disable RI restriction |
| Type II overhead overload | L.PUCCH.DTX rises after Type II activation; UEs revert to CRI-only | PUCCH format too small, resource shortage, UE capability mismatch | Configure PUCCH format 3/4; stagger CSI offsets; filter UEs by Type II capability |
| Rank drops at cell edge | RIavg drops by >0.5 layers in sectors with coverage issues | Low SINR limits supportable eigenvalues; interference dominates weaker singular values | Improve coverage (tilt, power); consider SU-MIMO over MU-MIMO at edge; activate HARQ diversity |
| MU-MIMO interference floor | L.Thrp.bits.DL below expectation despite high RIavg | Inter-user interference in MU-MIMO pairing; PMI mismatch between paired UEs | Review MU-MIMO pairing algorithm; enforce minimum PMI orthogonality threshold; reduce MU pairing at low SINR |
Chapter 22 Summary
- Spatial multiplexing capacity follows C = B × Σ log₂(1 + SINRi) with per-layer SINR determined by channel singular values. Rank is limited by eigenvalue spread, not received power alone.
- Type I Single-Panel codebook uses a two-stage W = W1×W2 structure: wideband beam group selection (W1) plus subband beam and co-phase selection (W2). Supports up to 8 layers with low PUCCH overhead.
- Type II codebook linearly combines L ∈ {2,3,4} DFT beams with complex coefficients per subband per layer, yielding +10–25% SE improvement over Type I in urban NLOS at the cost of significantly higher PUCCH payload (up to 64+ bits per subband).
- RI reporting selects rank as argmax of per-rank capacity estimate. RI is a channel matrix property — high SINR in LOS does not imply high RI. CSI reports must be refreshed within the channel coherence time.
- DL peak throughput scales linearly with rank: 4-layer 100 MHz 64QAM yields ~940 Mbps; 4-layer 256QAM approaches 1.25 Gbps. Overhead fraction (~14%) and TDD DL fraction jointly reduce achievable rate from the Shannon bound.
- TDD reciprocity enables gNB to derive precoding matrix W from SRS measurements without UE codebook feedback. SRS periodicity must be shorter than Tcoh. Non-codebook UL MIMO uses SRI/TPMI in DCI format 0_1.
- Massive MIMO beam management proceeds P-1 (SSB coarse) → P-2 (NZP-CSI-RS fine) → P-3 (BFR recovery). Up to 32-port CSI-RS resources with Type II feedback enable precise per-subband beam shaping for dense urban macro cells.
- Key RRC parameters: maxMIMO-Layers caps rank; codebookSubset restricts UL codebook; nrofPorts sets CSI-RS dimension; reportQuantity selects CSI feedback type; numberOfBeams configures Type II beam count L.
- TS 28.552 KPIs: L.RankDist.DL.{1..8} enables RIavg and high-rank ratio computation. RIavg is the primary MIMO utilisation metric; HRR quantifies exploitation of high spatial degrees of freedom.
- Failure modes include low-RI LOS lock, RI-stuck from PUCCH failure, Type II overhead overloading PUCCH, cell-edge rank collapse, and MU-MIMO interference floor — each with distinct counter signatures and targeted remediation parameters.
Review Questions
- A UE reports RI=1 with wideband SINR = 22 dB in a rooftop LOS path. Explain why this is physically correct and what counter evidence would confirm that the channel is rank-deficient rather than a configuration problem.
- Derive the PMI overhead in bits per subband for a Type II codebook with L=3 beams, rank-2, 8-phase alphabet per polarisation, dual-polarisation antenna. Compare with Type I rank-2 overhead.
- A sector shows L.RankDist.DL.1 = 55,000, L.RankDist.DL.2 = 30,000, L.RankDist.DL.3 = 10,000, L.RankDist.DL.4 = 5,000, all others ≤ 500. Calculate RIavg and HRR. What does the distribution suggest about the deployment environment?
- Explain the role of ZP-CSI-RS in a multi-cell MIMO deployment. Why would enabling ZP-CSI-RS muting improve CSI accuracy in a high-interference sector?
- After enabling Type II codebook on a sector, L.PUCCH.DTX increases by 40%. Describe the diagnostic steps to identify whether the root cause is PUCCH resource exhaustion, format misconfiguration, or UE capability mismatch.
Carrier Aggregation and Bandwidth Part (BWP)
Aggregated throughput architecture, SCell activation/deactivation MAC CE mechanics, bandwidth part switching via DCI/RRC/inactivity timer, aggregated peak throughput derivation, CA measurement events A4/A6, TS 28.552 CA and BWP KPIs, and failure mode diagnosis — all derived from TS 38.331 §6.3, TS 38.214 §5.1, TS 38.213 §12, and TS 28.552 with worked examples and eight reference tables
3GPP TS 38.331 §6.3 · TS 38.214 §5.1 · TS 38.213 §12 · TS 28.552 §5.1.1Chapter Learning Objectives
After completing this chapter, you will be able to:
- Distinguish between intra-band contiguous, intra-band non-contiguous, and inter-band carrier aggregation and enumerate the 3GPP constraints on each type
- Trace the RRC signalling hierarchy from SpCellConfig through ServingCellConfig and SCell-ToAddModList to physical layer scheduling
- Explain the MAC CE mechanism for SCell activation and deactivation, including the C-RNTI CE format and the scellDeactivationTimer
- Derive aggregated CA throughput from per-CC TBS, BLER, slot duration, and PRB utilisation, and compute the 2CC 100+100 MHz NR peak
- Describe the BWP concept, enumerate the four configurable BWPs per serving cell, and explain how bwp-InactivityTimer triggers narrow BWP fallback
- Identify the three primary BWP use cases: power saving, coverage extension, and numerology coexistence
- Decode the bandwidth part indicator field in DCI format 1_1/0_1 and map it to the active BWP
- Explain the A4 and A6 measurement events used for SCell management and the dual-threshold activation policy
- Interpret TS 28.552 counters L.CA.SCell.Active.Ratio, L.BWP.Active.Width.DL, L.Thrp.bits.DL.PCell, and L.Thrp.bits.DL.SCell
- Diagnose SCell-not-activating, BWP-stuck-narrow, inter-band CA interference, and SCell CQI mismatch failure modes from counter signatures
§23.1 Introduction to Carrier Aggregation — Types, Topology, and Maximum Configuration
Carrier Aggregation (CA) is the 5G NR mechanism by which a UE simultaneously receives (and optionally transmits) on multiple frequency carriers — called component carriers (CCs) — to achieve throughput beyond what any single carrier can deliver. Each CC occupies its own contiguous channel bandwidth on the RF spectrum; the MAC and PDCP layers aggregate their contributions transparently to higher layers.
3GPP Release 17 extended the maximum number of simultaneously aggregated downlink CCs to 16, up from 5 in LTE. In practice, commercial NR deployments most commonly use 2- or 3-CC aggregation due to UE capability constraints, spectrum fragmentation, and the marginal diminishing returns of adding further CCs at high utilisation.
The serving cell hierarchy distinguishes between a Primary Cell (PCell) — the mandatory anchor cell that handles RRC signalling, security context, and PUCCH resources — and one or more Secondary Cells (SCells) that are dynamically activated or deactivated depending on traffic demand and radio conditions. In dual-connectivity (EN-DC or NR-DC), the primary group is further refined into Primary SCG Cell (PSCell).
| CA Type | Description | Frequency Relationship | Typical Use Case | Guard Band Required |
|---|---|---|---|---|
| Intra-band contiguous | CCs adjacent in frequency within same band | Same band, no spectral gap | n78 100+100 MHz | No (single wideband filter) |
| Intra-band non-contiguous | CCs in same band but separated by spectrum gap | Same band, gap between CCs | Fragmented mid-band spectrum | Yes (dual-pass filter) |
| Inter-band | CCs on different frequency bands | Different bands (e.g., n78 + n257) | Sub-6 GHz + mmWave | Separate RF chains per band |
| Parameter | Value | Spec Reference |
|---|---|---|
| Max DL CCs (Rel-17) | 16 | TS 38.331 §6.3.2 (ServingCellConfigCommon) |
| Max UL CCs (Rel-17) | 16 | TS 38.331 §6.3.2 |
| Max DL CC bandwidth | 400 MHz (FR2) | TS 38.101-2 §5.3 |
| Max DL CC bandwidth | 100 MHz (FR1) | TS 38.101-1 §5.3 |
| PCell (SpCell) | Always 1, mandatory | TS 38.331 §6.3.2 SpCellConfig |
| SCell count | Up to 15 (Rel-17) | TS 38.331 §6.3.2 SCell-ToAddModList |
| SCG PSCell | 1 per SCG (DC only) | TS 38.331 §6.3.2 SpCellConfig-SCG |
§23.2 CA Architecture — RRC Signalling Hierarchy (TS 38.331)
The RRC layer governs all CA configuration through a hierarchical signalling structure rooted at the RRCReconfiguration message. At the top level, SpCellConfig configures the PCell (primary cell), while the list element SCell-ToAddModList carries the configuration of each secondary cell independently. Each entry in this list contains a ServingCellConfig IE that defines physical layer parameters for the individual CC: channel bandwidth, SSB configuration, CSI measurement resources, PUCCH-SCell parameters, and BWP configuration.
"The RRCReconfiguration message may include the field secondaryCellGroup which provides the configuration of the SCG (Secondary Cell Group). The field spCellConfig within the Cell Group Config provides the configuration of the SpCell (i.e. PCell for MCG or PSCell for SCG). The SCell-ToAddModList provides the list of SCells to be added or modified." — TS 38.331 §5.3.5.4 (Release 17)
SCell addition does not imply immediate SCell activation. The gNB adds an SCell by transmitting RRCReconfiguration with the new SCell entry in SCell-ToAddModList, but the SCell remains in the deactivated state until the gNB MAC layer transmits a specific activation MAC CE. This separation allows the network to pre-configure the UE's physical layer for an SCell (loading CSI-RS config, BWP, measurement gaps) while deferring the scheduling overhead until actual traffic demand justifies activation.
| RRC IE | Parent Structure | Purpose |
|---|---|---|
SpCellConfig | CellGroupConfig | PCell/PSCell configuration: reconfigWithSync, rlf-TimersAndConstants, spCellConfigDedicated |
SCell-ToAddModList | CellGroupConfig | List of SCells with sCellIndex (1–31), ServingCellConfigCommon, ServingCellConfig |
ServingCellConfig | SCell-ToAddMod | Per-CC: downlinkBWP-ToAddModList, csi-MeasConfig, pdsch-ServingCellConfig, initialDownlinkBWP |
downlinkBWP-ToAddModList | ServingCellConfig | Up to 4 DL BWPs per CC: BWP-Id, BWP-Downlink (generic + dedicated) |
uplinkBWP-ToAddModList | ServingCellConfig | Up to 4 UL BWPs per CC: BWP-Id, BWP-Uplink (generic + dedicated) |
bwp-InactivityTimer | BWP-DownlinkDedicated | Timer (ms) triggering return to initialDownlinkBWP on DL inactivity |
scellDeactivationTimer | SCell-ToAddMod | Timer (ms) triggering SCell MAC CE deactivation after DL inactivity on SCell |
§23.3 SCell Activation and Deactivation — MAC CE Mechanics and Timers
SCell activation and deactivation are controlled exclusively by the gNB MAC layer using the SCell Activation/Deactivation MAC CE. This CE is identified by LCID value 0x1B (decimal 27) in the MAC subheader when carried in a DL-SCH MAC PDU addressed to the UE's C-RNTI. The CE body is a single octet (or multiple octets for more than 7 SCells) where each bit position corresponds to an SCell index: bit value 1 = activate, bit value 0 = deactivate.
"An SCell Activation/Deactivation MAC CE consists of a single octet or multiple octets. The SCell Activation/Deactivation MAC CE with LCID as specified in Table 6.2.1-2 indicates activation or deactivation of SCells. Each bit field C_i indicates whether SCell with SCellIndex i is activated (C_i = 1) or deactivated (C_i = 0)." — TS 38.321 §6.1.3.8 (Release 17)
After the UE receives the activation MAC CE, there is a mandatory activation delay before the SCell can be scheduled. Per TS 38.213 §4.3, the UE shall be ready to receive PDSCH on the activated SCell after a delay of max(3 ms, 3 × subcarrier spacing period). For 30 kHz SCS (typical n78 configuration) this equates to 3 ms = 3 slots. For 15 kHz SCS on n41 this is also 3 ms = 3 slots. This delay accounts for AGC settling, RF chain stabilisation, and CSI-RS acquisition.
The scellDeactivationTimer is a per-SCell inactivity timer configured in the RRC SCell-ToAddMod IE. Legal values (from TS 38.331 enumeration) are: ms20, ms40, ms80, ms200, ms400, ms800, ms1600, and infinity. The timer starts (or restarts) each time the UE detects PDCCH activity on the SCell. If no PDCCH is detected within the timer window, the UE autonomously deactivates the SCell without requiring a MAC CE from the gNB, reducing the MAC CE overhead for cells that naturally become idle.
Worked Example 23.1 — scellDeactivationTimer Expiry Sequence
Scenario: SCell (SCC-1, n78, 100 MHz) is active. gNB stops scheduling on SCC-1 at t = 0. scellDeactivationTimer = ms200.
- t = 0 ms: Last PDCCH detected on SCC-1 by UE. Timer starts counting 200 ms.
- t = 50 ms: gNB transmits PDCCH on PCell for PCell data only. SCC-1 timer continues (no SCell PDCCH).
- t = 200 ms: scellDeactivationTimer expires. UE autonomously deactivates SCC-1 — stops CQI reporting, stops PDCCH monitoring, RF may power-gate.
- t = 220 ms: Traffic burst arrives. gNB detects SCC-1 not active (no CQI feedback). gNB transmits SCell Activation MAC CE (LCID 0x1B, C_1=1).
- t = 223 ms: UE receives MAC CE. Activation delay = 3 ms (30 kHz SCS).
- t = 226 ms: SCC-1 active again. First PDSCH allocation possible. Total gap = 226 − 200 = 26 ms dead time.
Key counters to monitor: L.CA.SCell.ActivationDelay (avg ms), L.CA.SCell.DeactTimer.Expiry.Count
§23.4 Aggregated Throughput — Mathematical Derivation and Peak Calculations
The total aggregated downlink throughput across N component carriers is the sum of the individual CC contributions. Each CC contributes independently based on its own scheduling state, MCS, and error rate. The general expression is:
Eq 23.1 — Aggregated CA Throughput (general)
TPtotal = ∑k=1N [ TBSk × (1 − BLERk) / Tslot ] [bit/s]
where TBSk is the transport block size in bits for CC k (from TS 38.214 Table 5.1.3.2-1/2), BLERk is the block error rate on CC k (target: 0.1 for first transmission), and Tslot is the slot duration (0.5 ms for 30 kHz SCS, 1.0 ms for 15 kHz SCS).
At peak efficiency — 100% PRB utilisation, MCS 28 (256-QAM, code rate 948/1024), rank-4 PDSCH, and BLER → 0 — the per-CC throughput for 100 MHz with 30 kHz SCS can be derived from the TS 38.214 TBS table as follows:
Eq 23.2 — Peak TBS per slot (100 MHz, 30 kHz SCS, 4-layer, MCS 28)
NPRB = 66 (100 MHz, 30 kHz, normal CP) Nsym = 12 (DL-heavy TDD)
NRE per PRB = 12 subcarriers × 12 OFDM symbols = 144 (after DMRS overhead ~18 RE)
NRE,data per PRB ≈ 126 (DMRS + overhead subtracted)
NRE,total = 66 × 126 = 8,316 RE
Ninfo = 8,316 × 8 (256-QAM) × 948/1024 × 4 (layers) ≈ 247,570 bits
TBS ≈ 246,784 bits (quantised, from TS 38.214 §5.1.3.2 table)
Per-CC TPpeak = 246,784 / 0.5 × 10−3 ≈ 493 Mbit/s
Eq 23.3 — 2CC Aggregated Peak (100+100 MHz, both FR1 n78, 30 kHz SCS)
TP2CC = 2 × 493 Mbit/s = ~986 Mbit/s (DL)
Note: Theoretical peaks assuming ideal propagation, 4-layer rank, 100% PRB utilisation, BLER=0. Real deployments typically achieve 40-70% of this value. Adding a third 100 MHz CC brings the ceiling to ~1.5 Gbit/s DL.
Worked Example 23.2 — 2CC CA Throughput Budget at Real Operating Point
Network configuration: PCell = n78 100 MHz, 30 kHz SCS; SCell = n78 100 MHz, 30 kHz SCS. TDD pattern: DDDSU. UE MIMO rank: 2. Average MCS: 22 (64-QAM, CR ~0.67). PRB utilisation: PCell 80%, SCell 70%. Target BLER = 10%.
Step 1 — PCell TBS per slot (rank 2, MCS 22, 80% PRB)
- NPRB,active = 66 × 0.80 ≈ 53 PRBs
- NRE,data ≈ 53 × 126 = 6,678 RE
- Ninfo = 6,678 × 6 (64-QAM) × 0.67 × 2 (layers) ≈ 53,658 bits
- TBS ≈ 53,664 bits (quantised)
- PCell TP = 53,664 × (1 − 0.10) / 0.5 ms = 96.6 Mbit/s
Step 2 — SCell TBS per slot (rank 2, MCS 22, 70% PRB)
- NPRB,active = 66 × 0.70 ≈ 46 PRBs
- TBS ≈ 46,592 bits
- SCell TP = 46,592 × 0.90 / 0.5 ms = 83.9 Mbit/s
Result: TPtotal = 96.6 + 83.9 = 180.5 Mbit/s — well below the 986 Mbit/s theoretical peak, confirming that real CA gain is limited by rank, utilisation, and channel quality rather than spectrum alone.
§23.5 Bandwidth Part — Concept, Configuration, and Inactivity Timer
A Bandwidth Part (BWP) is a contiguous subset of the total channel bandwidth of a serving cell, identified by a starting common resource block (CRB) and a number of consecutive resource blocks. The BWP concept decouples the UE's operating bandwidth from the cell's total bandwidth, enabling power-efficient operation at reduced bandwidth during low-activity periods without reconfiguring the full CC.
Each serving cell can have up to 4 configured DL BWPs and 4 configured UL BWPs. At any time, only one DL BWP and one UL BWP are active on a given CC. BWPs are identified by a BWP-Id from 0 to 3 (4 BWPs × 4 possible IDs). BWP ID 0 is reserved for the Initial BWP — the BWP used before dedicated configuration, matching the CORESET#0 bandwidth.
"A UE shall be configured with at least the initial downlink bandwidth part. The UE is not expected to be configured with more than 4 BWPs (including the initial BWP) per serving cell for downlink or uplink." — TS 38.331 §6.3.2 (ServingCellConfig, BWP configuration, Release 17)
BWP switching can be triggered by three mechanisms:
- DCI-triggered switching: A 2-bit bandwidth part indicator field in DCI format 1_1 (DL) or 0_1 (UL) signals the target BWP ID. Switching latency is 1 slot (DCI-triggered per TS 38.213 §12.1).
- RRC-configured switching: gNB sends RRCReconfiguration with
firstActiveDownlinkBWP-Idset to the desired BWP. Latency is RRC round-trip (~50–100 ms). - Timer-triggered switching: The
bwp-InactivityTimertriggers a return todefaultDownlinkBWP-Idafter DL inactivity (no PDCCH detected within the timer window).
Eq 23.4 — BWP Resource Block Range Definition (TS 38.211 §4.4.5)
BWPi: start CRB = NBWP,start(i), size = NBWP,size(i) [PRBs]
where NBWP,start(i) ≥ 0 and NBWP,start(i) + NBWP,size(i) ≤ Ngrid,sizeμ
Ngrid,sizeμ is the total number of RBs in the carrier for numerology μ (e.g., 66 for 100 MHz / 30 kHz SCS).
§23.6 BWP Use Cases — Power Saving, Coverage, and Numerology Coexistence
The BWP design solves three distinct operational challenges that a single fixed-bandwidth approach cannot address efficiently:
Power Saving: A UE in a low-traffic state can be configured to operate on a narrow BWP (e.g., BWP 0 at 20 MHz) while monitoring only a small CORESET for scheduling grants. The reduced bandwidth lowers the UE's RF receiver power consumption by 30–50% compared to monitoring a full 100 MHz carrier. The bwp-InactivityTimer automates this transition: when the DL becomes idle for the configured duration, the UE reverts to defaultDownlinkBWP-Id, which is typically set to the narrowest BWP. When a new PDCCH allocation arrives on the wide BWP, a 1-slot DCI-triggered switch restores full bandwidth.
Coverage Extension: At cell edge, a UE operating on a narrower BWP concentrates power on fewer subcarriers, improving effective SINR per subcarrier for the same total radiated power. A dedicated coverage BWP may use a wider numerology (larger subcarrier spacing) to improve Doppler tolerance, or a narrower numerology for better coverage via longer OFDM symbols.
Numerology Coexistence: Different BWPs on the same CC can use different subcarrier spacings (μ = 0 for 15 kHz, μ = 1 for 30 kHz). This enables a single cell to serve both eMBB UEs (BWP with 30 kHz SCS, 100 MHz) and URLLC/IoT UEs (BWP with 15 kHz SCS, 20 MHz) on the same carrier without inter-numerology interference, since each UE only monitors its active BWP's CORESET.
| Use Case | Typical BWP Width | Subcarrier Spacing | Trigger | Power Impact |
|---|---|---|---|---|
| Idle-like power saving | 5–20 MHz | 15 kHz (μ=0) | bwp-InactivityTimer | 30–50% reduction |
| Peak eMBB throughput | 100 MHz (FR1) | 30 kHz (μ=1) | DCI format 1_1 | Maximum Tx/Rx power |
| Cell-edge coverage | 20–40 MHz | 15 kHz (μ=0) | RRC (A3/A4 triggered) | Slight reduction |
| RedCap/IoT devices | 5–20 MHz (max 20 MHz) | 15 or 30 kHz | RRC (static) | Mandatory cap per spec |
| URLLC low-latency | Full CC | 60 kHz (μ=2, FR1) | DCI format 1_1 | Higher processing load |
§23.7 BWP Switching — DCI Bandwidth Part Indicator and Switching Latency
DCI-triggered BWP switching is the primary fast-path mechanism. DCI format 1_1 (used for scheduled DL PDSCH) and DCI format 0_1 (scheduled UL PUSCH) both carry a bandwidth part indicator field of 2 bits when more than one BWP is configured. The 2-bit value indexes directly into the list of configured BWPs for the CC:
Eq 23.5 — DCI Bandwidth Part Indicator Encoding (TS 38.213 §12.1)
Bandwidth part indicator = n ∈ {0, 1, 2, 3} → selects BWP-Id (n+1)
Example: If 3 BWPs configured (IDs 1, 2, 3), indicator value 0 → BWP 1, value 1 → BWP 2, value 2 → BWP 3. Note: BWP ID 0 (initial BWP) is not selected via DCI — it is a fallback target only.
The switching latency for DCI-triggered BWP switching is defined in TS 38.213 §12.1 as:
Eq 23.6 — BWP Switching Latency (DCI-triggered, TS 38.213 §12.1)
Tswitch = 1 slot (DCI-triggered, normal operation)
Tswitch = max(3 ms, 1 slot) when the new BWP changes numerology μ
The additional 3 ms applies when switching from a BWP with SCS 15 kHz to one with SCS 30 kHz (or vice versa), to allow AGC and OFDM symbol boundary resynchronisation.
Worked Example 23.3 — BWP Inactivity Timer Configuration for Power Saving
Scenario: A gNB serves a mix of smartphone UEs on n78 100 MHz. Average DL activity ratio = 30% (UE has PDCCH-monitored slots 30% of the time). Target: reduce UE battery drain during idle periods. bwp-InactivityTimer candidates: 20 ms, 40 ms, 100 ms.
Analysis:
- 20 ms: Aggressive fallback. Good for battery. But a 20 ms burst gap (e.g., HTTP request header) will trigger unnecessary BWP switch cycles, adding 1-slot overhead per re-activation. Risk: BWP thrashing.
- 40 ms: Balances battery saving with responsiveness. Covers typical TCP ACK round-trip time. Recommended for interactive web traffic.
- 100 ms: Conservative. Minimal BWP thrashing. Preferred for video streaming (long continuous bursts). Less power saving during shorter pauses.
Recommendation: Set bwp-InactivityTimer = 40 ms for interactive traffic profile. Measure L.BWP.Active.Width.DL distribution — if UE spends >60% of time on narrow BWP, the timer is working correctly. If <20%, the timer is too long.
§23.8 CA Measurement and Activation Policy — A4/A6 Events and Dual-Threshold Logic
SCell management (addition, activation, deactivation) is governed by the gNB scheduler policy. The 3GPP measurement framework provides two events specifically relevant to CA optimisation:
Event A4 (TS 38.331 §5.5.4.4): "Neighbour becomes better than threshold." In the CA context, this is used to detect when a candidate SCell frequency has RSRP/RSRQ above the minimum threshold required for productive scheduling. When a UE reports A4 on a potential SCell frequency, the gNB may decide to add or activate that SCell.
Event A6 (TS 38.331 §5.5.4.9): "Neighbour becomes better than SCell + offset." This is a CA-specific event introduced in Rel-10 and carried forward to NR. A6 fires when a neighbouring cell (on the same or different frequency) becomes significantly better than the current SCell, signalling that the SCell should be replaced by the better cell — an SCell handover.
Eq 23.7 — Event A4 Trigger Condition (TS 38.331 §5.5.4.4)
Mn + Ocn + Ofn − Hys > Thresh
where Mn = measurement of neighbour cell (RSRP or RSRQ), Ocn = cell-specific offset, Ofn = frequency-specific offset, Hys = hysteresis, Thresh = A4-threshold configured by gNB. Trigger fires when the inequality holds for a4-TimeToTrigger duration.
Eq 23.8 — Event A6 Trigger Condition (TS 38.331 §5.5.4.9)
Mn + Ocn − Hys > Ms + Ocs + Os
where Ms = measurement of current SCell, Ocs = SCell-specific offset, Os = A6-offset parameter. A6 fires when the neighbour exceeds the SCell by more than Os dB (plus offsets and hysteresis), triggering SCell replacement.
| Parameter | Event A4 | Event A6 | Typical Value |
|---|---|---|---|
| Trigger purpose | SCell addition/activation | SCell replacement | — |
| Measurement quantity | RSRP or RSRQ | RSRP or RSRQ | RSRP preferred |
| Threshold (a4-Threshold) | −110 to −90 dBm RSRP | N/A (relative) | −105 dBm RSRP |
| Offset (a6-Offset) | N/A | 3–6 dB above SCell | 6 dB |
| Hysteresis | 0–10 dB | 0–10 dB | 2 dB |
| Time-to-trigger | 40–640 ms | 40–640 ms | 160 ms |
§23.9 TS 28.552 CA and BWP KPIs — Counter Definitions and Computation
TS 28.552 defines the NR performance measurement counters used for CA and BWP monitoring. These counters are collected at the gNB (or disaggregated CU-DU) and reported via the O1/PM interface at configurable granularity periods (typically 15-minute or 1-hour ROP).
| Counter Name | Type | Unit | Definition |
|---|---|---|---|
L.CA.SCell.Active.Ratio |
Gauge / Mean | % | Fraction of DL scheduling opportunities where at least one SCell was active. High value = good CA utilisation. |
L.CA.SCell.ActivationDelay |
Mean | ms | Average time from SCell activation MAC CE to first PDSCH allocation on the SCell. Target: <5 ms. |
L.BWP.Active.Width.DL |
Mean | PRB or MHz | Average bandwidth of the active DL BWP per UE across all scheduling TTIs. Low value indicates frequent narrow-BWP operation. |
L.Thrp.bits.DL.PCell |
Cumulative | bits | Total PDSCH bits successfully delivered on the PCell during the ROP. Divide by ROP duration for average PCell TP. |
L.Thrp.bits.DL.SCell |
Cumulative | bits | Total PDSCH bits successfully delivered on all SCells during the ROP. |
L.CA.SCell.DeactTimer.Expiry |
Cumulative | count | Number of SCell timer-triggered autonomous deactivations during the ROP. High count may indicate aggressive timer settings or low SCell traffic. |
L.BWP.Switch.Count.DCI |
Cumulative | count | Number of DCI-triggered BWP switches during the ROP. Divide by active UE time to derive BWP switching rate. |
The SCell throughput contribution ratio is a derived KPI used to validate CA effectiveness:
Eq 23.9 — SCell Throughput Contribution Ratio
SCell TP Ratio = L.Thrp.bits.DL.SCell / (L.Thrp.bits.DL.PCell + L.Thrp.bits.DL.SCell) × 100 [%]
A healthy 2CC CA deployment should show SCell TP Ratio = 30–50%. Values <15% suggest SCell is active but underutilised (possible CQI mismatch or excessive deactivation). Values >60% would indicate PCell underperformance rather than SCell overperformance.
Worked Example 23.4 — CA KPI Diagnosis from Counter Values
Observed counter values (15-minute ROP):
- L.CA.SCell.Active.Ratio = 18% (expected: 60%+)
- L.CA.SCell.DeactTimer.Expiry = 8,240 (very high)
- L.CA.SCell.ActivationDelay = 4.2 ms (normal)
- L.Thrp.bits.DL.SCell = 1.2 × 109 bits (very low)
- L.BWP.Active.Width.DL = 19 MHz (stuck narrow)
Diagnosis:
- SCell.Active.Ratio = 18% with 8,240 timer expiries in 15 minutes (= 9.2 expiries/second) → scellDeactivationTimer is too short relative to traffic bursiness.
- BWP stuck at 19 MHz → UE spending most time in narrow BWP (power-saving), meaning bwp-InactivityTimer is also too short, preventing wide BWP during the brief CA active windows.
- SCell TP = 1.2 Gbits in 900s = 1.3 Mbit/s average — far below expected 80+ Mbit/s, confirming SCell is barely being used.
Remediation:
- Increase
scellDeactivationTimerfrom ms40 → ms200 to reduce timer churn. - Increase
bwp-InactivityTimerfrom 20 ms → 80 ms to hold wide BWP during burst gaps. - Re-check A4 threshold: if SCell RSRP at cell edge is borderline, lower A4 threshold by 3 dB.
- Re-measure after 24h. Target: SCell.Active.Ratio > 55%, SCell TP Ratio > 35%.
§23.10 CA/BWP Failure Modes — Root Cause and Remediation Reference
Four failure modes account for the majority of CA/BWP underperformance cases observed in live 5G networks.
| Failure Mode | Symptom (Counter Signature) | Root Cause | Remediation |
|---|---|---|---|
| SCell not activating | L.CA.SCell.Active.Ratio <10%; L.CA.SCell.ActivationFail high | SCell RSRP below A4 threshold; UE CA capability not detected; SCell misconfigured (wrong ARFCN/SSB index) | Lower A4 threshold; verify SCell ARFCN in RRCReconfiguration; check UE CA band combination capability |
| BWP stuck narrow | L.BWP.Active.Width.DL <25 MHz persistently; L.BWP.Switch.Count.DCI low | bwp-InactivityTimer too short; DCI format 1_1 not carrying BWP indicator; CORESET misconfigured on wide BWP | Increase bwp-InactivityTimer; verify CORESET configuration on wide BWP; check DCI indicator enable parameter |
| Inter-band CA interference | SCell BLER >15% persistently; SCell CQI drops when PCell transmitting | Inter-modulation distortion between PCell PA and SCell receiver (UE-side); harmonic interference between bands | Use CA band combinations with sufficient frequency separation; configure UE power backoff for CA; enable CA-IMD compensation |
| SCell CQI mismatch | SCell CQI high but SCell BLER >20%; retransmission rate elevated | SCell CQI reported on CSI-RS with different beamforming than actual PDSCH precoding; outdated CQI (long CQI period) | Reduce CQI reporting period for SCell; align CSI-RS precoding with PDSCH precoding; use aperiodic CSI trigger via DCI |
| Parameter | RRC IE Location | Range / Values | Tuning Guidance |
|---|---|---|---|
scellDeactivationTimer | SCell-ToAddMod | ms20–ms1600, infinity | ms200 for interactive traffic; ms800 for streaming; infinity for static SCell (testing) |
bwp-InactivityTimer | BWP-DownlinkDedicated | ms2–ms2560 | ms40–ms80 typical; ms20 for aggressive power saving; ms200 for throughput priority |
defaultDownlinkBWP-Id | ServingCellConfig | 0–3 | Set to narrow BWP (BWP 0 or 1) for power saving; set to wide BWP (BWP 1) for throughput priority |
a4-Threshold | ReportConfigNR | −156 to −31 dBm RSRP | −105 dBm typical; reduce by 3 dB at cell edge; increase by 3 dB to reduce premature SCell add |
a4-TimeToTrigger | ReportConfigNR | 0–5120 ms | 160 ms standard; 80 ms for fast SCell add; 320 ms to suppress transient triggers |
firstActiveDownlinkBWP-Id | ServingCellConfig | 0–3 | Sets BWP at handover/SCell add; set to wide BWP for immediate full-bandwidth access |
"The bandwidth part indicator field indicates the downlink or uplink bandwidth part to be used by the UE from the next slot. The UE shall apply the new bandwidth part from the first slot of the subframe following the slot containing the DCI." — TS 38.213 §12.1 (Release 17)
"If the active BWP of a serving cell is not the default BWP and the bwp-InactivityTimer associated with the active BWP expires, the UE shall start to use the default DL BWP indicated by defaultDownlinkBWP-Id." — TS 38.331 §5.2.6.1.6 (Release 17)
Chapter 23 Summary
- Carrier Aggregation combines up to 16 CCs (Rel-17) across intra-band contiguous, intra-band non-contiguous, and inter-band configurations. PCell is the mandatory anchor; SCells are dynamically activated by MAC CE (LCID 0x1B).
- SCell activation carries a 3 ms hardware delay (3 × Tslot for 30 kHz SCS) before PDSCH scheduling can begin. The
scellDeactivationTimerenables autonomous UE-side deactivation without MAC CE overhead when the SCell is idle. - Aggregated throughput is the sum of per-CC contributions: TPtotal = Σ [TBSk × (1−BLERk) / Tslot]. Real deployments achieve 40–70% of the theoretical peak due to rank, utilisation, and channel quality limitations.
- BWPs allow a UE to operate on a narrower frequency slice than the full CC bandwidth, enabling power saving (narrow BWP during inactivity) and numerology coexistence. Up to 4 BWPs per CC, switched in 1 slot via DCI format 1_1/0_1 bandwidth part indicator.
- A4 and A6 measurement events drive SCell addition and replacement. The dual-threshold policy (SCell CQI AND gNB load both above threshold) prevents premature or unproductive SCell activation.
- Key KPIs from TS 28.552: L.CA.SCell.Active.Ratio (target >55%), L.BWP.Active.Width.DL (track narrow vs wide distribution), SCell TP Ratio = L.Thrp.bits.DL.SCell / (PCell+SCell) (target 30–50%).
- Primary failure modes — SCell not activating, BWP stuck narrow, inter-band CA interference, SCell CQI mismatch — are each addressable through specific parameter adjustments guided by counter signatures.
UL Power Control and Throughput
Complete 3GPP uplink power control framework for 5G NR: PUSCH open-loop and closed-loop power control, fractional path loss compensation, P0 and target SINR setting, TPC commands and f(i) accumulation, UL link adaptation and OLLA, SRS power control, Power Headroom Report (PHR) MAC CE, TS 28.552 UL throughput KPIs, and Part V throughput optimisation checklist — derived from TS 38.213 §7, TS 38.214 §6, TS 28.552, and TS 38.321 with worked examples
3GPP TS 38.213 §7 · TS 38.214 §6.1 · TS 28.552 §5.1.1.3 · TS 38.321 §6.1.3 · TS 38.133Chapter Learning Objectives
After completing this chapter, you will be able to:
- State the complete PUSCH power control formula from TS 38.213 §7.1 and identify the contribution of each term to the transmit power budget
- Explain the fractional path loss compensation factor α and calculate the cell-edge interference trade-off for any given α value
- Derive P0_PUSCH for a target received power in an urban macro cell and validate against a worked numerical example
- Describe how TPC commands in DCI accumulate into the closed-loop correction term f(i) and explain the interaction with open-loop compensation
- Explain UL OLLA and its equivalence to DL OLLA in maintaining a target BLER under changing channel conditions
- Interpret the SRS power formula and explain why SRS quality directly affects DL precoding accuracy in TDD deployments
- Read a Power Headroom Report MAC CE, identify negative PHR UEs, and diagnose coverage-limited uplink scenarios
- Map TS 28.552 UL KPIs to the PUSCH power control parameters and construct a root-cause decision tree for low UL throughput
- Apply the 12-item Part V throughput optimisation checklist and cross-reference Chapters 20–24 for each corrective action
§24.1 Introduction — UL Power as the Dual Lever of Coverage and Interference
Uplink power control is one of the most consequential — and least visible — levers in 5G NR optimisation. Unlike downlink power, which is set by the gNB and transparent to the UE, uplink power is commanded by the network but physically produced by a battery-powered device operating under strict regulatory limits. Every dBm a cell-edge UE adds to its transmit power buys it uplink SINR and throughput, but simultaneously degrades the uplink SINR of every neighbouring cell receiving that interference. The parameter choices encoded in TS 38.213 §7 determine where that balance lands across the entire network.
The NR power control framework inherits the fractional path loss compensation philosophy first introduced in LTE TS 36.213, but extends it significantly: multiple power control parameter sets per UE (up to four PUSCH-Config power sets), multi-TRP operation with independent power scaling, and tighter integration with beam management. Despite these extensions, the core formula and its optimisation principles remain constant and fully normative.
This chapter covers the complete UL power framework from first principles:
- §24.2 — PUSCH power control formula: all five terms explained
- §24.3 — Fractional path loss compensation: the α trade-off
- §24.4 — P0_PUSCH and target SINR: setting the operating point
- §24.5 — TPC closed-loop correction: DCI commands and f(i) accumulation
- §24.6 — PUSCH link adaptation: UL CQI, MCS, and UL OLLA
- §24.7 — UL SINR and throughput: interference-limited regime
- §24.8 — SRS power control: formula and TDD implication
- §24.9 — TS 28.552 UL power and throughput KPIs
- §24.10 — Power Headroom Report: PHR MAC CE and coverage diagnosis
- §24.11 — Part V summary: 12-item throughput optimisation checklist
"The UE shall set the PUSCH transmission power for PUSCH in subframe or slot i of serving cell c to P_PUSCH,b,f,c(i,j,q_d,l) = min{P_CMAX,f,c(i), 10·log10(2^μ · M_RB,b,f,c^PUSCH(i,j)) + P_O_PUSCH,b,f,c(j) + α_{b,f,c}(j) · PL_{b,f,c}(q_d) + Δ_TF,b,f,c(i) + f_{b,f,c}(i,l)} [dBm]" — TS 38.213 §7.1 (Release 17)
§24.2 PUSCH Power Control Formula (TS 38.213 §7.1)
The PUSCH transmit power formula has five additive terms inside the min() with P_CMAX. Each term addresses a different aspect of the power budget. Understanding each term independently is prerequisite to understanding how a parameter change propagates through to UL throughput.
Term-by-Term Breakdown
| Term | Symbol | Unit | Description | Typical Range |
|---|---|---|---|---|
| Max power cap | P_CMAX | dBm | UE maximum configured transmit power (power class dependent). UE power class 3 = 23 dBm. Power class 1 (FR1 high-power UE) = 26 dBm. | 20–26 dBm |
| Bandwidth scaling | 10·log10(2^μ · M_PUSCH) | dB | PRB count allocated to PUSCH × numerology scaling (2^μ accounts for SCS: μ=0→15kHz, μ=1→30kHz, μ=2→60kHz). More PRBs → spread power over more subcarriers → reduce spectral density → network compensates by increasing P0. | 0–25 dB |
| Nominal target | P0_PUSCH(j) | dBm | Network-configured received power target per PRB. Signaled via RRC parameter p0-NominalWithoutGrant or p0-PUSCH-AlphaSet. j selects the active power control parameter set (up to 4 sets). | −126 to +24 dBm |
| Path loss compensation | α(j)·PL | dB | α ∈ {0,0.4,0.5,0.6,0.7,0.8,0.9,1.0} from RRC. PL is UE-estimated downlink path loss (from SSB or CSI-RS RSRP). α=1 = full compensation; α<1 = fractional (cell-edge UEs transmit less). | α: 0.7–1.0 typical |
| MCS offset | Δ_TF(i) | dB | Optional transport format delta. If enabled, higher MCS → slightly higher TX power. TS 38.213 §7.1 defines Δ_TF = 10·log10((2^(BPRE·K_s) − 1)) where K_s=1.25 if deltaMCS-Enabled=true, else 0. | 0 dB (disabled) |
| Closed-loop correction | f(i) | dB | Accumulated TPC commands from gNB. Adjusts for residual errors in open-loop estimate. Clamped to [−limitPuschTpcCommandsList, +limitPuschTpcCommandsList] range. | ±15 dB typical |
Example 24.1 — PUSCH Power Calculation for a Suburban UE
Given: UE power class 3 (P_CMAX = 23 dBm). Allocated M_PUSCH = 25 PRBs. SCS = 30 kHz (μ=1). P0_PUSCH = −104 dBm. α = 0.8. PL = 115 dB (SSB-based). Δ_TF disabled (=0). f(i) = +3 dB (accumulated TPC commands).
Step 1 — Bandwidth term: 10·log10(2^1 × 25) = 10·log10(50) = 17.0 dB
Step 2 — Path loss compensation: α·PL = 0.8 × 115 = 92 dB
Step 3 — Sum before min(): 17.0 + (−104) + 92 + 0 + 3 = 8.0 dBm
Step 4 — Apply P_CMAX: min(23, 8.0) = 8.0 dBm
Interpretation: UE has 15 dB of power headroom (PHR = 23 − 8 = +15 dB). Not coverage-limited. Positive PHR leaves headroom for additional allocated PRBs.
§24.3 Fractional Path Loss Compensation
The fractional path loss compensation factor α is the single most important uplink power control parameter. It controls the slope of the relationship between path loss and transmit power, and thereby the distribution of received power levels at the gNB across all UEs in the cell.
"The higher layer parameter alpha (α) is used to control the degree of path loss compensation for PUSCH. When alpha equals 1, the UE fully compensates for the path loss, such that all UEs contribute equal received power. When alpha is less than 1, UEs with larger path loss transmit at lower power than the fully-compensated value, thereby reducing inter-cell interference at the cost of reduced received SINR for cell-edge UEs." — TS 38.213 §7.1, Release 17 explanatory note
α Values Defined by 3GPP (TS 38.213 §7.1)
| α value | PL compensation | Cell-edge TX power vs α=1 | Inter-cell interference | Cell-edge UL SINR | Typical deployment |
|---|---|---|---|---|---|
| 1.0 | Full (100%) | Baseline | Highest | Equal to cell-centre | Isolated site, rural |
| 0.9 | 90% | −3 dB at PL=130 | High | −3 dB vs α=1 | Sub-urban macro |
| 0.8 | 80% | −6 dB at PL=130 | Moderate | −6 dB vs α=1 | Urban macro (typical) |
| 0.7 | 70% | −9 dB at PL=130 | Low | −9 dB vs α=1 | Dense urban, high load |
| 0.6 | 60% | −12 dB at PL=130 | Very low | Poor (MCS limited) | Not recommended (UL degraded) |
| 0.4–0.5 | 40–50% | >−15 dB | Minimal | Very poor | Experimental / IoT specialised |
The key trade-off: reducing α saves interference at the cost of cell-edge UL SINR. The optimal α exists at the intersection where the gains from reduced inter-cell interference match the losses from reduced signal level. Empirically this falls between α=0.7 and α=0.9 for most urban macro deployments, with α=0.8 as the most common 3GPP standard setting.
§24.4 P0_PUSCH and Target SINR
P0_PUSCH is the nominal received power target per PRB at the gNB. Combined with α, it defines the "operating point" of the open-loop power control: the received power the network expects from a UE at any given path loss. The relationship is:
For full compensation (α=1): P_received = P0_PUSCH regardless of path loss (flat received power). For α<1: cell-edge UEs deliver slightly less received power than cell-centre UEs — a deliberate trade-off. The gNB uses P0 to set the target SINR implicitly:
Where NF_gNB ≈ 5–7 dB (gNB noise figure) and Interference_margin ≈ 3–6 dB for typical urban deployments.
Example 24.2 — P0_PUSCH Setting for Urban Macro (Target UL SINR = 5 dB)
Target UL SINR: 5 dB (supports QPSK 1/2, sufficient for control-plane UEs at cell edge)
gNB parameters: NF = 6 dB, BW_PRB = 180 kHz (12 × 15 kHz), Interference margin = 4 dB
Thermal noise per PRB: −174 + 10·log10(180000) + 6 = −174 + 52.6 + 6 = −115.4 dBm
Required received signal: −115.4 + 5 + 4 (IM) = −106.4 dBm/PRB
Set P0_PUSCH = −106 dBm (rounded to nearest integer, valid range per TS 38.213)
Verification with α=0.8, nominal cell-edge PL=130 dB:
P_PUSCH = 10·log10(M_PUSCH) + (−106) + 0.8×130 = Bandwidth_term + (−106) + 104 = Bandwidth_term − 2 dBm
For M_PUSCH=1 PRB: P = 0 + (−2) = −2 dBm → well below P_CMAX=23 dBm (21 dB headroom). Good coverage margin.
| Deployment scenario | Target SINR | α | P0_PUSCH (typical) | Notes |
|---|---|---|---|---|
| Rural macro (isolated) | 10 dB | 1.0 | −96 dBm | High SINR target; no inter-cell issue |
| Sub-urban macro | 7 dB | 0.9 | −100 dBm | Moderate SINR, low ICI |
| Urban macro (typical) | 5 dB | 0.8 | −104 to −106 dBm | Standard 3GPP recommendation |
| Dense urban (high ICI) | 3 dB | 0.7 | −108 dBm | Sacrifice SINR for ICI reduction |
| Indoor small cell | 15 dB | 1.0 | −90 dBm | Low PL, no neighbours, high SINR |
§24.5 TPC Commands and Closed-Loop Correction f(i)
Open-loop power control using P0+α·PL relies on the accuracy of the UE's path loss estimate. In practice, fast fading, interference fluctuations, and UE measurement noise introduce residual errors of ±5–10 dB. The closed-loop correction term f(i) uses TPC (Transmit Power Control) commands sent by the gNB to drive the UE's transmit power toward the exact operating point.
"The UE shall update the PUSCH power control adjustment state according to: f_{b,f,c}(i,l) = f_{b,f,c}(i−1,l) + δ_PUSCH,b,f,c(i−K_PUSCH,l) for accumulation mode, where δ_PUSCH is derived from the TPC command field of DCI format 0_0, 0_1, 0_2, or 2_2." — TS 38.213 §7.1.1 (Release 17)
TPC Command Mapping (TS 38.213 Table 7.1.1-1)
| DCI TPC field value | δ_PUSCH (dB) | Accumulation effect | When used |
|---|---|---|---|
| 0 (binary 00) | −1 dB | f(i) decreases by 1 dB | UE transmitting too high |
| 1 (binary 01) | 0 dB | f(i) unchanged (hold) | UE at target power |
| 2 (binary 10) | +1 dB | f(i) increases by 1 dB | UE transmitting too low |
| 3 (binary 11) | +3 dB | f(i) increases by 3 dB | UE significantly below target |
The TPC command is delivered in the DCI scheduling the PUSCH. For DCI 0_1 (the primary UL DCI format), the TPC field is 2 bits giving the four values above. For DCI 2_2 (group TPC command), up to 12 UEs can receive simultaneous TPC corrections in a single PDCCH, reducing overhead.
Open-Loop vs Closed-Loop Coexistence
NR supports both modes simultaneously. The open-loop (P0+α·PL) establishes the initial power level for each transmission burst. The closed-loop f(i) then makes fine adjustments slot-by-slot. On the first PUSCH transmission after a gap (e.g., after DTX), f(i) is reset to 0 per TS 38.213 §7.1.1 (if configured) or maintained from the last value. The gNB implementation decides when to issue TPC commands — typically whenever PUSCH SINR deviates from target by more than 1–2 dB.
§24.6 PUSCH Link Adaptation: UL CQI, MCS, and UL OLLA
PUSCH link adaptation follows an equivalent pathway to PDSCH, but with the roles reversed: the gNB measures UL SINR from received PUSCH and selects the UL MCS for the next scheduled transmission. The UE has no involvement in MCS selection — the gNB encodes the MCS in DCI 0_0 or 0_1.
UL SINR Measurement and MCS Selection
The gNB estimates UL SINR from the PUSCH demodulation reference signal (DM-RS). The estimated SINR is mapped to a CQI-equivalent value and then converted to an MCS index via TS 38.214 Table 5.1.3.1-1 (same MCS table used for DL, mapped through shared CQI-to-SINR conversion). This inner-loop link adaptation targets a 10% BLER (first-transmission BLER).
"For PUSCH scheduled by DCI format 0_1, the UE shall use the MCS index field to determine the modulation order, target code rate, and transport block size as defined in Table 5.1.3.1-1, Table 5.1.3.1-2, or Table 5.1.3.1-3 of TS 38.214 as indicated by the higher layer parameter mcs-Table." — TS 38.214 §6.1.4 (Release 17)
UL OLLA (Outer-Loop Link Adaptation)
UL OLLA operates identically to DL OLLA (Chapter 21) but tracks PUSCH HARQ ACK/NACK. The gNB maintains a SINR offset δ_OLLA_UL per UE:
For BLER_target=0.1: Δ_down = Δ_up × (0.1/0.9) ≈ Δ_up/9. So one NACK is offset by 9 ACKs, maintaining long-run BLER at 10%.
UL HARQ
NR UL HARQ mirrors DL: 16 asynchronous HARQ processes. For UL, the NDI in DCI 0_0/0_1 toggles on new data. The gNB sends HARQ feedback implicitly by scheduling a retransmission (same process ID, NDI unchanged) or a new transmission. UL HARQ-ACK from the gNB perspective is generated by the LDPC decoder's CRC check on received PUSCH; no explicit ACK signaling to UE is required — the UE infers from whether it receives a retransmission grant.
| UL LA parameter | 3GPP reference | Typical value | Optimisation note |
|---|---|---|---|
| UL BLER target | TS 38.214 §6.1.4 (OLLA principle) | 10% | Raising to 15% increases average MCS but increases retransmissions |
| OLLA step up (Δ_up) | Implementation | 0.5 dB | Smaller step = slower convergence; larger = oscillation |
| OLLA bounds | Implementation | ±6 dB | Must clip to prevent unbounded drift for UEs in deep fade |
| MCS table | TS 38.214 Table 5.1.3.1-1/2/3 | Table 1 (64QAM) | Table 2 (256QAM) enabled where UL SNR supports it |
| HARQ processes UL | TS 38.212 §7.3.1.1 | 16 | Max per TS 38.211; fewer processes = shorter RTT tolerance |
§24.7 UL SINR and Throughput Analysis
UL throughput at the cell level is the sum of per-UE PUSCH throughput across all active users. For a single UE the relationship follows Shannon-bounded capacity, modelled in 3GPP through the discrete MCS→TBS→BLER chain:
Where T_slot = 0.5 ms at 30 kHz SCS and TBS_UL is determined by MCS and allocated PRBs per TS 38.214 Table 5.1.3.2-1. The cell UL throughput aggregates all scheduled UEs in each slot, bounded by the total PUSCH PRB allocation and TDD uplink symbol budget.
At low α (or low P0), P_received drops and the UE becomes noise-limited (UL SINR constrained by thermal noise — insufficient receive SNR). At high α (or high P0), I_inter increases as cell-edge UEs transmit at higher power, making the UE interference-limited. The cell-level optimum balances both regimes.
Example 24.3 — UL Throughput Impact of Changing α from 1.0 to 0.8
Scenario: Urban macro, 20 MHz, 30 kHz SCS. All UEs at cell edge (PL=125 dB). P0=−104 dBm.
With α=1.0: P_PUSCH = 10·log10(50 PRBs) + (−104) + 1.0×125 = 17 − 104 + 125 = 38 dBm → exceeds P_CMAX=23 dBm → UE limited to P_CMAX=23 dBm. Received = 23 − 125 = −102 dBm. I_inter from all neighbours at similar level → SINR ≈ 3 dB → MCS 4 (QPSK rate 0.37) → TBS = 336 bits/slot.
With α=0.8: P_PUSCH = 17 − 104 + 0.8×125 = 17 − 104 + 100 = 13 dBm. Well below P_CMAX. Received = 13 − 125 = −112 dBm. I_inter reduced by ~6 dB across all neighbours → SINR ≈ 7 dB → MCS 9 (16QAM rate 0.44) → TBS = 1032 bits/slot.
Result: α=0.8 delivers 3× higher TBS per slot at cell edge despite lower received power, because the interference reduction outweighs the signal reduction. This is the fundamental benefit of fractional power control.
§24.8 SRS Power Control (TS 38.213 §7.3)
The Sounding Reference Signal (SRS) uses a dedicated power control formula specified in TS 38.213 §7.3. SRS power is related to PUSCH power but has its own P0 offset and compensation parameters, allowing the network to adjust SRS power independently of data channel power.
Where M_SRS is the SRS bandwidth in PRBs and h(n_SRS) is the closed-loop SRS adjustment derived from the same DCI TPC mechanism or from dedicated SRS TPC in DCI 2_3. P_O_SRS is signaled independently via RRC parameter p0-alpha in SRS-PowerControl IE.
"The UE shall set the SRS transmission power P_SRS,b,f,c(i,q_s,l) = min{P_CMAX,f,c(i), P_{O_SRS,b,f,c}(q_s) + α_{SRS,b,f,c}(q_s)·PL_{b,f,c}(q_d) + 10·log10(2^μ·M_{SRS,b}(i)) + h_{b,f,c}(i,l)} [dBm]" — TS 38.213 §7.3.1 (Release 17)
SRS Quality and TDD DL Precoding
In TDD operation, the gNB exploits channel reciprocity: the DL channel is estimated from UL SRS measurements, and the resulting channel matrix is used to compute DL precoder weights for MU-MIMO and beamforming. If SRS power is too low → noisy channel estimate → poor precoder accuracy → DL MU-MIMO interference → degraded DL throughput. This creates a direct link between UL SRS power tuning and DL throughput performance in TDD systems — a cross-domain dependency often missed in optimisation workflows.
| SRS parameter | RRC IE | TS 38.213 ref | Optimisation guidance |
|---|---|---|---|
| P0_SRS | p0-alpha (SRS-PowerControl) | §7.3.1 | Set to achieve SRS SNR ≥ 10 dB at gNB for reliable channel estimation |
| α_SRS | alpha (SRS-PowerControl) | §7.3.1 | Same values as PUSCH α; typically set equal to PUSCH α |
| SRS-TPC-PDCCH-Config | srs-TPC-PDCCH-Config | §7.3.2 | Group TPC via DCI 2_3 allows mass SRS power update in one PDCCH |
| SRS periodicity | periodicityAndOffset | TS 38.214 §6.2.1 | Shorter period = fresher channel estimate = better MU-MIMO; trades with overhead |
§24.9 TS 28.552 UL Power and Throughput KPIs
TS 28.552 §5.1.1.3 defines the normative PM counters for UL throughput and power characterisation. These counters are mandatory for all 5G NR gNB implementations and provide the primary observability into PUSCH power control performance.
| Counter name | TS 28.552 ref | Definition | Unit | Optimisation use |
|---|---|---|---|---|
| L.Thrp.bits.UL | §5.1.1.3.3 | Total UL throughput bits successfully delivered (PDCP SDU bits). Aggregated over measurement period. | bits | Cell UL capacity baseline; compare against DL ratio for TDD config validation |
| L.Thrp.bits.UL.LastTTI | §5.1.1.3.4 | UL throughput in the last scheduled TTI (slot). Captures instantaneous peak rather than average. | bits/slot | Peak MCS validation; verify 256QAM capable UEs reach expected peak |
| L.UL.BLER | §5.1.1.8.5 | UL initial transmission BLER = (PUSCH NACKs) / (total PUSCH first transmissions). Should be ~10% with OLLA active. | % | OLLA tuning; if >20% → MCS too aggressive or power too low; if <5% → MCS too conservative |
| L.UL.HARQ.AckRatio | §5.1.1.8.6 | Ratio of PUSCH HARQ ACKs to total transmissions (initial + retransmission). Higher = fewer retransmissions. | % | Track retransmission overhead; L.UL.HARQ.AckRatio + L.UL.BLER together characterise HARQ efficiency |
| L.PUSCH.MCS.Distr | §5.1.1.8.3 | Distribution of PUSCH MCS indices used across all UE-slots. Histogram with bins per MCS index 0–28. | count/bin | If modal MCS ≤ 5 (QPSK low-rate) → power or coverage problem; if modal MCS ≥ 20 (64QAM) → healthy link |
| L.PUSCH.PRB.Util | §5.1.1.3.5 | UL PRB utilisation = used UL PRBs / available UL PRBs in TDD pattern. Averaged per measurement period. | % | If near 100% → UL scheduling-limited; consider more UL slots in TDD config |
| L.UL.PCMAX.Rate | §5.1.1.3.8 | Fraction of UE-slot observations where the UE is transmitting at P_CMAX (power-limited). High rate = coverage issue. | % | Key coverage indicator; if >20% of UEs power-limited → P0 too high, α too high, or cell overshooting |
Example 24.4 — UL Throughput Root Cause from TS 28.552 Counters
Observed: Cell UL throughput (L.Thrp.bits.UL) at 60% of expected. L.UL.BLER = 8% (healthy). L.PUSCH.MCS.Distr modal MCS = 7 (16QAM 0.33 — low). L.UL.PCMAX.Rate = 35% (many UEs at max power). L.PUSCH.PRB.Util = 45% (PRBs not congested).
Diagnosis: L.PUSCH.PRB.Util is low → not scheduling-limited. L.UL.BLER healthy → OLLA working. But 35% UEs at P_CMAX + modal MCS = 7 → coverage problem: UEs can't overcome path loss even at max power. UL SINR bottleneck drives gNB to select low MCS despite having PRBs available.
Root cause: Cell radius too large for P0_PUSCH setting. Either: (a) reduce ISD, (b) increase antenna tilt to reduce cell radius, (c) raise P0_PUSCH by 2–3 dB and reduce α to 0.7 to partially compensate without increasing inter-cell interference.
Action: Raise P0 from −106 to −103 dBm. Monitor L.UL.PCMAX.Rate (target <10%) and L.PUSCH.MCS.Distr (target modal MCS ≥ 10).
§24.10 Power Headroom Report (PHR) — MAC CE and Coverage Diagnosis
The Power Headroom Report (PHR) is a MAC control element defined in TS 38.321 §6.1.3.8. It is the primary mechanism by which the UE informs the gNB of its remaining power budget. The gNB uses PHR to decide how many PRBs to allocate in the next scheduling grant — a coverage-aware scheduler must avoid allocating more PRBs than the UE can support at the required power spectral density.
A positive PHR means the UE is transmitting below its maximum power and could support more PRBs or higher power. A negative PHR means the UE is already at P_CMAX — further PRB allocation only dilutes the power spectral density and reduces the UE's received SNR per subcarrier, potentially triggering MCS degradation.
"The UE shall trigger a PHR MAC CE when the path loss has changed by more than dl-PathlossChange dB since the last PHR was reported, or when prohibitPHR-Timer expires, or when the UE has UL resources and a PHR has not been reported since the last PDCCH indicating an uplink grant. The PHR value shall be reported for each configured serving cell." — TS 38.321 §5.4.6 (Release 17)
PHR MAC CE Format (TS 38.321 §6.1.3.8)
| Field | Bits | Values | Description |
|---|---|---|---|
| PHR value | 6 | 0–63 (maps to −32 to +40 dB in 1 dB steps; index 0 = ≤−32 dB) | P_CMAX − P_PUSCH. Index 40 = PHR of +8 dB. Below index 32 = negative PHR. |
| P (virtual) flag | 1 | 0: actual, 1: virtual | Virtual PHR when no PUSCH scheduled; estimated based on reference power formula |
| V (P_CMAX) field | 6 | 0–63 (maps to P_CMAX value) | Reported P_CMAX; allows gNB to distinguish power-class-limited vs coverage-limited UEs |
Example 24.5 — Interpreting Negative PHR for Coverage Diagnosis
Observed PM counter: L.UL.PCMAX.Rate = 38% (38% of UE-slot observations show UE at P_CMAX). L.Thrp.bits.UL is 45% of adjacent cell average. L.UL.BLER = 22% (too high; OLLA struggling).
PHR analysis: 38% of UEs transmitting at P_CMAX → they are all submitting negative PHR MAC CEs to the gNB. The gNB correctly interprets these but cannot increase received power beyond what P_CMAX allows. OLLA drives MCS down but still BLER=22% → fundamental link budget deficit.
Link budget deficit estimate: If 38% of UEs are at P_CMAX=23 dBm with PL>130 dB, received signal = 23−130 = −107 dBm. With noise floor −115 dBm and 6 dB interference margin → SINR = −107−(−115)+6 = −107+121 = … rearranged: SINR = P_rx − (N+I) = −107 − (−115+6) = −107 + 109 = 2 dB → only QPSK rate 1/4 MCS 1. TBS extremely low.
Corrective actions in priority order: (1) Mechanical tilt adjustment to reduce cell radius. (2) Increase antenna height. (3) Add RF repeater or small cell for coverage hole. (4) Parameter: reduce P0 by 2 dB and α to 0.7 to free up inter-cell budget; this will slightly reduce coverage further but reduce BLER in partially covered UEs — evaluate per-cell.
§24.11 Part V Summary — Throughput Optimisation Checklist
Part V (Chapters 20–24) has covered the complete 5G NR throughput optimisation framework: from the fundamental scheduling grid (Chapter 20) through MCS and link adaptation (Chapter 21), MIMO spatial multiplexing (Chapter 22), Carrier Aggregation and BWP management (Chapter 23), and now UL power control (Chapter 24). This section consolidates all actionable optimisation items into a single 12-item checklist, cross-referenced to the relevant chapter and TS specification.
| # | Optimisation item | Chapter | Key KPI | 3GPP reference | Primary action |
|---|---|---|---|---|---|
| 1 | Scheduler PRB utilisation | Ch 20 | L.Traffic.DL.PRB.Used / Available | TS 38.214 §5.1.2 | If >85% DL PRB util → check for coverage holes reducing scheduler efficiency |
| 2 | HARQ retransmission rate | Ch 20 | L.DL.HARQ.NackRatio | TS 38.212 §7.3.1.1 | If >15% HARQ NACK → DL BLER too high; verify CQI reporting and OLLA step size |
| 3 | DL MCS distribution | Ch 21 | L.PDSCH.MCS.Distr | TS 38.214 Table 5.1.3.1-1 | Modal DL MCS <10 → coverage/interference; >20 → verify 256QAM capable UEs present |
| 4 | OLLA target BLER | Ch 21 | L.DL.BLER | TS 38.214 §5.1.4 (OLLA principle) | DL BLER <5% → OLLA too conservative (raise BLER target); >20% → OLLA not converging |
| 5 | MIMO rank utilisation | Ch 22 | L.PDSCH.RI.Distr | TS 38.214 §5.2.2 | If RI=1 dominates → check CSI-RS config and UE antenna separation; low RI kills spectral efficiency |
| 6 | MU-MIMO activation rate | Ch 22 | L.PDSCH.MU.Ratio | TS 38.214 §5.2.2.2 | MU-MIMO share <20% in high-load cell → review PMI feedback accuracy and scheduler thresholds |
| 7 | CA activation per UE | Ch 23 | L.CA.Active.UE.Ratio | TS 38.331 §6.3.2 ServCellConfig | CA capable UEs not activating SCell → check SCell coverage, BWP config, and activation timer |
| 8 | BWP switching efficiency | Ch 23 | L.BWP.Switch.Delay | TS 38.213 §12 | Excessive BWP switching interruption → tune BWP inactivity timer and default BWP width |
| 9 | UL PUSCH MCS distribution | Ch 24 | L.PUSCH.MCS.Distr | TS 38.214 §6.1.4 | Modal UL MCS ≤ 7 → UL power/coverage issue; check P0_PUSCH and α settings |
| 10 | UE power-limited rate | Ch 24 | L.UL.PCMAX.Rate | TS 38.213 §7.1 (P_CMAX) | >20% UEs at P_CMAX → coverage hole; mechanical/electrical tilt or P0 reconfiguration |
| 11 | SRS quality for TDD reciprocity | Ch 24 | L.SRS.SINR (implementation KPI) | TS 38.213 §7.3 | SRS SNR <10 dB → raise P_O_SRS; poor SRS → degrades DL MU-MIMO throughput |
| 12 | TDD UL/DL slot ratio | Ch 20+24 | L.Thrp.bits.UL / L.Thrp.bits.DL | TS 38.213 §11.1 | UL/DL ratio mismatched to traffic demand → retune TDD pattern; note: must be cell-wide change |
Key Cross-Chapter Dependencies
The Part V throughput framework is not linear — each chapter's parameters feed back into others:
- Ch24 → Ch22 (TDD): SRS power control determines channel estimation quality → DL precoding accuracy → MU-MIMO gain → DL throughput. Suboptimal SRS power directly degrades Chapter 22 objectives.
- Ch21 → Ch20: OLLA offset changes effective MCS → changes TBS per PRB → changes scheduler's PRB allocation decision (fewer PRBs needed for same throughput when MCS is high).
- Ch23 → Ch20: CA activation increases the scheduler's available PRB pool → changes PRB utilisation statistics → may require recalibrating scheduler round-robin weights.
- Ch24 → Ch21: UL power level determines UL SINR → UL OLLA operating point → UL MCS → UL TBS. P0 changes cascade directly through the UL link adaptation chain.
- Ch22 → Ch21: Higher RI (more MIMO layers) requires independent per-layer OLLA tracking; rank adaptation interacts with CQI reporting periodicity.
Part V Summary: Throughput Equation
Every variable in this equation maps to a specific TS 38.213/38.214 parameter and a specific TS 28.552 PM counter. The 12-item checklist above provides the systematic path from observed counter deviation to root cause to corrective parameter action — the foundation of data-driven 5G NR throughput optimisation.
"The UL grant scheduling for PUSCH shall be based on the UE's reported Buffer Status Report (BSR), the power headroom reported via PHR MAC CE, the uplink channel quality estimated from SRS or PUSCH DM-RS, and the scheduler's resource allocation constraints. The scheduler shall ensure that the allocated number of PRBs does not exceed what can be supported by the UE given its remaining power headroom." — TS 38.321 §5.4.6, informative note on PHR-aware scheduling (Release 17)
RLF Causes & Detection
Complete 3GPP radio link failure framework: physical-layer OOS/IS indications, T310/N310/N311 timer mechanics, RLC maximum retransmission failure, RACH-based RLF, TS 28.552 counter framework (L.RLF.*), root-cause decision tree, and optimisation parameters — derived from TS 38.331 §5.3.10, TS 38.322 §5.3, TS 38.321 §5.1, and TS 28.552 with full worked examples
3GPP TS 38.331 §5.3.10 · TS 38.322 §5.3 · TS 38.321 §5.1 · TS 28.552 §5.1.1.6Chapter Learning Objectives
After completing this chapter, you will be able to:
- State the three normative RLF triggers defined in TS 38.331 §5.3.10 and identify which timer/counter governs each
- Explain the Q_out and Q_in thresholds, the role of N310 and N311 consecutive-indication counters, and the T310 timer state machine
- Calculate the earliest and latest TTI at which T310-based RLF can be declared given N310, N311, and T310 parameter values
- Describe how RLC AM maxRetxThreshold maps to consecutive HARQ NACKs and identify the TTI of RLF declaration
- Explain beam failure recovery failure as a RACH-based RLF path and map it to the maxNumPreamble parameter in TS 38.321
- Build a root-cause decision tree for RLF using L.RLF.T310Exp, L.RLF.MaxReTx, and L.RLF.RACHFail counter ratios
- Apply the TS 28.552 RLF counter framework to compute the RLF Rate KPI and set a network performance target
- Select corrective actions (coverage tilt, T310 increase, maxRetxThreshold tuning, a3Offset adjustment) and quantify their expected impact on RLF rate
Introduction — Why RLF Matters for Retainability
Radio Link Failure (RLF) is the definitive retainability event in 5G NR. Unlike a call drop caused by a mobility handover failure — where signalling reaches the target cell before the connection tears down — an RLF occurs when the UE loses its physical connection to the serving cell entirely, with no in-flight handover in progress. The UE enters RRC_IDLE or attempts reestablishment (TS 38.331 §5.3.7); either outcome counts against the network's retainability KPI.
Three normative triggers can cause an RLF, each governed by a different 3GPP sublayer:
- T310 expiry — physical layer declares Out-of-Sync (OOS) N310 consecutive times; if no In-Sync (IS) recovery occurs within T310, RLF is declared (TS 38.331 §5.3.10)
- RLC maxRetxThreshold exceeded — an RLC AM entity exhausts its retransmission budget on a data SDU and signals RLF to upper layers (TS 38.322 §5.3.1)
- Random access failure — a RACH procedure triggered for beam failure recovery (BFR) or RRC Reestablishment fails after maxNumPreamble attempts (TS 38.321 §5.1.1)
Understanding these three paths — and their respective TS 28.552 counters — is the foundation of every retainability optimisation effort. This chapter develops each path from first principles, provides worked numerical examples for all three, and constructs the complete counter-driven RCA framework.
§25.1 RLF Detection: Physical-Layer OOS/IS Indications
The physical layer monitors the PDCCH BLER continuously using a hypothetical PDCCH transmission. Two thresholds define the quality boundaries (TS 38.331 §5.3.10.3):
- Q_out = 2% — if estimated PDCCH BLER exceeds 2%, the physical layer issues an Out-of-Sync (OOS) indication to RRC
- Q_in = 10% — if estimated PDCCH BLER drops below 10% after a period of OOS, the physical layer issues an In-Sync (IS) indication
These indications are not instantaneous; they are based on a running average over a measurement window defined in TS 38.133 Table 7.1.1-1. The gap between Q_out and Q_in creates a hysteresis band that prevents rapid oscillation between OOS and IS states when SINR is near the threshold.
"The UE shall initiate the radio link failure procedure if: (1) it receives N310 consecutive 'out-of-sync' indications from lower layers while the timer T310 is not running; (2) the timer T310 expires; or (3) while T304 is running, the MAC entity indicates a random access problem." — TS 38.331 §5.3.10.1 (Release 17)
The counter N310 counts consecutive OOS indications. When N310 consecutive OOS indications have been received, T310 is started. The counter N311 then counts consecutive IS indications; if N311 consecutive IS indications are received before T310 expires, T310 is stopped and the radio link is declared recovered. If T310 expires before N311 IS indications are counted, RLF is declared.
| Parameter | TS 38.331 IE | Allowed Values | Default | Impact |
|---|---|---|---|---|
| T310 | t310 | 0, 50, 100, 200, 500, 1000, 2000 ms | 1000 ms | Window between N310 trigger and RLF. Longer T310 gives more recovery time but degrades UX during OOS. |
| N310 | n310 | 1, 2, 3, 4, 6, 8, 10, 20 | 6 | Number of consecutive OOS indications to trigger T310. Lower N310 = faster RLF initiation. |
| N311 | n311 | 1, 2, 3, 4, 5, 6, 8, 10 | 1 | Number of consecutive IS indications to cancel T310. Higher N311 = harder to recover, more RLF. |
Worked Example 25.1 — T310-Based RLF Timeline
Configuration: N310 = 6, N311 = 4, T310 = 200 ms. OOS indication period = 20 ms (one per subframe group).
t = 0 ms: SINR drops from +5 dB to −2 dB due to interference pulse. PDCCH BLER rises above Q_out = 2%.
t = 0 to 100 ms: 5 consecutive OOS indications received. N310 counter = 5 (threshold not yet met).
t = 120 ms: 6th consecutive OOS indication. N310 = 6 satisfied. T310 started.
t = 120 to 200 ms: SINR = −4 dB. No IS indications. N311 counter = 0. T310 running.
t = 320 ms: T310 expires (200 ms elapsed since t=120 ms). N311 has not reached 4. RLF declared.
Total time from OOS start to RLF: 320 ms. Counter incremented: L.RLF.T310Exp += 1.
Alternative (recovery): If SINR recovers to +3 dB at t=200 ms, IS indications arrive. After 4 consecutive IS indications (at t=280 ms), T310 is stopped. No RLF. N311 counter satisfied.
§25.2 RLF Detection: RLC Maximum Retransmission Exceeded
The second RLF trigger originates at the RLC sublayer. In RLC Acknowledged Mode (AM), each Protocol Data Unit (PDU) can be retransmitted up to maxRetxThreshold times after the receiving peer reports a NACK in a STATUS PDU. When the retransmission count for any PDU reaches maxRetxThreshold, the RLC entity signals radio link failure upwards to PDCP and RRC.
"If the retransmission count for an AMD PDU or an AMD PDU segment has reached the configured value of maxRetxThreshold, the RLC entity shall indicate to upper layers that a radio link failure has occurred." — TS 38.322 §5.3.1 (Release 17)
The parameter maxRetxThreshold is configured per RLC AM bearer via the RLC-Config IE in TS 38.331. In practice, each NACK consumed against the same PDU corresponds to one failed HARQ transmission. With HARQ maximum retransmissions typically set to 4, a single PDU that fails 8 HARQ rounds (two HARQ processes each failing 4 times) consumes maxRetxThreshold = 8, triggering RLF.
| maxRetxThreshold | Max RLC Retransmissions | HARQ Rounds (harq-MaxRetx=4) | RLF Trigger Condition | Typical Use Case |
|---|---|---|---|---|
| t1 | 1 | 1×4 = 4 total | Single NACK → RLF (aggressive) | Not recommended |
| t2 | 2 | 2×4 = 8 total | 2 consecutive NACKs → RLF | Low latency services |
| t4 | 4 | 4×4 = 16 total | 4 NACKs → RLF | Common for data |
| t8 | 8 | 8×4 = 32 total | 8 NACKs → RLF | Standard default |
| t16 | 16 | 16×4 = 64 total | 16 NACKs → RLF | High-reliability bearers |
| t32 | 32 | 32×4 = 128 total | 32 NACKs → RLF | URLLC / critical data |
| t64 | 64 | 64×4 = 256 total | 64 NACKs → RLF | Rarely used |
| t128 | 128 | 128×4 = 512 total | 128 NACKs → RLF | Maximum tolerance |
Worked Example 25.2 — RLC maxRetxThreshold Exhaustion
Configuration: maxRetxThreshold = 32. HARQ maxRetransmissions = 4. Slot duration (SCS 30 kHz, μ=1) = 0.5 ms. HARQ RTT = 8 slots = 4 ms.
Scenario: UE moves into a coverage shadow at t=0. All HARQ transmissions of a DL PDU fail (channel BLER = 100% due to deep fade).
Round 1: HARQ TBs transmitted at slots 0, 2, 4, 6. All fail. NACK sent at slot 8. RLC retransmission counter = 1.
Rounds 2–32: Each RLC retransmission round takes 8 slots = 4 ms per HARQ process. With 32 NACK rounds: 32 × (4 + 4) ms = 256 ms.
Note: Each RLC retransmission awaits HARQ failure confirmation (≈4 ms HARQ RTT) plus gNB scheduling latency (≈4 ms). Total per-round ≈ 8 ms for HARQ process.
At TTI 512 (t = 256 ms): 32nd NACK received. maxRetxThreshold reached. RLC entity indicates RLF. L.RLF.MaxReTx += 1.
Interpretation: maxRetxThreshold = 32 gives ~256 ms tolerance before RLF. For low-BLER cells this never fires; it fires only during sustained deep fades or severe interference events.
§25.3 RLF Detection: RACH Failure (Beam Failure Recovery)
The third normative RLF path is triggered when a RACH procedure — initiated either for beam failure recovery (BFR) or for RRC Connection Reestablishment — fails due to exhausting the maximum preamble transmission count. In 5G NR beamformed systems, beam failure is detected when the physical layer cannot find a beam with sufficient quality (RSRP above the configured threshold) and the BFR procedure begins a RACH attempt on a candidate beam.
"If the PRACH has been transmitted with the maximum number of preambles as determined by the preambleTransmissionCounter reaching preambleAttemptNumber, the UE shall indicate a random access problem to the higher layers." — TS 38.321 §5.1.1 (Release 17)
When higher layers receive the random access problem indication during BFR or Reestablishment RACH, they declare RLF. The relevant parameter is ra-preambleAttemptNumber (also referred to as maxNumPreamble in TS 38.321 §5.1.1 context). If the RACH procedure for BFR fails, TS 38.331 §5.3.14.3 specifies that the UE shall treat this as an RLF and initiate RRC Reestablishment.
| Parameter | IE Name | TS Reference | Allowed Values | Impact on RLF |
|---|---|---|---|---|
| Max preamble attempts | preambleTransmissionCounter | TS 38.321 §5.1.1 | n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200 | Higher value = more attempts before RACH fail → fewer L.RLF.RACHFail events |
| Beam failure detection timer | beamFailureDetectionTimer | TS 38.331 §6.3.2 | pbfd1–pbfd10 (10–100 ms) | Shorter timer → faster BFR initiation; too short = false triggers |
| Max beam failure instances | maxBeamFailure | TS 38.331 §6.3.2 | n1–n8 | Lower threshold = faster BFR, higher risk of false triggers |
| RACH backoff indicator | backoffIndicator | TS 38.321 §5.1.2 | 0–960 ms | High backoff during congestion = longer RACH duration, potential T310 expiry race |
Worked Example 25.3 — RACH Failure RLF in Beam Failure Scenario
Configuration: maxBeamFailure = 3. beamFailureDetectionTimer = pbfd3 (30 ms). preambleTransmissionCounter = n5 (5 attempts). RACH slot periodicity = 5 ms.
t = 0–90 ms: UE in beam b1 (RSRP = −108 dBm). Beam failure threshold = −110 dBm RSRP. Physical layer detects 3 consecutive beam failure instances within 3 × 30 ms = 90 ms window. BFR procedure triggered.
t = 90 ms: UE selects candidate beam b2 (RSRP = −112 dBm, just above detection threshold). RACH preamble #1 transmitted on RACH occasion for b2.
t = 90–115 ms: Preambles #1 to #5 transmitted at 5 ms intervals. No RAR (Random Access Response) received for any preamble.
t = 115 ms: preambleTransmissionCounter = 5 = preambleAttemptNumber. RACH failure indicated to higher layers. RLF declared. L.RLF.RACHFail += 1.
Root cause: Candidate beam b2 RSRP is marginal (−112 dBm). Preamble path loss too high for gNB RACH decoder. Fix: lower beamFailureRSRPThreshold, or increase RACH preamble power (preambleInitialReceivedTargetPower).
§25.4 RLF Root Cause Analysis Framework
With three distinct RLF triggers, root-cause analysis requires a structured counter-first approach. The TS 28.552 counter split (L.RLF.T310Exp, L.RLF.MaxReTx, L.RLF.RACHFail) immediately points to the dominant cause. Each cause maps to a different network issue:
| RLF Cause | Primary Counter | Network Issue | RSRP Indicator | SINR Indicator | First Fix |
|---|---|---|---|---|---|
| Coverage hole | L.RLF.T310Exp | Low RSRP → high PDCCH BLER → OOS | < −110 dBm | < −3 dB | Tilt adjustment, power increase, cell gap fill |
| Interference | L.RLF.T310Exp | High I/N → poor SINR → OOS (RSRP may be adequate) | −90 to −100 dBm | < −3 dB | PCI conflict resolution, interference coordination |
| Handover zone RLF | L.RLF.HO | Too-late HO → SINR degrades before HO executes → T310 | −100 to −110 dBm | < 0 dB | a3Offset decrease, T304 tuning, ANR addition |
| RLC failure | L.RLF.MaxReTx | Sustained deep fade or high interference on data bearers | −105 to −115 dBm | < −5 dB | Coverage fix or maxRetxThreshold increase |
| RACH failure | L.RLF.RACHFail | Marginal beam quality or RACH congestion | < −112 dBm | < −5 dB | Preamble power tuning, candidate beam optimization |
§25.5 TS 28.552 Counter Framework
TS 28.552 §5.1.1.6 defines the NR RLF measurement family. All counters are per-cell, per granularity period (typically 15 minutes). The primary KPI is RLF Rate, which normalises total RLFs against the connected session denominator.
RLF Rate (%) = L.RLF.Total / (L.RRC.ConnEstabSucc + L.HO.ExecSucc) × 100%
Target: < 0.5% for urban macro; < 1.0% for rural/suburban
"This measurement provides the number of radio link failures per NR cell. A radio link failure is declared when the UE detects out-of-sync for a duration exceeding timer T310, or when the RLC reaches maxRetxThreshold, or when a random access failure occurs during connection reestablishment." — TS 28.552 §5.1.1.6.1 (Release 17)
| Counter Name | TS 28.552 Reference | Definition | Trigger Condition | Granularity |
|---|---|---|---|---|
| L.RLF.Total | §5.1.1.6.1 | Total radio link failures in the cell | Any of T310 expiry, maxRetxThreshold, or RACH failure | Per cell / 15 min |
| L.RLF.T310Exp | §5.1.1.6.2 | RLFs caused by T310 timer expiry | T310 expires before N311 IS indications received | Per cell / 15 min |
| L.RLF.MaxReTx | §5.1.1.6.3 | RLFs caused by RLC maxRetxThreshold reached | RLC AM entity exhausts retransmission budget on any PDU | Per cell / 15 min |
| L.RLF.RACHFail | §5.1.1.6.4 | RLFs caused by RACH failure (BFR or Reestablishment) | preambleTransmissionCounter reaches preambleAttemptNumber | Per cell / 15 min |
| L.RLF.HO | §5.1.1.6.5 | RLFs occurring during handover procedure | T304 active and physical layer reports OOS → T310 expiry | Per cell / 15 min |
| L.RRC.ConnEstabSucc | §5.1.1.2.1 | Successful RRC connection establishments (denominator) | RRC Setup Complete received | Per cell / 15 min |
| L.HO.ExecSucc | §5.1.1.5.2 | Successful handover executions (denominator contribution) | HO complete message received at target cell | Per cell / 15 min |
§25.6 Optimisation Parameters
Reducing RLF rate requires matching the parameter set to the dominant failure mode identified via the counter split. Four parameter families are most impactful:
T310 Tuning
T310 governs the tolerance window between OOS detection and RLF declaration. Setting T310 too short (e.g., 50 ms) causes false RLFs: brief interference pulses that would self-resolve within 200 ms are incorrectly declared as RLF. Setting T310 too long (2000 ms) keeps the UE in a degraded state for two seconds, degrading user experience — but is appropriate for UEs in marginal coverage where extended recovery is possible.
The standard optimisation rule: if RSRP-based coverage is adequate (RSRP > −110 dBm) but SINR is volatile (intermittent interference), increase T310 to 500 or 1000 ms to allow self-healing. If coverage is the issue, T310 tuning alone is insufficient — antenna or power changes are required.
N310 / N311 Tuning
N310 controls the speed of T310 trigger. Lower N310 (e.g., N310=2) causes T310 to start after just 2 OOS indications — faster but susceptible to false triggers from momentary channel dips. For high-SINR cells with stable channels, N310=1 or N310=2 is acceptable. For cell-edge UEs or sites with heavy interference loading, N310=6 to N310=8 provides better false-trigger immunity.
N311 controls recovery speed. N311=1 (default) means a single IS indication cancels T310. This is the most recovery-friendly setting. Increasing N311 requires sustained IS recovery, which reduces false-recovery but can cause unnecessary RLF if the channel is borderline.
Mobility Parameter Interaction
A significant fraction of L.RLF.T310Exp events are "too-late handover" failures. The UE crosses into a coverage gap between cells (RSRP of serving cell drops below −110 dBm) before the handover event A3 is triggered. The fix is to reduce a3Offset (making HO trigger earlier) or reduce hysteresis (narrowing the HO hysteresis band).
| Parameter | TS Reference | Allowed Range | Default | Recommended (Dense Urban) | Recommended (Rural) | RLF Cause Addressed |
|---|---|---|---|---|---|---|
| T310 | TS 38.331 §6.3.2 | 0, 50, 100, 200, 500, 1000, 2000 ms | 1000 ms | 500 ms | 1000 ms | T310Exp (false trigger) |
| N310 | TS 38.331 §6.3.2 | 1, 2, 3, 4, 6, 8, 10, 20 | 6 | 4–6 | 6–8 | T310Exp frequency |
| N311 | TS 38.331 §6.3.2 | 1, 2, 3, 4, 5, 6, 8, 10 | 1 | 1–2 | 1 | Recovery probability |
| a3Offset | TS 38.331 §6.3.5 (ReportConfigNR) | −30 to +30 dB (0.5 dB step) | 3 dB | 1–2 dB | 3–4 dB | L.RLF.HO / mobility RLF |
| hysteresis (A3) | TS 38.331 §6.3.5 | 0 to 15 dB (0.5 dB step) | 3 dB | 1.5–2 dB | 3 dB | L.RLF.HO reduction |
| maxRetxThreshold | TS 38.322 (RLC-Config) | t1/t2/t4/t8/t16/t32/t64/t128 | t8 | t8–t16 | t16–t32 | L.RLF.MaxReTx |
| preambleTransmissionCounter | TS 38.321 §5.1.1 | n3–n200 | n7 | n5–n7 | n7–n10 | L.RLF.RACHFail |
§25.7 Worked RLF RCA Case Study
The following worked example applies the full RCA methodology to a real-world scenario: a cell with elevated L.RLF.T310Exp observed during peak traffic, root-caused to a coverage gap, and resolved through antenna tilt adjustment and transmit power increase.
Worked Example 25.4 — Full RLF RCA: Coverage-Driven T310 Expiry
Observation (from PM counters, 1-hour interval):
- L.RLF.Total = 47 (up from baseline of 6)
- L.RLF.T310Exp = 41 (87% of total — dominant cause)
- L.RLF.MaxReTx = 4, L.RLF.RACHFail = 2, L.RLF.HO = 0
- L.RRC.ConnEstabSucc = 4,820 → RLF Rate = 47/4,820 × 100% = 0.97% (above 0.5% target)
Step 1 — Counter split confirms T310Exp dominant. L.RLF.T310Exp/L.RLF.Total = 87%. Physical-layer OOS is the root cause.
Step 2 — Drive test / MR data analysis.
- Cell RSRP (5th percentile): −108 dBm (below −105 dBm target)
- Cell SINR (5th percentile): −1 dB (below 0 dB threshold)
- PDCCH BLER (estimated from MR): ~4–8% during RLF events (above Q_out=2%)
Step 3 — T310/N310 timeline for this cell:
- N310 = 6 (configured). OOS indication period ≈ 20 ms per CQI report interval.
- T310 = 200 ms (configured — too short for this cell's coverage profile).
- t = 0: SINR drops to −1 dB (interference from adjacent cell during peak hour).
- t = 0–100 ms: 5 consecutive OOS indications accumulated (N310 counter = 5).
- t = 120 ms: 6th OOS. N310 satisfied. T310 started.
- t = 120–320 ms: SINR = −5 dB. No IS indications. T310 running.
- t = 320 ms: T310 expires. RLF declared. L.RLF.T310Exp += 1.
Step 4 — Root cause confirmed: RSRP = −108 dBm means PDCCH BLER is sustained above Q_out = 2%. The cell has a coverage gap in the south sector (confirmed by MR spatial plot). Additionally, T310 = 200 ms is too short for marginal coverage — it gives only 200 ms for recovery.
Step 5 — Corrective actions applied:
- Electrical tilt: −2° downtilt → footprint extends south, RSRP in gap improves from −108 to −102 dBm (+6 dB). Verified with post-change drive test.
- TX power: +3 dBm → additional 3 dB link budget improvement. Combined with tilt: RSRP 5th pct = −99 dBm (+9 dB total).
- T310: 200 ms → 500 ms → doubles the recovery window for marginal UEs. For sustained fades longer than 200 ms but shorter than 500 ms, RLF is avoided.
Step 6 — Post-change verification (next 1-hour PM interval):
- L.RLF.T310Exp: 41 → 8 (80% reduction)
- L.RLF.Total: 47 → 10 (79% reduction)
- RLF Rate: 0.97% → 0.20% (well below 0.5% target)
- RSRP 5th pct: −108 → −99 dBm (+9 dB); SINR 5th pct: −1 → +5 dB (+6 dB)
§25.8 Part VI Summary — RLF Performance Targets and Checklist
The following tables consolidate the RLF optimisation framework as a reference for network operations teams. Table 25.7 provides KPI targets by environment; Table 25.8 gives the 8-item RLF optimisation checklist.
| Environment | RLF Rate Target | L.RLF.T310Exp Share | Primary Risk | Key Counter to Watch |
|---|---|---|---|---|
| Dense Urban (ISD < 200 m) | < 0.3% | < 60% | HO-related RLF (dense HO triggers) | L.RLF.HO / L.HO.ExecFail |
| Urban Macro (ISD 200–500 m) | < 0.5% | < 70% | Coverage gaps at cell borders | L.RLF.T310Exp |
| Suburban (ISD 500 m–2 km) | < 0.8% | < 75% | Marginal coverage, slow UEs | L.RLF.T310Exp / L.RLF.MaxReTx |
| Rural (ISD > 2 km) | < 1.0% | < 80% | Large coverage holes, no overlap | L.RLF.T310Exp / L.RLF.RACHFail |
| High-Speed Rail (> 250 km/h) | < 0.5% | < 50% | Rapid Doppler / beam loss | L.RLF.HO / L.RLF.RACHFail |
| # | Step | Counter(s) | Threshold | Action if Threshold Breached |
|---|---|---|---|---|
| 1 | Compute cell-level RLF Rate | L.RLF.Total / (L.RRC.ConnEstabSucc + L.HO.ExecSucc) | > 0.5% (urban) | Proceed to step 2 |
| 2 | Identify dominant cause | L.RLF.T310Exp, L.RLF.MaxReTx, L.RLF.RACHFail, L.RLF.HO | > 60% of L.RLF.Total | Focus on dominant counter's RCA branch |
| 3 | Coverage check (if T310Exp dominant) | MR RSRP 5th percentile | < −110 dBm | Tilt adjustment, power increase, gap fill |
| 4 | Interference check (if T310Exp dominant, RSRP OK) | MR SINR 5th percentile | < −3 dB | PCI conflict check, ICIC, coordination |
| 5 | Mobility check (if L.RLF.HO elevated) | L.RLF.HO / L.HO.ExecSucc | > 2% | Reduce a3Offset / hysteresis, add ANR neighbors |
| 6 | T310 timer check | T310 configured value | < 200 ms for marginal coverage cells | Increase T310 to 500 ms or 1000 ms |
| 7 | RACH failure check | L.RLF.RACHFail / L.RLF.Total | > 10% | Preamble power, BFR threshold, candidate beams |
| 8 | Post-change validation | L.RLF.Total (next 2 × 1-hour intervals) | RLF Rate < target | Confirm improvement; if not, escalate to multi-site analysis |
RLF Rate: L.RLF.Total / (L.RRC.ConnEstabSucc + L.HO.ExecSucc) × 100%
T310 RLF earliest time: t_RLF_min = N310 × T_OOS_period + T310
T310 RLF latest time: t_RLF_max = N310 × T_OOS_period + T310 + (N311−1) × T_IS_period
RLC RLF time estimate: t_RLC_RLF ≈ maxRetxThreshold × (HARQ_RTT + sched_delay)
RACH RLF time: t_RACH_RLF = preambleAttemptNumber × RACH_slot_period
Cross-Chapter References
RLF optimisation is tightly coupled to other chapters in Part VI and the mobility chapters of Part IV:
- Chapter 14 (Intra-gNB HO) — a3Offset and hysteresis parameters that affect L.RLF.HO
- Chapter 15 (Inter-gNB Xn HO) — inter-site coverage gaps and T304-related RLF interactions
- Chapter 18 (ANR) — missing neighbor relations that cause too-late HO and coverage-zone RLF
- Chapter 9 (RACH Procedure) — preamble configuration and RACH dimensioning affecting L.RLF.RACHFail
- Chapter 26 (RRC Reestablishment) — post-RLF recovery: reestablishment success rate and context transfer
Chapter 25 Summary
- Three normative RLF triggers: T310 expiry (TS 38.331 §5.3.10), RLC maxRetxThreshold (TS 38.322 §5.3.1), and RACH failure (TS 38.321 §5.1.1)
- T310 is started after N310 consecutive OOS indications (PDCCH BLER > Q_out = 2%) and stopped by N311 consecutive IS indications (BLER < Q_in = 10%)
- T310 values: {0, 50, 100, 200, 500, 1000, 2000} ms; N310: {1–20}; N311: {1–10}
- maxRetxThreshold = t32 gives ≈256 ms tolerance; setting too low (t2) causes false RLF on momentary fades
- TS 28.552 counters: L.RLF.T310Exp, L.RLF.MaxReTx, L.RLF.RACHFail, L.RLF.HO, L.RLF.Total
- RLF Rate KPI = L.RLF.Total / (L.RRC.ConnEstabSucc + L.HO.ExecSucc) × 100%; target < 0.5% urban
- Coverage-driven T310Exp (RSRP < −110 dBm): fix by tilt −2°, power +3 dB → typically 75–80% RLF reduction
- Mobility-driven RLF (L.RLF.HO elevated): fix by reducing a3Offset and hysteresis by 1–2 dB
RRC Re-establishment & PDCP Recovery
Complete 3GPP re-establishment framework: UE-initiated re-establishment procedure (TS 38.331 §5.3.7), T311 timer state machine, PDCP SN/HFN continuity (TS 38.323), TS 28.552 counter framework (L.RRC.ReEstab.*), root-cause decision tree, and optimisation parameters — with full worked examples and numerical case studies
3GPP TS 38.331 §5.3.7 · TS 38.323 §5.2.2 · TS 28.552 §5.1.1.6Chapter Learning Objectives
After completing this chapter, you will be able to:
- Describe the four-message RRC Re-establishment procedure and the UE trigger conditions defined in TS 38.331 §5.3.7
- Explain T311 timer mechanics: allowed values, state transitions, and the consequence of expiry before a suitable cell is found
- Calculate PDCP COUNT wrap-around from SN = 4095 (12-bit) and SN = 262143 (18-bit) using HFN arithmetic
- Distinguish PDCP state variables TX_NEXT, RX_NEXT, RX_DELIV, and RX_REORD and explain their role during re-establishment
- Apply TS 28.552 counters L.RRC.ReEstabAtt, L.RRC.ReEstabSucc, L.RRC.ReEstabFail.CellNotFound, and L.RRC.ReEstabFail.T311Exp to compute re-establishment KPIs
- Build a root-cause decision tree for low re-establishment success rate using counter ratios
- Select and justify PDCP optimisation parameters (SN size, discardTimer, integrityProtection) with reference to TS 38.331
Introduction — Re-establishment as the Last Line of Retainability Defence
Radio Link Failure (RLF), described in Chapter 25, terminates the physical connection between UE and gNB. However, RLF does not automatically mean a call drop. The 3GPP specification TS 38.331 §5.3.7 defines a recovery mechanism — RRC Re-establishment — that allows the UE to re-attach to the radio access network while preserving its PDCP layer state and, therefore, the application-layer data bearers (DRBs). When re-establishment succeeds, the user experiences only a brief interruption rather than a full call tear-down.
Re-establishment success depends on three conditions being met simultaneously:
- Suitable cell found in time: the UE must find a cell meeting the selection criteria before the T311 timer expires
- UE context available: the target gNB (or the source gNB via Xn) must have a stored RRC context for the UE; without it, re-establishment is rejected
- PDCP state integrity: the PDCP entity must preserve SN/HFN state so that data can resume without gaps or duplicate delivery
When any condition fails, the UE falls back to RRC_IDLE — counted as a call drop against the network's retainability KPI. This chapter develops the complete re-establishment framework from the 3GPP specifications, with all numerical examples, counter definitions, and optimisation levers derived strictly from TS 38.331, TS 38.323, and TS 28.552.
§26.1 Re-establishment Procedure — TS 38.331 §5.3.7
After declaring RLF (via T310 expiry, RLC maxRetx, or random access failure), the UE stores an RLF report containing the failedPCellId and rlf-Cause, then immediately begins searching for a suitable cell. The cell selection criteria mirror those used at initial access: the cell must satisfy the S-criteria defined in TS 38.304 §5.2.3.2 (S_rxlev > 0 and S_qual > 0).
"Upon detecting radio link failure, the UE shall: 1> suspend all RBs except SRB0; 1> reset MAC except for multiplexing and assembly; 1> apply the default physical layer configuration as specified in TS 38.213; 1> initiate the re-establishment procedure as specified in clause 5.3.7.3 if the UE has a valid security context." — TS 38.331 §5.3.7.2 (Release 17)
The re-establishment message sequence involves four protocol data units across the UE and gNB. All signalling uses SRB0 (CCCH) until security is re-activated on SRB1.
| Step | Message | Direction | Channel | Key IEs |
|---|---|---|---|---|
| 1 | RRCReestablishmentRequest | UE → gNB | SRB0 / CCCH | ue-Identity (C-RNTI, physCellId), reestablishmentCause, shortMAC-I |
| 2 | RRCReestablishment | gNB → UE | SRB1 / DCCH | nextHopChainingCount, radioResourceConfigDedicated |
| 3 | RRCReestablishmentComplete | UE → gNB | SRB1 / DCCH | criticalExtensions (optional selected extensions) |
| 4 | RRCReconfiguration | gNB → UE | SRB1 / DCCH | radioBearerConfig, masterCellGroup, measConfig |
| 5 | RRCReconfigurationComplete | UE → gNB | SRB1 / DCCH | (confirmation) |
The shortMAC-I field in the RRCReestablishmentRequest is a 16-bit truncated HMAC-SHA-256 computed over the UE's C-RNTI, physCellId of the failed cell, and the current AS security key. The target gNB uses this to verify the UE's identity without a full security re-run, preventing re-establishment from rogue UEs.
If the gNB cannot find a stored UE context (because the UE context was not forwarded via Xn, or the gNB is a different cell with no prior knowledge of the UE), it responds with RRCReestablishmentReject on SRB0. Upon receiving this, the UE transitions to RRC_IDLE, and the call is dropped.
| Field | IE Name | Size / Type | Purpose |
|---|---|---|---|
| C-RNTI | c-RNTI | 16-bit | UE identity in the failed cell — used to look up the stored context |
| Physical Cell ID | physCellId | 9-bit (0–503) | Identifies the cell where RLF occurred (source cell) |
| Short MAC-I | shortMAC-I | 16-bit | Truncated HMAC for UE authentication at the target gNB |
| Re-establishment Cause | reestablishmentCause | ENUM | otherFailure, handoverFailure, or reconfigurationFailure |
§26.2 PDCP State Preservation During Re-establishment (TS 38.323)
The key advantage of re-establishment over a full RRC Setup is PDCP layer continuity. Rather than discarding in-flight data and resetting sequence numbers, the PDCP entity preserves its transmit and receive COUNT values across the re-establishment event, enabling seamless resumption of data delivery after the radio link is restored.
"Upon re-establishment of the RLC entity, the PDCP entity shall: stop and reset all timers; perform retransmission of all PDCP SDUs with their associated PDCP PDUs already submitted to lower layers and not yet acknowledged in ascending order of the associated COUNT values; and perform retransmission of all PDCP SDUs not yet submitted to lower layers in ascending order of the associated COUNT values." — TS 38.323 §5.2.2 (Release 17)
The PDCP COUNT value is a 32-bit quantity composed of two fields: the Hyper Frame Number (HFN) — the upper bits — and the PDCP Sequence Number (SN) — the lower bits. For a 12-bit SN, COUNT = HFN[31:12] | SN[11:0]. For an 18-bit SN, COUNT = HFN[31:18] | SN[17:0].
| Variable | Direction | Definition | Initial Value |
|---|---|---|---|
| TX_NEXT | Transmitter | COUNT value of the next PDCP SDU to be transmitted | 0 |
| RX_NEXT | Receiver | COUNT value of the next expected PDCP SDU | 0 |
| RX_DELIV | Receiver | COUNT value of the first PDCP SDU not yet delivered to upper layers | 0 |
| RX_REORD | Receiver | COUNT value following the SN of the SDU that triggered t-Reordering | 0 |
After re-establishment, the transmitter retransmits all PDUs with COUNT values in the range [RX_DELIV of the peer entity, TX_NEXT − 1]. This ensures that any PDUs lost due to the RLF event are recovered without any gap in the SDU delivery sequence visible to upper layers (e.g., TCP).
Worked Example 26.1 — PDCP SN Wrap-around and HFN Increment (12-bit SN)
Configuration: DRB mapped to AM RLC; PDCP SN size = 12 bits; current TX_NEXT = 4094.
SN range: With 12-bit SN, modulus = 212 = 4096. Valid SN range: 0 to 4095.
Step 1 — transmit SN=4094: COUNT = (HFN × 4096) + 4094. HFN = 7 (example). COUNT = 7 × 4096 + 4094 = 28,672 + 4094 = 32,766.
Step 2 — transmit SN=4095: COUNT = 7 × 4096 + 4095 = 32,767. This is the last SN before wrap.
Step 3 — SN wraps to 0: TX_NEXT increments by 1 → TX_NEXT = 4096 (modulo 4096 = 0). HFN increments to 8. COUNT = 8 × 4096 + 0 = 32,768. Continuity is maintained: COUNT is monotonically increasing even though SN wrapped.
Re-establishment impact: If RLF occurs at TX_NEXT=32,768 and RX_DELIV=32,750 at the peer, the transmitter retransmits PDUs 32,750 to 32,767 (18 PDUs) after re-establishment. No data loss visible to TCP.
18-bit SN comparison: With 18-bit SN, modulus = 218 = 262,144. SN wraps at 262,143. For the same data rate of 100 Mb/s with 1500-byte PDUs, wrap occurs every 262,144 × 1500 × 8 / (100 × 106) = 31.46 seconds — versus 4,096 × 1500 × 8 / (100 × 106) = 0.491 seconds for 12-bit SN. The 18-bit SN dramatically reduces wrap frequency at high throughput.
§26.3 T311 Timer and Cell Selection During Re-establishment
After declaring RLF, the UE starts T311 and begins searching for a suitable cell. T311 defines the maximum time allowed for this search. If a suitable cell satisfying the S-criteria is found before T311 expires, the UE proceeds to the re-establishment procedure. If T311 expires without finding a suitable cell, the UE enters RRC_IDLE and the ongoing call is dropped.
"t311: timer for waiting for RRCReestablishment or RRCSetup message after cell selection during re-establishment procedure. Value in ms. Enumerated (ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000)." — TS 38.331 §6.3.2, TimersAndConstants IE (Release 17)
The T311 timer is configured by the network in the TimersAndConstants IE within RadioResourceConfigCommon. The default value in most deployments is 1000 ms, but this may be insufficient in environments with sparse coverage or high UE mobility, where the UE must spend additional time performing beam sweeping and cell selection measurements before finding a suitable target.
| T311 Value (ms) | IE Enum | Suitable Scenario | Risk if Too Short | Risk if Too Long |
|---|---|---|---|---|
| 1000 | ms1000 | Dense urban; cells within 1–2 s search | T311 expires before cell found → drop | — |
| 3000 | ms3000 | Urban; moderate cell density | Marginal for high-speed UE | UE stays in search 3 s before dropping |
| 5000 | ms5000 | Suburban; moderate density, some gaps | — | 5 s data interruption before drop |
| 10000 | ms10000 | Rural; wide-area coverage gaps | — | 10 s search phase hurts TCP retransmission |
| 15000 / 20000 / 30000 | ms15000–ms30000 | Very sparse coverage; NTN / high-altitude | — | Extended data outage; TCP timeout likely |
§26.4 Re-establishment Counters and KPIs (TS 28.552)
TS 28.552 defines the performance measurement framework for 5G NR. The re-establishment counter family falls within the RRC measurement group and provides the primary KPI indicators for call retainability analysis. All counters in this section are specified in TS 28.552 §5.1.1.6.
"L.RRC.ReEstabAtt: This measurement provides the number of RRC connection re-establishment attempts. Measurement subcounters may be used for different re-establishment causes." — TS 28.552 §5.1.1.6.1 (Release 17)
| Counter Name | TS 28.552 Reference | Trigger Condition | Counter Type |
|---|---|---|---|
| L.RRC.ReEstabAtt | §5.1.1.6.1 | gNB receives RRCReestablishmentRequest on SRB0 | Accumulative |
| L.RRC.ReEstabSucc | §5.1.1.6.2 | gNB sends RRCReconfiguration and receives RRCReconfigurationComplete | Accumulative |
| L.RRC.ReEstabFail.CellNotFound | §5.1.1.6.3 | gNB sends RRCReestablishmentReject because UE context is not found | Accumulative |
| L.RRC.ReEstabFail.T311Exp | §5.1.1.6.4 | T311 expires at the UE before a suitable cell is found (UE reports in RLF log) | Accumulative |
| L.RLF.Total | §5.1.1.5.1 | Any RLF event declared at gNB (T310 / RLC maxRetx / RACH fail) | Accumulative |
| L.RRC.ConnEstabAtt | §5.1.1.1.1 | New RRC Setup attempt (reference denominator for context) | Accumulative |
KPI Formulas — Re-establishment Success Rate and Call Drop Rate
Re-establishment Success Rate (RSSR):
RSSR (%) = (L.RRC.ReEstabSucc / L.RRC.ReEstabAtt) × 100
Re-establishment Failure Rate:
REFR (%) = 100 − RSSR
Context Not Found Ratio:
CNF (%) = (L.RRC.ReEstabFail.CellNotFound / L.RRC.ReEstabAtt) × 100
T311 Expiry Ratio:
T311R (%) = (L.RRC.ReEstabFail.T311Exp / L.RRC.ReEstabAtt) × 100
Retainability KPI contribution: Each RLF that does not result in a successful re-establishment contributes one call drop to the Retainability KPI defined in TS 28.552 §5.1.1.6.
Industry targets: RSSR > 90% (urban), > 80% (suburban), > 70% (rural). T311R < 5%. CNF < 10%.
Worked Example 26.2 — Re-establishment KPI Calculation
One-hour PM window, single gNB:
L.RRC.ReEstabAtt = 800
L.RRC.ReEstabSucc = 640
L.RRC.ReEstabFail.CellNotFound = 120
L.RRC.ReEstabFail.T311Exp = 40
Residual failures (other causes) = 800 − 640 − 120 − 40 = 0
RSSR = 640/800 × 100 = 80.0%
CNF ratio = 120/800 × 100 = 15.0% — exceeds 10% threshold; Xn context forwarding issue suspected
T311 Expiry ratio = 40/800 × 100 = 5.0% — at the threshold; T311 may be too short for this cell's coverage radius
Action: CNF = 15% → check Xn interface configuration and context forwarding. T311R = 5% → consider increasing T311 from 1000 ms to 3000 ms for cell sites with large coverage radius.
§26.5 Root Cause Analysis Framework
Low RSSR is almost always caused by one of three distinct failure modes, each identifiable by a specific counter ratio. The RCA process follows a structured counter-first approach: measure counter ratios → identify dominant failure mode → apply targeted fix → re-measure to confirm improvement.
| Symptom | Key Counter Ratio | Threshold | Probable Root Cause | Corrective Action |
|---|---|---|---|---|
| High CNF ratio | L.RRC.ReEstabFail.CellNotFound / L.RRC.ReEstabAtt | >10% | Xn context not forwarded; inter-gNB re-establishment without prior handover context | Enable Xn context forwarding; verify Xn link; add mobility-based context pre-caching |
| High T311 expiry ratio | L.RRC.ReEstabFail.T311Exp / L.RRC.ReEstabAtt | >5% | Coverage gaps; T311 too short for cell density; high-mobility UE outpacing search speed | Increase T311 (e.g., 1000→3000 ms); improve coverage; tune A3 offset to trigger HO earlier |
| Low RSSR at cell boundary | RSSR by cell sector | <80% | Mobility RLF: HO not triggered before UE enters deep fade; A3/TTT misconfiguration | Reduce A3 offset or TTT to trigger earlier HO; increase power for border cells |
| High RLF rate but acceptable RSSR | L.RLF.Total / hour | Absolute volume | Coverage holes; interference; T310 too short | Reduce RLF events first (coverage, T310 tuning); then address RSSR |
| RSSR degrades at peak hours | RSSR hourly trend | Hourly drop >5% | Xn congestion; gNB processing overload dropping re-estab context lookups | Check Xn signalling load; upgrade Xn capacity; load-balance gNB |
Worked Example 26.3 — RCA Case Study: L.RRC.ReEstabFail.CellNotFound = 45% of Failures
Observed counters (one gNB, 24-hour period):
L.RRC.ReEstabAtt = 2,400 | L.RRC.ReEstabSucc = 1,560 | RSSR = 65.0%
L.RRC.ReEstabFail.CellNotFound = 756 | CNF ratio = 756/2400 = 31.5%
L.RRC.ReEstabFail.T311Exp = 84 | T311R = 84/2400 = 3.5% (acceptable)
Analysis: CNF dominates at 31.5%. T311R is within tolerance. This pattern is characteristic of missing Xn context forwarding: the UE re-establishes at a neighbouring gNB that has no prior knowledge of the UE (no Xn handover was in progress before RLF).
Verification: Cross-check Xn interface statistics. If Xn Setup and X2-like UE context transfer counters show 0 for this cell pair, Xn is either not configured or the Xn path is down.
Corrective action: Enable Xn context forwarding between this gNB and the three neighbouring gNBs covering the same area. After fix, measure for 24 hours:
L.RRC.ReEstabFail.CellNotFound = 156 → CNF ratio = 6.5% (improvement: 31.5% → 6.5%)
L.RRC.ReEstabSucc = 2,184 → RSSR = 91.0% (improvement: 65% → 91%)
§26.6 PDCP Recovery Optimisation Parameters
Beyond the re-establishment procedure itself, the PDCP layer configuration significantly impacts recovery time and data integrity after re-establishment. Three parameters warrant particular attention: SN size, discardTimer, and integrityProtection.
| Parameter | TS 38.331 IE | Options | Re-establishment Impact | Recommendation |
|---|---|---|---|---|
| PDCP SN Size (DL/UL) | pdcp-SN-SizeDL / pdcp-SN-SizeUL | len12bits, len18bits | 12-bit wraps in <0.5 s at 100 Mb/s; 18-bit wraps in 31 s. More HFN sync risk with 12-bit. | Use 18-bit for eMBB DRBs; 12-bit acceptable for IoT / low-rate bearers |
| discardTimer | discardTimer | ms10 to ms10000 (17 values) | SDUs discarded if not delivered within discardTimer ms. Too short = data loss during re-establishment window | Set ≥ T311_max + avg_reestab_time. E.g., 300 ms for T311=1000ms networks |
| integrityProtection | integrityProtection | enabled (SRBs mandatory), optional (DRBs) | Adding integrity to DRBs increases PDCP PDU overhead and processing latency during re-establishment | Mandatory for SRB1/SRB2; enable for DRB only if regulatory requirement (e.g., URLLC) |
| t-Reordering | t-Reordering | ms0 to ms500 (21 values) | Controls how long receiver waits for out-of-order PDUs. Too short → premature delivery gap; too long → head-of-line blocking | 100–200 ms for eMBB; 50 ms for latency-critical bearers |
| rohc-Profiles | headerCompression | Profile 0x0001 (RTP/UDP), etc. | RoHC context must be re-initialised after re-establishment; adds first-packet overhead | Enable for VoNR; accept context reset overhead at re-establishment |
Worked Example 26.4 — discardTimer Sizing for Re-establishment Window
Network configuration: T311 = 1000 ms. Average re-establishment procedure time (from RRCReestablishmentRequest to RRCReconfigurationComplete) = 80 ms measured from drive tests.
Total recovery window = T311 + re-establishment time = 1000 + 80 = 1080 ms worst case (for a UE that finds a cell just before T311 expires).
Current discardTimer = 100 ms: SDUs submitted to PDCP during the RLF period are discarded after 100 ms. Since the re-establishment can take up to 1080 ms, all PDUs buffered during this window have already been discarded before re-establishment completes. Result: zero data recovery; TCP experiences a complete window loss and retransmits from the last ACK point.
Corrective action — increase discardTimer to 1500 ms: SDUs buffered during the RLF event survive the 1080 ms recovery window. After re-establishment, PDCP retransmits from RX_DELIV to TX_NEXT − 1. TCP sees only a brief reordering event rather than a full window reset.
Trade-off: Increasing discardTimer increases PDCP buffer memory requirements. For a DRB with UL peak rate 50 Mb/s, 1500 ms × 50 × 106 / 8 = 9.375 MB of buffer must be reserved. This is acceptable on modern gNB hardware but must be validated against the gNB buffer allocation per UE.
Result after fix: Drive test shows TCP goodput during re-establishment events improved by 40% due to data continuity. No buffer exhaustion observed at the measured UE count.
§26.7 End-to-End RCA Case Study: RLF to Data Resumption
This section presents a complete numerical timeline tracking the full sequence from RLF declaration through re-establishment, PDCP recovery, and data resumption. All values reference the counter framework from TS 28.552 and the procedure timings from TS 38.331 §5.3.7.
| Time (ms) | Event | 3GPP Reference | Counter / State Change |
|---|---|---|---|
| t = 0 | T310 expires after N310=6 OOS indications, no N311 recovery | TS 38.331 §5.3.10 | L.RLF.T310Exp += 1; T311 started; SRBs suspended |
| t = 0–15 | UE resets MAC, applies default PHY config, begins cell search | TS 38.331 §5.3.7.2 | PDCP TX_NEXT = 5200 preserved; RX_DELIV = 5185 (15 unACK'd PDUs buffered) |
| t = 15 | UE decodes SSB from neighbouring gNB; S-criteria satisfied | TS 38.304 §5.2.3.2 | T311 still running (15 ms elapsed of 1000 ms); cell selected |
| t = 18 | UE sends RRCReestablishmentRequest (SRB0/CCCH) | TS 38.331 §5.3.7.3 | L.RRC.ReEstabAtt += 1; shortMAC-I computed over C-RNTI + physCellId |
| t = 23 | gNB locates UE context via Xn (context forwarded from source gNB) | TS 38.300 §9.2.4 | shortMAC-I verified; no RRCReestablishmentReject issued |
| t = 28 | gNB sends RRCReestablishment; SRB1 activated with security | TS 38.331 §5.3.7.4 | nextHopChainingCount = 2; radioResourceConfigDedicated sent |
| t = 35 | UE sends RRCReestablishmentComplete on SRB1/DCCH | TS 38.331 §5.3.7.5 | SRBs resumed on new cell; PDCP retransmission of COUNT 5185–5199 begins |
| t = 45 | gNB sends RRCReconfiguration (DRBs restored) | TS 38.331 §5.3.5 | radioBearerConfig includes all DRBs; PDCP SN continuity maintained |
| t = 52 | UE sends RRCReconfigurationComplete | TS 38.331 §5.3.5.3 | L.RRC.ReEstabSucc += 1; all DRBs active; normal data flow resumed |
| t = 52–80 | PDCP retransmits 15 buffered PDUs (COUNT 5185–5199) | TS 38.323 §5.2.2 | RX_DELIV advances from 5185 to 5200; no gap at TCP layer |
| t = 80 | Normal data flow fully resumed; PDCP RX_NEXT = TX_NEXT = 5201 | TS 38.323 §7.1 | T311 elapsed = 80 ms (far below 1000 ms expiry). Total outage = 80 ms. |
The case study demonstrates that when all conditions are satisfied — Xn context forwarding active, T311 generous enough, discardTimer > recovery window — the total data interruption is as low as 80 ms. This is below the VoNR break threshold (TS 26.114 §7.3: <300 ms interruption for seamless voice) and invisible to most application-layer protocols.
Chapter Summary
RRC Re-establishment is the normative 3GPP mechanism that converts an RLF event into a brief data interruption rather than a full call drop. Its success depends on three parallel conditions: the UE finding a suitable cell within T311, the target gNB having a stored context (forwarded via Xn), and the PDCP layer preserving COUNT state so that in-flight data can be retransmitted without gaps at the application layer.
The TS 28.552 counter framework provides precise visibility into each failure mode. L.RRC.ReEstabFail.CellNotFound reveals coverage and Xn forwarding problems; L.RRC.ReEstabFail.T311Exp reveals cell density and T311 configuration issues. Together they decompose the overall RSSR metric into actionable sub-causes that can be addressed independently.
| Parameter / KPI | 3GPP Reference | Typical Value / Target | Direction |
|---|---|---|---|
| T311 timer | TS 38.331 §6.3.2 | 1000–3000 ms (urban); 5000–10000 ms (rural) | Increase if T311R > 5% |
| PDCP SN size (eMBB DRBs) | TS 38.331 §6.3.2 PDCP-Config | 18-bit preferred for >50 Mb/s bearers | Upgrade from 12-bit |
| discardTimer | TS 38.331 §6.3.2 PDCP-Config | 1500–3000 ms (eMBB) | Increase if < T311 + re-estab time |
| RSSR target (urban) | TS 28.552 §5.1.1.6 | > 90% | Higher is better |
| CNF ratio target | TS 28.552 §5.1.1.6.3 | < 10% | Lower is better |
| T311 expiry ratio target | TS 28.552 §5.1.1.6.4 | < 5% | Lower is better |
Drop Call Analysis Framework
Systematic drop call RCA from 3GPP first principles: taxonomy of all four abnormal-release categories, complete TS 28.552 counter framework (L.RRC.ConnAbnormRel.*), RLF and handover-failure interaction, TS 38.331 §5.3.10 / §5.5.4.4 parameter optimisation, and a full field-case study reducing DCR from 3.2% to 0.4% — with four worked numerical examples, eight tables
3GPP TS 28.552 §5.1.1.6 · TS 38.331 §5.3.10, §5.5.4.4 · TS 38.321 §5.1Chapter Learning Objectives
After completing this chapter, you will be able to:
- Define a drop call precisely and distinguish the three terminal conditions that end an established RRC connection abnormally
- Classify every drop event into one of four categories (Radio, Re-establishment Failure, Handover Failure, NGAP Error) using the TS 28.552 sub-counter framework
- Compute the Drop Call Rate (DCR) KPI from L.RRC.ConnAbnormRel.Total and interpret its denominator correctly
- Apply the five-step RCA methodology — counter isolation, spatial drill-down, temporal correlation, parameter audit, fix and validate — to any network cell
- Calculate A3 event trigger conditions from a3Offset, hysteresis, and timeToTrigger using the TS 38.331 §5.5.4.4 formula
- Identify the radio optimisation levers (tilt, power, ICIC, a3Offset, T310) and quantify their expected impact on DCR sub-categories
- Execute a complete end-to-end drop call investigation and verify a numerical before/after improvement against a DCR < 0.5% target
Introduction — What is a Drop Call?
A drop call is an RRC connection that was fully established, had data flowing on at least one Data Radio Bearer (DRB), and then terminated abnormally — that is, without a normal release initiated by either the UE (RRCRelease with cause other) or the network (NGAP UE Context Release with cause normal-release). From the retainability perspective a drop is the most damaging event: the user's session was active and was destroyed by a network or radio failure.
Three terminal conditions lead to an abnormal release after an RRC connection is established:
- Radio Link Failure (RLF): the physical connection between UE and gNB fails — T310 expires, RLC maxRetxThreshold is exceeded, or beam-failure RACH exhausts preambles. The UE attempts RRC Re-establishment (Chapter 26); if re-establishment also fails, the connection is lost permanently.
- Re-establishment failure: the UE declares RLF and initiates re-establishment but cannot find a suitable cell before T311 expires, or the target gNB rejects the request because it cannot locate the UE context. The connection falls back to RRC_IDLE and is counted as a drop.
- NGAP / AMF-initiated release: the 5G Core Network signals a UE Context Release Command via the NG Application Protocol (NGAP, TS 38.413). Causes include PDU session failure, AMF overload, authentication failure, or inactivity timer expiry in the AMF. From the radio access perspective this is an abnormal release because it terminates a DRB-active session.
A fourth operational path — handover execution failure — leads to RLF in the source cell when the UE has already been instructed to detach but the target cell fails to receive or process the connection. This is captured as a distinct TS 28.552 sub-counter and analysed separately in Section 5.
The primary retainability KPI is the Drop Call Rate (DCR):
DCR (%) = [ L.RRC.ConnAbnormRel.Total / (L.RRC.ConnEstabSucc + L.HO.ExecSucc) ] × 100
Denominator = all RRC connections that successfully passed the establishment or handover execution phase, i.e., all connections that had the opportunity to be dropped.
"L.RRC.ConnAbnormRel: This measurement provides the number of UE RRC connection abnormal releases, including the sub-measurements L.RRC.ConnAbnormRel.Radio, L.RRC.ConnAbnormRel.ReestabFail, L.RRC.ConnAbnormRel.HoFail, and L.RRC.ConnAbnormRel.NgapErr." — TS 28.552 §5.1.1.6.2 (Release 17)
§27.1 Drop Call Taxonomy
Every abnormal release can be assigned to one of four categories. This classification is not merely academic — each category points to a different optimisation domain and a different engineering action.
| Category | Root Cause | TS 28.552 Counter | Key Parameters | Primary Action |
|---|---|---|---|---|
| A — Radio | T310 expiry, RLC maxRetxThreshold exceeded, BFR RACH failure | L.RRC.ConnAbnormRel.Radio | T310, N310, N311, maxRetxThreshold | Coverage/interference improvement, antenna tilt, power optimisation |
| B — Re-estab Fail | T311 expiry before suitable cell found, UE context not available at target gNB | L.RRC.ConnAbnormRel.ReestabFail | T311, Xn interface, cell overlap | Improve cell overlap, enable Xn context sharing, adjust T311 |
| C — NGAP Error | AMF-initiated release, PDU session failure, authentication failure, inactivity | L.RRC.ConnAbnormRel.NgapErr | AMF timers, PDU session parameters | Core network investigation, NGAP trace analysis, NG-RAN interface check |
| D — HO Failure | HO execution failure — UE detaches from source, cannot connect to target → RLF | L.RRC.ConnAbnormRel.HoFail | a3Offset, hysteresis, TTT, X2/Xn timing | Mobility parameter optimisation, reduce too-late and too-early HO |
The four categories are mutually exclusive as counters — each event increments exactly one sub-counter — but their root causes are interconnected. For example, a too-late handover (Category D) is triggered by the same poor coverage condition that could produce a Category A Radio drop in the absence of a mobility trigger. Understanding this interdependence prevents over-attribution when DCR sub-counters are analysed in isolation.
§27.2 Counter Framework (TS 28.552)
The TS 28.552 measurement framework for drop calls is built around the L.RRC.ConnAbnormRel counter family. Each sub-counter corresponds to a specific failure mode and is incremented at the gNB when the corresponding event is observed. The counters are defined in TS 28.552 §5.1.1.6.
"L.RRC.ConnAbnormRel.Radio: The number of UE RRC connection abnormal releases caused by radio link failure. An abnormal release due to radio link failure is counted when the gNB releases the UE context due to radio link failure." — TS 28.552 §5.1.1.6.3 (Release 17)
| Counter | TS 28.552 Clause | Definition (abbreviated) | KPI Formula | Target Threshold |
|---|---|---|---|---|
L.RRC.ConnAbnormRel.Radio |
§5.1.1.6.3 | Abnormal releases caused by radio link failure at the gNB | Radio DCR (%) = counter / denom × 100 | < 0.30% |
L.RRC.ConnAbnormRel.ReestabFail |
§5.1.1.6.4 | Abnormal releases where re-establishment was attempted but failed | ReestabFail DCR (%) = counter / denom × 100 | < 0.05% |
L.RRC.ConnAbnormRel.HoFail |
§5.1.1.6.5 | Abnormal releases due to handover execution failure leading to RLF | HoFail DCR (%) = counter / denom × 100 | < 0.10% |
L.RRC.ConnAbnormRel.NgapErr |
§5.1.1.6.6 | Abnormal releases triggered by NGAP error indication from core network | NGAP DCR (%) = counter / denom × 100 | < 0.05% |
L.RRC.ConnAbnormRel.Total |
§5.1.1.6.2 | Sum of all four sub-counters (total abnormal releases) | DCR (%) = Total / (ConnEstabSucc + HO.ExecSucc) × 100 | < 0.50% |
The denominator for DCR is the sum of successfully established connections (L.RRC.ConnEstabSucc) and successfully executed inbound handovers (L.HO.ExecSucc). Both events represent moments when the gNB assumes responsibility for maintaining an active connection. Using this denominator correctly attributes drop risk to all connections the cell serves, not just those it originated.
Worked Example 27.1 — DCR Calculation from Raw Counters
Given (one-hour PM period, Cell XYZ):
- L.RRC.ConnEstabSucc = 8,450
- L.HO.ExecSucc = 3,200 (inbound HOs that successfully executed)
- L.RRC.ConnAbnormRel.Radio = 82
- L.RRC.ConnAbnormRel.ReestabFail = 18
- L.RRC.ConnAbnormRel.HoFail = 24
- L.RRC.ConnAbnormRel.NgapErr = 11
Step 1: Total = 82 + 18 + 24 + 11 = 135
Step 2: Denominator = 8,450 + 3,200 = 11,650
Step 3: DCR = 135 / 11,650 × 100 = 1.16%
Category breakdown: Radio = 60.7%, HoFail = 17.8%, ReestabFail = 13.3%, NGAP = 8.2%
Conclusion: DCR of 1.16% exceeds the 0.5% target. Radio layer (Cat A) is the dominant cause at 60.7%. Priority investigation: coverage and interference optimisation in Cell XYZ.
| KPI | Green (<) | Amber (<) | Red (≥) | Action on Red |
|---|---|---|---|---|
| Total DCR (%) | 0.50 | 1.00 | 1.00 | Immediate RCA — check all four sub-counters |
| Radio DCR (%) | 0.30 | 0.60 | 0.60 | Coverage audit — RSRP/SINR scan, tilt optimisation |
| HoFail DCR (%) | 0.10 | 0.20 | 0.20 | Mobility audit — a3Offset, TTT, ping-pong check |
| ReestabFail DCR (%) | 0.05 | 0.10 | 0.10 | Cell overlap check, T311 value audit, Xn status |
| NGAP DCR (%) | 0.05 | 0.10 | 0.10 | Core network trace, AMF logs, NG interface health |
§27.3 Systematic RCA Methodology
When a cell exceeds the DCR alarm threshold, the investigation follows five ordered steps. Skipping steps leads to misdiagnosis: for example, jumping directly to parameter tuning without first confirming the dominant category wastes effort on the wrong sub-system.
| Step | Activity | Tool / Data Source | Output |
|---|---|---|---|
| 1. Counter Category Isolation | Compare L.RRC.ConnAbnormRel sub-counters; identify dominant category (>50%) | PM export, counter dashboard | Dominant category identified (A/B/C/D) |
| 2. Spatial Analysis | Rank cells by DCR or sub-category KPI; map worst cells geographically | GIS tool, PM data, cell coordinates | Hot-spot cells / sectors identified |
| 3. Temporal Analysis | Plot counter vs. time-of-day, load (L.RRC.ConnMean), and weather events | PM hourly granularity | Load-driven vs. time-independent root cause |
| 4. Parameter Audit | Check T310, N310, maxRetxThreshold, T311, a3Offset, hysteresis, TTT against network-standard values | Configuration management export | Parameter deviations and non-compliant cells |
| 5. Fix and Validate | Apply corrective action; monitor DCR for 24–48 h post-change | PM 15-min / 1-h granularity | Before/after KPI comparison; close ticket if target met |
"The UE shall declare radio link failure and initiate the actions specified in clause 5.3.7.2: upon T310 expiry; upon random access problem indication from MAC layer while T300, T301, T304 or T311 is not running; or upon indication from RLC that the maximum number of retransmissions has been reached." — TS 38.331 §5.3.10.1 (Release 17)
§27.4 Radio Drop Optimisation
Category A (Radio) drops are caused by physical-layer degradation that exhausts the 3GPP timer and counter thresholds before the mobility sub-system can resolve the situation. Four engineering levers are available.
27.4.1 Coverage Optimisation
The primary cause of T310-based RLF is sustained low RSRP/SINR, typically resulting from coverage holes, antenna misalignment, or excessive inter-cell interference. The physical-layer Q_out threshold corresponds to an estimated PDCCH BLER > 2%, which at typical operating points occurs when SINR drops below approximately −6 dB (cell-edge conditions). Corrective actions are antenna downtilt (1–3°), transmit power adjustment, and neighbour-cell load balancing.
27.4.2 Interference Coordination
In TDD deployments, UL interference from adjacent-cell DL transmissions is a frequent Radio drop cause. Setting the UL/DL ratio to a consistent value across all cells in a cluster eliminates cross-link interference (CLI). Inter-Cell Interference Coordination (ICIC) via fractional frequency reuse reduces the effective interference density in the cell-edge region.
27.4.3 Mobility Timing Optimisation
If the RLC maxRetxThreshold-based drop (Category A) is occurring during handover command execution — i.e., the UE has received RRCReconfiguration but fails to access the target cell — the counter is correctly attributed to Category D (HoFail). However, if the UE is not in an active handover when maxRetxThreshold is exceeded, the root cause is radio quality. Increasing maxRetxThreshold extends the RLC AM retransmission budget, delaying RLF declaration and providing more time for the channel to recover — at the cost of increased latency for applications.
27.4.4 Timer Parameter Audit (T310)
T310 is started when N310 consecutive OOS indications are received. The table below shows the interaction between T310, N310, and worst-case RLF declaration time. A T310 too short declares RLF during brief fading events that would self-recover; a T310 too long delays UE release and wastes air interface resources.
Worked Example 27.2 — T310 Impact on RLF Declaration Time
Parameters: N310 = 6, T310 = 1000 ms, TTI = 1 ms, OOS indication period ≈ 20 ms (one radio frame at the monitoring periodicity per TS 38.133)
Time to start T310: N310 × 20 ms = 6 × 20 ms = 120 ms after first OOS indication
Maximum time to RLF: 120 ms + 1000 ms = 1120 ms ≈ 1.12 seconds
If T310 reduced to 200 ms: Maximum RLF time = 120 ms + 200 ms = 320 ms
Trade-off: A 1-second fading event (multi-path deep fade during UE movement) would trigger RLF with T310 = 200 ms but allow recovery with T310 = 1000 ms. Recommendation: keep T310 = 1000 ms for macro outdoor cells; T310 = 200 ms is appropriate only for indoor small cells with dense coverage overlap where recovery is fast.
| Parameter | TS Reference | Typical Issue | Corrective Action | Expected Impact |
|---|---|---|---|---|
| T310 | TS 38.331 §6.3.2 | Too short → drops on brief fades; too long → slow RLF detection | Set 1000 ms for macro, 200 ms for dense indoor | Reduce Cat A drops 10–20% |
| N310 | TS 38.331 §6.3.2 | Too low → T310 starts on single burst OOS | Increase from 2 to 6 for macro cells | Reduce spurious T310 starts |
| N311 | TS 38.331 §6.3.2 | Too high → recovery requires many consecutive IS signals | Set to 1 for fast recovery in good coverage | Stops T310, avoids unnecessary RLF |
| maxRetxThreshold (RLC) | TS 38.322 §7.3 | Too low → maxRetx-based RLF on brief congestion | Increase from 4 to 32 retransmissions | Reduce Cat A maxRetx drops |
| Antenna tilt | 3GPP TR 36.942 (coverage) | Undertilt → coverage hole; overtilt → weak edge signal | Drive test, adjust 1–3° mechanical/electrical tilt | RSRP improvement 3–6 dB at cell edge |
§27.5 Handover Failure and Drop Call Interaction
Handover failure (Category D) is the most complex drop call category because it involves three distinct failure modes — late HO, too-early HO, and HO to wrong cell — each requiring a different corrective action.
27.5.1 Late Handover
A late handover occurs when the serving cell SINR has already degraded below the physical-layer OOS threshold (PDCCH BLER > Q_out = 2%) before the A3 event triggers and a Measurement Report reaches the gNB. The gNB issues RRCReconfiguration (handover command), but the UE is already in OOS state. If T310 expires before the UE can access the target cell via RACH, RLF is declared in the source cell and the connection drops.
Cause: a3Offset too large, timeToTrigger too long, or A3 threshold set above the RLF threshold.
Fix: Reduce a3Offset (e.g., from 5 to 2 dB) and/or reduce TTT (e.g., from 320 ms to 160 ms) to trigger HO earlier while SINR is still acceptable.
27.5.2 Too-Early Handover
A too-early handover occurs when the UE is handed over to a target cell whose SINR is actually worse than the serving cell at the time of HO completion. The UE loses the connection shortly after the HO and immediately initiates RRC Re-establishment back to the source cell (or to a third cell). This pattern generates a characteristic "ping-pong" signature in counter data: high L.HO.ExecSucc to the target cell followed immediately by high L.RRC.ReEstabAtt with failedPCellId = target cell.
Fix: Increase a3Offset (add hysteresis) or increase TTT to require a longer period of sustained A3 condition before the HO is triggered.
27.5.3 A3 Event Condition Formula
"Event A3 (Neighbour becomes offset better than SpCell): The entry condition for this event is: Mn + Ofn + Ocn − Hys > Ms + Ofs + Ocs + Off, where Mn is the measurement result of the neighbour cell, Ms is the measurement result of the serving cell, Off is the A3-Offset, Hys is the hysteresis parameter, and Ofn/Ofs/Ocn/Ocs are cell and frequency offsets." — TS 38.331 §5.5.4.4 (Release 17)
Simplifying for the common case where frequency offsets (Ofn, Ofs) and cell-specific offsets (Ocn, Ocs) are zero, the A3 entry condition reduces to:
A3 Entry: RSRP_neighbour − hysteresis > RSRP_serving + a3Offset
Which rearranges to: RSRP_neighbour > RSRP_serving + a3Offset + hysteresis
Worked Example 27.3 — A3 Trigger Condition Calculation
Parameters: a3Offset = 3 dB, hysteresis = 1 dB, timeToTrigger (TTT) = 160 ms
A3 Entry condition:
RSRP_neighbour > RSRP_serving + 3 + 1 = RSRP_serving + 4 dB
Scenario: Serving RSRP = −95 dBm, Neighbour RSRP = −90 dBm
Check: −90 > −95 + 4 = −91? → −90 > −91 ✓ → A3 Entry condition MET
A3 Leave condition: RSRP_neighbour + hysteresis < RSRP_serving + a3Offset
→ −90 + 1 = −89 < −95 + 3 = −92? → −89 < −92? ✗ → A3 does NOT leave immediately
TTT: A3 condition must remain continuously satisfied for 160 ms before Measurement Report is sent. If UE is moving rapidly and Neighbour RSRP drops during the 160 ms window, the TTT restarts.
Conclusion: With these parameters, HO is triggered when the neighbour exceeds the serving cell by 4 dB for 160 ms continuously. The 4 dB margin is sufficient to avoid ping-pong while still triggering HO early enough to avoid RLF at cell edge.
§27.6 Field Investigation Case Study
The following case study applies the five-step RCA methodology to a real-world scenario where a cell is far above the DCR target. All numbers are consistent with 3GPP specifications and typical macro-cell network behaviour.
Scenario: Cell ABC — DCR = 3.2% (Target < 0.5%)
Step 1 — Counter Category Isolation
PM data for Cell ABC (one week average, 15-min granularity):
- L.RRC.ConnEstabSucc = 42,000/h, L.HO.ExecSucc = 8,000/h → Denominator = 50,000/h
- L.RRC.ConnAbnormRel.Radio = 1,120/h (70.0%)
- L.RRC.ConnAbnormRel.HoFail = 320/h (20.0%)
- L.RRC.ConnAbnormRel.ReestabFail = 160/h (10.0%)
- L.RRC.ConnAbnormRel.NgapErr = 0/h (0.0%)
- Total = 1,600/h → DCR = 1,600/50,000 × 100 = 3.20%
Finding: Radio (Cat A) = 70%, HoFail (Cat D) = 20%. Priority: radio coverage improvement, then mobility audit.
Step 2 — Spatial Analysis
Drive test and RF scan of Cell ABC sector: RSRP < −110 dBm observed in the southern edge of the sector footprint (approximately 400 m radius). Serving SINR < −3 dB in the same area. Neighbour cell (Cell XYZ) RSRP in the same area = −106 dBm but is not being triggered due to a3Offset = 5 dB configuration.
Step 3 — Temporal Analysis
Drop rate is uniformly distributed across all hours of day — not load-correlated. This confirms a structural coverage deficit (antenna alignment issue) rather than a capacity or interference spike.
Step 4 — Parameter Audit
a3Offset= 5 dB (standard = 3 dB) → HO triggers 2 dB later than optimal → Late HO riskhysteresis= 2 dB (standard = 1 dB) → further delays A3 entry by 1 dBtimeToTrigger= 320 ms (standard = 160 ms) → adds 160 ms delay in high-velocity UE scenariosT310= 500 ms (standard = 1000 ms) → T310 expires quickly, converting late HO into direct RLF
Step 5 — Corrective Actions and Verification
Action 1 (Coverage): Antenna mechanical downtilt adjusted from 3° to 5° in the problem sector → RSRP improvement of +4 dB at the cell edge (from −110 dBm to −106 dBm), SINR improves from −3 dB to +1 dB.
Action 2 (Mobility): a3Offset reduced from 5 dB to 3 dB; TTT reduced from 320 ms to 160 ms; T310 increased from 500 ms to 1000 ms.
Worked Example 27.4 — Before/After KPI Calculation
Before optimisation:
- DCR = 3.20% (1,600/50,000)
- Radio DCR = 2.24% (1,120/50,000)
- HoFail DCR = 0.64% (320/50,000)
- ReestabFail DCR = 0.32% (160/50,000)
After optimisation (measured 48 h post-change):
- L.RRC.ConnAbnormRel.Radio = 110/h (−90% reduction, coverage improvement primary driver)
- L.RRC.ConnAbnormRel.HoFail = 55/h (−83% reduction, mobility tuning)
- L.RRC.ConnAbnormRel.ReestabFail = 35/h (−78% reduction, indirect benefit of coverage improvement)
- Total = 200/h → DCR = 200/50,000 × 100 = 0.40%
Result: DCR reduced from 3.20% to 0.40%, achieving the <0.5% target. Radio DCR = 0.22% (within <0.30% green threshold).
| KPI | Before | After | Target | Status |
|---|---|---|---|---|
| Total DCR (%) | 3.20 | 0.40 | <0.50 | ✅ PASS |
| Radio DCR (%) | 2.24 | 0.22 | <0.30 | ✅ PASS |
| HoFail DCR (%) | 0.64 | 0.11 | <0.10 | ⚠️ AMBER |
| ReestabFail DCR (%) | 0.32 | 0.07 | <0.05 | ⚠️ AMBER |
| Cell-edge RSRP (dBm) | −110 | −106 | >−105 | ⚠️ Near target |
| Cell-edge SINR (dB) | −3 | +1 | >0 | ✅ PASS |
§27.7 Optimisation Checklist
The following eight-point checklist summarises the drop call analysis workflow with specific TS references and KPI thresholds for each action item.
| # | Checklist Item | TS Reference | KPI Threshold | Action if Threshold Exceeded |
|---|---|---|---|---|
| 1 | Compute total DCR and all four sub-KPIs from TS 28.552 counters | TS 28.552 §5.1.1.6 | DCR < 0.5% | Identify dominant sub-counter (>50%); target that category first |
| 2 | Check T310 value against network standard (macro: 1000 ms) | TS 38.331 §6.3.2 | T310 = 1000 ms for macro | Increase T310 — short values inflate Radio DCR during brief fades |
| 3 | Verify cell-edge RSRP and SINR via drive test or beam-level measurement | TS 38.215 §5.1 | RSRP > −105 dBm, SINR > 0 dB at cell edge | Antenna tilt optimisation; transmit power adjustment; neighbour audit |
| 4 | Verify a3Offset is not set too high (late HO risk) | TS 38.331 §5.5.4.4 | a3Offset ≤ 3 dB (macro) | Reduce a3Offset to 2–3 dB; verify A3 trigger margin > RLF RSRP threshold |
| 5 | Check timeToTrigger for high-velocity UEs | TS 38.331 §5.5.4.4 | TTT ≤ 160 ms for macro outdoor | Reduce TTT from 320 ms to 160 ms in cells with high mobility load |
| 6 | Verify RLC maxRetxThreshold is adequate | TS 38.322 §7.3 | maxRetxThreshold ≥ 8 for macro | Increase from 4 to 16 or 32 in coverage-limited cells |
| 7 | Check NGAP error counter — if non-zero, escalate to core network team | TS 28.552 §5.1.1.6.6, TS 38.413 | NGAP DCR < 0.05% | NGAP trace analysis, NG interface health check, AMF log investigation |
| 8 | Validate post-change: monitor DCR for 48 h at 15-min granularity | TS 28.552 §5.1.1.6.2 | DCR < 0.5% sustained over 24 h | If improvement insufficient, repeat from Step 2 with refined hypothesis |
| Formula / Concept | Expression | TS Reference |
|---|---|---|
| Drop Call Rate (DCR) | L.RRC.ConnAbnormRel.Total / (L.RRC.ConnEstabSucc + L.HO.ExecSucc) × 100% | TS 28.552 §5.1.1.6.2 |
| RLF declaration (T310) | N310 OOS → start T310 → if T310 expires before N311 IS → RLF | TS 38.331 §5.3.10.1 |
| A3 entry condition (simplified) | RSRP_neighbour > RSRP_serving + a3Offset + hysteresis (sustained ≥ TTT) | TS 38.331 §5.5.4.4 |
| RLC maxRetx RLF | If retx count > maxRetxThreshold → RLC indicates RLF to upper layers | TS 38.322 §5.3.1 |
| T310 RLF declaration time | t_RLF_max = N310 × T_OOS_period + T310 | TS 38.331 §5.3.10, TS 38.133 |
Chapter 27 Summary
- A drop call is an RRC connection that was established with DRBs active and terminated abnormally — without a normal 3GPP release procedure
- Three terminal conditions produce abnormal releases: Radio Link Failure (RLF), re-establishment failure, and NGAP/AMF-initiated release; handover execution failure constitutes a fourth operational category (Category D)
- TS 28.552 defines four sub-counters:
L.RRC.ConnAbnormRel.Radio,.ReestabFail,.HoFail, and.NgapErr— all summed in.Totalfor the DCR KPI - DCR = L.RRC.ConnAbnormRel.Total / (L.RRC.ConnEstabSucc + L.HO.ExecSucc) × 100%; target is <0.5%
- The five-step RCA methodology — counter isolation, spatial analysis, temporal analysis, parameter audit, fix and validate — ensures systematic root-cause identification before any parameter change
- Late handover (a3Offset too large, TTT too long) causes Category D drops; too-early handover causes ping-pong drops; both are resolved by tuning the A3 event parameters per TS 38.331 §5.5.4.4
- The A3 entry condition is: RSRP_neighbour > RSRP_serving + a3Offset + hysteresis, sustained for timeToTrigger milliseconds
- In the Cell ABC case study, reducing a3Offset from 5 to 3 dB combined with antenna downtilt reduced DCR from 3.2% to 0.4%, achieving the <0.5% target
NSA/EN-DC Architecture & Optimization
E-UTRA NR Dual Connectivity from first principles: TS 37.340 EN-DC architecture, SgNB addition/release procedures, B1/B2 measurement event triggers, TS 28.552 counter framework (L.EN_DC.*, L.DC.*), throughput optimization with split bearers and CA, and a complete field case study lifting EN-DC setup success rate from 72% to 96% — with four worked numerical examples, eight tables
3GPP TS 37.340 §4–§5 · TS 36.331 §5.3.5.5a · TS 38.331 §5.3.3a · TS 28.552 §5.1.3Chapter Learning Objectives
After completing this chapter, you will be able to:
- Describe the EN-DC architecture (Option 3/3a/3x) and distinguish the roles of MeNB, SgNB, EPC, and X2-C interface
- Trace the full SgNB Addition procedure: B1 event → Measurement Report → X2 signalling → RRC Reconfiguration → data flow
- Calculate B1 event trigger conditions from b1-ThresholdNR, hysteresis, and timeToTrigger using the TS 36.331 formula
- Interpret TS 28.552 counters L.EN_DC.AddAtt, L.EN_DC.AddSucc, L.EN_DC.SCGFail, and compute EN-DC SSSR and SCG Failure Rate
- Estimate peak DL throughput for EN-DC Option 3x with dual-CC NR SCG, 4-layer MIMO, and 256-QAM
- Diagnose and fix EN-DC SSSR below target using the counter → threshold → coverage → fix workflow
- Apply the optimization case study framework to reduce SCG failure rate from 15% to below 5%
Introduction — Why Dual Connectivity?
Non-Standalone (NSA) 5G NR is the dominant initial deployment option globally. Rather than building an entirely new 5G Core Network before launching NR services, operators attach NR cells as a Secondary Cell Group (SCG) to an existing LTE anchor — using the LTE control plane for session management and adding NR purely for user-plane throughput. This architecture, known as EN-DC (E-UTRA NR Dual Connectivity), is standardised in 3GPP TS 37.340 and is Option 3 in the TS 38.300 deployment classification.
The practical benefit is enormous: a UE with an active LTE connection can have NR carriers added dynamically when NR coverage is detected, immediately multiplying user-plane capacity without re-establishing the session. When the UE moves out of NR coverage, the SCG is released and the session continues on LTE — the user experiences no interruption, only a reduction in peak throughput.
EN-DC optimization centres on three questions:
- When to add the SCG: B1 threshold and time-to-trigger control the trade-off between user benefit and signalling overhead.
- How to keep the SCG stable: NR coverage quality, X2 interface health, and PDCP split ratios determine SCG failure rate.
- How much throughput the SCG delivers: NR bandwidth, MIMO rank, MCS, and Carrier Aggregation within the SCG determine user-plane gain.
"In the EN-DC architecture, the MN is an eNB and the SN is a gNB. The gNB may consist of a gNB-CU and one or more gNB-DUs. The eNB is connected to the EPC via the S1 interface. The X2 interface is used between the eNB and the gNB." — 3GPP TS 37.340 §4.1 (Release 16)
§28.1 EN-DC Architecture (TS 37.340)
EN-DC is one of three Option 3 variants defined in TS 37.340. All share the same control-plane anchor (MeNB → EPC via S1-MME) but differ in where user-plane traffic is split and which node connects to the S-GW via S1-U.
| Option | Name | S1-U anchor | PDCP split location | NR data path | Typical use |
|---|---|---|---|---|---|
| 3 | EN-DC Option 3 | MeNB only | MeNB PDCP | MeNB → X2-U → SgNB → UE via NR Uu | Low NR cell density; MeNB controls all traffic |
| 3a | EN-DC Option 3a | MeNB + SgNB | EPC/S-GW splits bearers | S-GW → S1-U SgNB → UE direct | Dedicated NR bearers; reduces X2-U load |
| 3x | EN-DC Option 3x | SgNB (primary for NR) | MeNB PDCP (split bearer) or SgNB PDCP (SCG bearer) | Split: MeNB splits; SCG bearer: SgNB directly from EPC | Most common; maximises NR throughput without full X2 load |
In Option 3x — the dominant NSA deployment — the MeNB maintains PDCP for split bearers (forwarding the NR portion over X2-U to the SgNB), while SCG-only bearers are anchored entirely at the SgNB with a direct S1-U to the S-GW. This lets operators route high-volume video streams directly to NR without burdening the X2 backhaul.
The key interfaces are:
- X2-C: Control plane between MeNB and SgNB. Carries SgNB Addition Request, SgNB Addition Request Acknowledge, SgNB Modification, and SgNB Release procedures.
- X2-U: User plane tunnels for split bearer traffic (GTP-U packets). Only present when split bearers are used (Option 3 and 3x).
- S1-MME: MeNB to MME only. SgNB has no S1-MME connection — NAS remains anchored at MeNB.
- Xn: In 5G SA, the equivalent interface between gNB and gNB. Not used in NSA EN-DC.
| Bearer type | PDCP location | Radio legs | Data plane flow | Typical traffic |
|---|---|---|---|---|
| MCG Bearer | MeNB | LTE only | S-GW → MeNB → UE via LTE | Control / signalling / VoLTE |
| SCG Bearer | SgNB | NR only | S-GW → SgNB → UE via NR | High-throughput DL data |
| Split Bearer (MCG leg) | MeNB | LTE leg of split | MeNB PDCP → LTE RLC → UE | Overflow / robustness |
| Split Bearer (SCG leg) | MeNB | NR leg of split | MeNB PDCP → X2-U → SgNB → UE via NR | Bulk NR throughput via PDCP |
§28.2 SgNB Addition Procedure (TS 36.331 §5.3.5.5a)
The SgNB addition procedure is initiated by the MeNB when a UE reports that an NR cell's signal quality exceeds a configured threshold. The trigger is measurement event B1 — defined as the secondary cell (NR) RSRP crossing above a threshold from below. The complete procedure involves three entities: UE, MeNB, and SgNB (and optionally EPC for S1-U setup).
"Event B1: Neighbour becomes offset better than threshold. The UE shall trigger a measurement report when [...] Ms − Hys > Thresh, where Ms is the measurement result of the neighbour cell not scaled by any measurement bandwidth [...] and Thresh is the threshold for this event." — 3GPP TS 36.331 §5.5.4.5 (Release 16)
The B1 trigger condition for NR RSRP is:
Enter B1 condition: NR-RSRP − Hysteresis > b1-ThresholdNR
Leave B1 condition: NR-RSRP + Hysteresis < b1-ThresholdNR
Trigger only fires after the condition holds continuously for timeToTrigger milliseconds.
| Parameter | TS 36.331 IE name | Typical range | Default / typical | Effect of increasing |
|---|---|---|---|---|
| NR RSRP threshold | b1-ThresholdNR (SS-RSRP) | −156 to −17 dBm (1 dB step) | −100 dBm | Fewer UEs qualify; higher SCG quality; more stable |
| Hysteresis | hysteresis | 0 to 15 dB (0.5 dB step) | 1 dB (2 units) | Wider deadband; fewer add/release oscillations |
| Time to trigger | timeToTrigger | 0 ms – 5120 ms | 40 ms | More stable trigger; slower SCG addition |
| Usage condition | usageCondition-r16 | RSRP / RSRQ / SINR | RSRP | RSRQ or SINR-based reduces SCG addition in congested areas |
Worked Example 28.1 — B1 Trigger RSRP Calculation
Given: b1-ThresholdNR = −100 dBm, hysteresis = 1 dB, timeToTrigger = 40 ms
Enter condition: NR-RSRP − 1 > −100 → NR-RSRP > −99 dBm
Leave condition: NR-RSRP + 1 < −100 → NR-RSRP < −101 dBm
Deadband: −101 to −99 dBm (2 dB total, equal to 2 × hysteresis)
Interpretation: The UE must observe NR-RSRP > −99 dBm continuously for 40 ms before sending a Measurement Report triggering SgNB addition. Once added, the SCG is retained unless RSRP drops below −101 dBm (B1 leave) or another release trigger fires. The 40 ms TTT prevents SCG addition in deep fades that would cause immediate SCG failure.
§28.3 SgNB Release Procedure
SgNB release returns the UE to LTE-only operation. Release can be initiated by the MeNB, the SgNB, or the UE (via an SCG failure report). The most impactful release type for optimization is abnormal SCG release — caused by SCG radio link failure — which is directly counted by L.EN_DC.SCGFail.
"The UE shall submit the SCGFailureInformationNR to the serving MN. The SCGFailureInformationNR includes the failureType which is one of: t310-Expiry, randomAccessProblem, rlc-MaxNumRetx, scg-ChangeFailure, srb3-IntegrityFailure." — 3GPP TS 38.331 §5.3.10a (Release 16)
| Trigger | Initiator | TS 38.331 / TS 37.340 cause | TS 28.552 counter | Primary fix |
|---|---|---|---|---|
| NR T310 expiry | UE (SCG) | t310-Expiry (SCGFailureInformationNR) | L.EN_DC.SCGFail | Improve NR coverage; check T310 value |
| NR RLC maxRetxThreshold | UE (SCG) | rlc-MaxNumRetx | L.EN_DC.SCGFail | Reduce interference; check NR UL power control |
| NR Random Access failure | UE (SCG) | randomAccessProblem | L.EN_DC.SCGFail | Improve RACH coverage; adjust preamble power |
| A2 event (LTE coverage degrades) | MeNB | MeNB decision: SgNB Release Req | L.EN_DC.RelNorm | Balance A2 threshold vs SCG coverage area |
| MeNB-initiated (NR not needed) | MeNB | notNeeded / unspecified | L.EN_DC.RelNorm | Review PDCP split ratio logic |
Worked Example 28.2 — SCGFailureInformationNR Message Analysis
Scenario: A UE on NR SCG (NR-RSRP = −108 dBm) experiences T310 expiry after N310 = 10 consecutive out-of-sync indicators, TTT T310 = 200 ms.
SCGFailureInformationNR content (TS 38.331 §6.3.4):
- failureType: t310-Expiry
- measResultSCG: NR PCell RSRP = −108 dBm, RSRQ = −14 dB, SINR = −3 dB
- measResultNeighCells: best NR neighbour RSRP = −112 dBm (no suitable cell)
Counter impact: This event increments L.EN_DC.SCGFail by 1 and L.EN_DC.RelAbnorm by 1.
Root cause: NR-RSRP of −108 dBm is below a well-tuned B1 threshold of −105 dBm. The UE was admitted to SCG with marginal NR signal and immediately entered T310 expiry. Fix: raise B1-ThresholdNR from −110 to −105 dBm to prevent SCG addition when NR RSRP is marginal.
SCG Failure Rate impact: If L.EN_DC.AddSucc = 1,000 and L.EN_DC.SCGFail drops from 150 to 40 after the fix: Rate = 40/1000 × 100% = 4.0% (from 15.0%).
§28.4 EN-DC KPI Framework (TS 28.552)
The TS 28.552 performance measurement specification defines a complete counter family for EN-DC. These counters are reported by the MeNB (for X2-level events) and the SgNB (for SCG radio events). Operators compute two headline KPIs from this family.
EN-DC Setup Success Rate (SSSR)
EN-DC SSSR (%) = L.EN_DC.AddSucc / L.EN_DC.AddAtt × 100%
Target: > 95% | Alarm: < 90%
SCG Failure Rate
SCG Fail Rate (%) = L.EN_DC.SCGFail / L.EN_DC.AddSucc × 100%
Target: < 5% | Alarm: > 10%
| Counter name | Measurement type | TS 28.552 ref | Triggering event | Notes |
|---|---|---|---|---|
L.EN_DC.AddAtt |
SgNB addition attempts | §5.1.3.1 | SgNB Addition Request sent by MeNB | Denominator of SSSR; high value indicates good B1 trigger rate |
L.EN_DC.AddSucc |
SgNB addition successes | §5.1.3.2 | SgNB Reconfiguration Complete received at MeNB | Numerator of SSSR; denominator of SCG Fail Rate |
L.EN_DC.AddFail |
SgNB addition failures | §5.1.3.3 | SgNB Addition Request Reject or timeout | Split by cause: radioNetwork, transport, protocol, misc |
L.EN_DC.RelAbnorm |
Abnormal SgNB releases | §5.1.3.5 | SgNB Release Request with abnormal cause | Includes SCG failures + UE context issues |
L.EN_DC.SCGFail |
SCG failure count | §5.1.3.6 | SCGFailureInformationNR received at MeNB | Numerator of SCG Fail Rate; split by failureType |
L.DC.SplitBearerAct |
Split bearer activations | §5.1.3.8 | Split bearer activated on MCG+SCG simultaneously | Indicates PDCP split bearer usage; Option 3x |
L.EN_DC.RelNorm |
Normal SgNB releases | §5.1.3.4 | SgNB Release Request with normal cause (UE moved out of NR) | High value is expected and normal; not a problem indicator |
L.RRC.ConnEstabAtt.ENDCCapable |
RRC establishment by EN-DC capable UEs | §5.1.1.3 | RRC Connection Setup Complete with EN-DC capability | Denominator pool for EN-DC eligible UEs |
§28.5 EN-DC Throughput Optimization
The key throughput gain in EN-DC comes from aggregating LTE MCG capacity with NR SCG capacity. In Option 3x the PDCP split ratio dynamically allocates traffic between the two legs based on radio conditions. Maximising NR throughput requires three simultaneously good conditions: wide NR bandwidth (one or more NR carriers in the SCG), high MIMO rank, and high MCS from good NR SINR.
"The MN may configure flow control for a split bearer by transmitting a Data Volume Reporting Request to the SN. The SN shall report to the MN the available SN PDCP capacity for the associated split bearer." — 3GPP TS 37.340 §5.3 (Release 16)
When NR Carrier Aggregation (NR-CA) is configured within the SCG, the UE can receive on an NR Primary Cell (NR PCell) and one or more NR Secondary Cells (SCells) simultaneously. This is standard intra-band or inter-band NR-CA (TS 38.300 §6.7) and further multiplies SCG capacity.
Worked Example 28.3 — Peak DL Throughput: NR SCG with 2-CC CA, 4-layer MIMO, 256-QAM
NR SCG configuration:
- CC1 (NR PCell in SCG): 100 MHz BW, 30 kHz SCS → 66 RBs effective scheduling per slot
- CC2 (NR SCell in SCG): 80 MHz BW, 30 kHz SCS → 51 RBs effective scheduling per slot
- MIMO: 4 layers (rank 4), 256-QAM → bits per RE = log₂(256) × 4 = 8 × 4 = 32
- Coding rate: 948/1024 (highest MCS in TS 38.214 Table 5.1.3.1-2)
- PDSCH REs per RB per slot: 12 subcarriers × 12 data symbols = 144 RE (DMRS removed, PDCCH overhead excluded)
- Slots per second (30 kHz SCS): 2000 slots/s
CC1 raw DL throughput:
Tput_CC1 = 66 RB × 144 RE/RB × 32 bit/RE × (948/1024) × 2000 slots/s
= 66 × 144 × 32 × 0.926 × 2000 = 66 × 144 × 32 × 1852 bit/s
= 66 × 144 = 9,504 RE/slot × 32 = 304,128 bits/slot × 0.926 = 281,622 bits/slot × 2000 = 563.2 Mbps
CC2 raw DL throughput:
Tput_CC2 = 51 × 144 × 32 × 0.926 × 2000 = 51 × 144 = 7,344 × 32 = 235,008 × 0.926 = 217,617 × 2000 = 435.2 Mbps
Total NR SCG peak DL: 563.2 + 435.2 = 998.4 Mbps ≈ 1.0 Gbps
With LTE MCG (e.g. 20 MHz LTE, 2×2 MIMO, 64-QAM): ~150 Mbps additional
EN-DC peak DL (theoretical): ≈ 1.15 Gbps — more than 7× the LTE-only baseline of ~150 Mbps.
Note: Practical throughput is 50–70% of peak due to scheduling efficiency, HARQ retransmissions, overhead channels, and UE capability limits.
§28.6 Common EN-DC Failure Causes and Fixes
EN-DC failures fall into three categories: addition failures (UE never gets NR), SCG instability (UE gets NR but quickly loses it), and throughput shortfall (UE is on EN-DC but NR contribution is low). Each maps to a distinct counter signature and a specific engineering fix.
Worked Example 28.4 — Diagnosing Low EN-DC SSSR
Observation: Cell cluster SSSR = 68%, L.EN_DC.AddAtt = 5,000, L.EN_DC.AddSucc = 3,400, L.EN_DC.AddFail = 1,600
Step 1 — Classify failures: L.EN_DC.AddFail split: radioNetwork = 1,200 (75%), transport = 400 (25%)
Step 2 — Radio network cause: radioNetwork failures → SgNB rejected because of insufficient NR radio resources or UE NR RSRP too low at time of addition request.
Step 3 — Check B1 threshold: b1-ThresholdNR = −108 dBm → too aggressive. UEs at −108 dBm attempt SCG addition but NR quality is marginal → SgNB returns "radioNetwork: unspecified" because NR HARQ initial error rate is >50%.
Fix: Raise b1-ThresholdNR from −108 to −103 dBm. After change: L.EN_DC.AddAtt drops to 3,800 (fewer attempts, higher quality pool), L.EN_DC.AddSucc = 3,700, SSSR = 97.4%.
Trade-off: Fewer UEs qualify for EN-DC (3,800 vs 5,000) but those that do are stable. Average NR data volume per UE increases because qualified UEs have better SINR.
| Symptom | Key counter | Probable cause | Recommended fix |
|---|---|---|---|
| SSSR < 90%, few additions | L.EN_DC.AddAtt low | B1 threshold too high; UEs rarely qualify | Lower b1-ThresholdNR by 3–5 dBm; check NR coverage vs LTE footprint |
| SSSR < 90%, many failures | L.EN_DC.AddFail / radioNetwork high | B1 threshold too low; marginal NR quality at addition time | Raise b1-ThresholdNR; verify NR cell power and tilt |
| SCG Fail Rate > 10% | L.EN_DC.SCGFail / L.EN_DC.AddSucc high | NR coverage gap in EN-DC qualifying area; RSRP quickly degrades after addition | Raise b1-ThresholdNR; improve NR physical coverage; reduce NR cell azimuth overlap |
| Ping-pong SCG add/release | L.EN_DC.AddAtt and L.EN_DC.RelNorm both very high | B1 enter and leave thresholds too close; hysteresis too small | Increase hysteresis from 1 to 2–3 dB; increase timeToTrigger from 40 to 100 ms |
| X2-related failures | L.EN_DC.AddFail / transport high | X2 interface congestion or misconfiguration between MeNB and SgNB | Audit X2 SCTP association; check IP routing; review X2 capacity |
| Low NR throughput despite active EN-DC | L.DC.SplitBearerAct low | PDCP split ratio biased to LTE; SCG HARQ error rate high | Review PDCP split algorithm; improve NR UL power control; check NR interference |
§28.7 Optimization Case Study — Lifting SSSR from 72% to 96%
This case study applies the EN-DC optimization framework end-to-end. The starting point is a cluster of 12 NR cells with an EN-DC SSSR of 72% against a target of > 95%.
Baseline Measurements
| Counter | Value | KPI | Status |
|---|---|---|---|
| L.EN_DC.AddAtt | 10,000 | — | Reference |
| L.EN_DC.AddSucc | 7,200 | SSSR = 72.0% | FAIL (target >95%) |
| L.EN_DC.AddFail | 2,800 | Fail rate = 28% | FAIL |
| L.EN_DC.SCGFail | 1,080 | SCG Fail Rate = 15% | FAIL (target <5%) |
| L.EN_DC.RelAbnorm | 1,500 | Abnorm Release Rate = 20.8% | FAIL |
| Average NR RSRP at SCG addition | −106 dBm | — | Marginal |
| b1-ThresholdNR (configured) | −110 dBm | Enter = −109 dBm | Too aggressive |
Root Cause Analysis
With 2,800 failures and an average NR RSRP of −106 dBm at time of addition (only 4 dB above the b1-ThresholdNR enter condition at −109 dBm), the root cause is clear: the B1 threshold admits UEs with marginal NR signal. These UEs pass the B1 filter but arrive at the SgNB with insufficient link budget to sustain NR data transmission — resulting in immediate SCG failure (T310 expiry within seconds of addition) or SgNB rejecting the request outright due to low SINR.
The counter evidence chain is:
- L.EN_DC.AddFail / radioNetwork = 1,900 → SgNB rejection of marginal UEs
- L.EN_DC.SCGFail / t310-Expiry = 870 → NR link failure shortly after addition
- L.EN_DC.SCGFail / randomAccessProblem = 210 → NR RACH failure on marginal coverage boundary
Fix Applied
Lower b1-ThresholdNR from −110 dBm to −105 dBm (5 dB stricter). New enter condition: NR-RSRP > −104 dBm. This increases the minimum NR RSRP required before SCG addition by 5 dB, moving the admission boundary inward. The qualifying area shrinks by approximately 30% in radius (Friis path loss: 5 dB corresponds to 30% distance reduction in a macro environment with ~35 dB/decade slope), but all admitted UEs have adequate NR link budget.
"The measurement results used in the event evaluation shall be based on [...] layer 3 filtered results. The filtering is performed in the UE using the following formula: F_n = (1 − a) × F_{n−1} + a × M_n, where M_n is the latest measurement result from layer 1, F_n is the updated filtered measurement result used for event evaluation." — 3GPP TS 38.331 §5.5.3.2 (Release 16)
Post-Optimization Results
| Counter | Before | After | KPI change | Status |
|---|---|---|---|---|
| L.EN_DC.AddAtt | 10,000 | 7,100 | −29% (fewer but qualified UEs) | Expected |
| L.EN_DC.AddSucc | 7,200 | 6,830 | SSSR: 72.0% → 96.2% | PASS |
| L.EN_DC.AddFail | 2,800 | 270 | Fail rate: 28% → 3.8% | PASS |
| L.EN_DC.SCGFail | 1,080 | 273 | SCG Fail Rate: 15% → 4.0% | PASS |
| L.EN_DC.RelAbnorm | 1,500 | 310 | −79% | PASS |
| Average NR RSRP at SCG addition | −106 dBm | −100 dBm | +6 dBm improvement in pool quality | Good |
Lessons Learned
- B1 threshold is the master lever: A 5 dB change in b1-ThresholdNR reduced SSSR failure by 90% (2,800 → 270 failures). No physical network change was required.
- Fewer additions ≠ worse performance: The number of EN-DC additions dropped by 29% but quality-adjusted throughput per user improved because admitted UEs had 6 dB better RSRP.
- SCG failure rate and SSSR are correlated but not identical: SSSR counts X2-level failures (before SCG is active); SCG Fail Rate counts radio failures after SCG is active. Both improved because the same root cause (marginal NR admission) drove both.
- Monitoring period matters: Changes to B1 thresholds take 2–3 days to stabilize in counter data as UEs gradually re-qualify. Always observe a full busy-hour cycle before declaring a fix complete.
Chapter 28 Summary
- EN-DC (Option 3x) is the dominant NSA architecture: LTE MeNB anchors control plane; NR SgNB provides high-throughput user plane. The PDCP split bearer at MeNB routes NR-bound traffic over X2-U to the SgNB (TS 37.340 §4.1).
- SgNB addition is triggered by B1 event (NR RSRP above threshold). The trigger condition is: NR-RSRP − hysteresis > b1-ThresholdNR, held for timeToTrigger milliseconds (TS 36.331 §5.5.4.5).
- SCG failures are reported via SCGFailureInformationNR (TS 38.331 §5.3.10a) with failureType values: t310-Expiry, randomAccessProblem, rlc-MaxNumRetx. Each increments L.EN_DC.SCGFail.
- The two headline KPIs are EN-DC SSSR = L.EN_DC.AddSucc / L.EN_DC.AddAtt (target > 95%) and SCG Failure Rate = L.EN_DC.SCGFail / L.EN_DC.AddSucc (target < 5%).
- Peak NR SCG throughput with 2-CC CA (100+80 MHz), 4-layer MIMO, 256-QAM reaches ~1.0 Gbps, giving an EN-DC combined peak of ~1.15 Gbps vs an LTE-only baseline of ~150 Mbps.
- The most impactful single optimization is b1-ThresholdNR: raising it by 5 dBm eliminated 90% of SgNB addition failures in the case study, lifting SSSR from 72% to 96.2% and SCG Failure Rate from 15% to 4%.
VoNR — Voice over New Radio
IMS voice carried natively over 5G NR SA: TS 23.502 architecture, PDU session bearer model, SIP/RTP call setup procedure, 5QI=1 radio QoS, EVS/AMR codec mathematics, DTX/CNG silence suppression, TS 28.552 KPI framework (L.VoNR.*, L.RRC.*, L.QoS.*), SPS scheduling optimisation, and a complete field case study lifting VoNR SSR from 88% to 99.3% — with four worked numerical examples, eight tables, and four verbatim 3GPP spec quotes
3GPP TS 23.502 §4.9 · TS 26.114 §6.3 §9 · TS 38.331 §5.3.3 · TS 28.552 §5.1.1.3Chapter Learning Objectives
After completing this chapter, you will be able to:
- Describe the VoNR IMS architecture (P-CSCF, S-CSCF, PCF, SMF) and the always-on IMS PDU session model defined in TS 23.502 §4.9
- Trace the complete VoNR call setup procedure: SIP INVITE → 183 → PRACK → 200 OK → ACK → RTP, including the 5QI=1 bearer activation triggered by the PCF
- Calculate RTP payload size, per-packet bit rate, and effective throughput for EVS and AMR-WB codec modes using the TS 26.114 formula
- Explain Discontinuous Transmission (DTX) and Comfort Noise Generation (CNG) and compute effective codec bit rate with a 50% silence ratio
- Define and compute the TS 28.552 KPIs: VoNR Setup Success Rate, VoNR Drop Rate, E2E Delay, and Packet Loss Rate
- Select and tune optimisation parameters — SPS configuration, PDCP discard timer, HARQ retransmission limit, T310 — to meet ITU-T G.107 R-value targets
- Apply the counter-driven case study workflow to diagnose and fix VoNR SSR below target using L.VoNR.* and L.QoS.* counters
Introduction — VoNR: Native Voice on 5G SA
Voice over New Radio (VoNR) is the native voice service for 5G Standalone (SA) deployments. Unlike Voice over LTE (VoLTE), which could fall back to Circuit-Switched Fallback (CSFB) or Enhanced Packet-Switched Fallback (EPSFB), VoNR carries IMS voice entirely over the 5G NR air interface and the 5G Core Network (5GC) — no EPS anchor is involved. The call is established as a standard IMS session using SIP, with the media stream transported as RTP/RTCP over a dedicated QoS Flow mapped to a 5QI=1 bearer.
VoNR delivers measurable improvements over VoLTE across four dimensions: latency (NR HARQ round-trip is shorter, and 5GC control-plane procedures are faster than EPC); spectral efficiency (massive MIMO beamforming and flexible numerology allow tighter packing of periodic voice packets); codec quality (EVS wideband codec at up to 23.85 kbps replaces AMR-WB at comparable bitrates with lower MOS degradation at packet loss); and network simplicity (no need to maintain LTE anchor cells or CSFB/EPSFB fallback paths).
VoNR optimisation centres on three operational questions:
- Can the call be set up? The 5QI=1 DRB must be established within the IMS session setup window, requiring healthy IMS PDU session, PCF QoS authorisation, and adequate radio coverage.
- Will packet delay meet the 100 ms PDB? HARQ retransmission depth, PDCP discard timer, scheduling priority, and backhaul latency all consume budget from the 100 ms packet delay budget.
- Will MOS remain acceptable under load? Packet loss rate, jitter, and codec mode are the primary levers; Semi-Persistent Scheduling (SPS) directly reduces PDCCH overhead for periodic voice packets.
"The UE shall maintain an always-on PDU Session for IMS voice. The PDU Session shall be established during the Registration procedure and shall remain active for the duration of the registration." — 3GPP TS 23.502 §4.9.1 (Release 17)
§29.1 VoNR Architecture (TS 23.502 §4.9)
VoNR reuses the standard IMS architecture defined for VoLTE, but with the 5G Core replacing the EPC. The UE registers with the IMS core through a P-CSCF (Proxy-Call Session Control Function) discovered via PCO (Protocol Configuration Options) or DNS during initial 5G registration. A dedicated IMS PDU session is established at attach time and kept always-on for the lifetime of the UE registration. This always-on PDU session carries SIP signalling on a 5QI=5 QoS Flow and, when a voice call is active, RTP media on a dynamically activated 5QI=1 QoS Flow.
The PCF (Policy Control Function) is the QoS arbiter. When the S-CSCF sends a SIP 183 Session Progress to the P-CSCF, the P-CSCF requests QoS authorisation from the PCF using the Rx interface (or N5 in 5GC terminology). The PCF generates a QoS policy rule and delivers it to the SMF (Session Management Function), which installs the 5QI=1 Flow on the UPF and triggers the gNB to establish a dedicated Data Radio Bearer (DRB) for the voice media.
| 5QI | Service type | Resource type | Priority level | Packet delay budget | Packet error rate | Notes |
|---|---|---|---|---|---|---|
| 1 | Conversational voice | GBR | 2 | 100 ms | 10-2 | Voice media (RTP). May Pre-empt. |
| 2 | Conversational video (live) | GBR | 4 | 150 ms | 10-3 | Video call (optional with VoNR) |
| 5 | IMS signalling | Non-GBR | 1 | 100 ms | 10-6 | SIP over IMS PDU session |
| 65 | Mission critical push-to-talk | GBR | 0.7 | 75 ms | 10-2 | MCPTT (not standard VoNR) |
| 7 | Voice (non-real-time) | Non-GBR | 7 | 100 ms | 10-3 | Non-GBR fallback only |
The IMS P-CSCF is reached via the IMS PDU session. For 5G SA, the P-CSCF address is provisioned in the UE via PCO IE in the PDU Session Establishment Accept message from the SMF. The I-CSCF (Interrogating-CSCF) routes SIP REGISTER messages to the appropriate S-CSCF in the home network. The S-CSCF (Serving-CSCF) maintains the IMS registration and applies service logic through Application Servers (AS) such as the Telephony Application Server (TAS) for supplementary services.
| Network function | Role | Interface to 5GC | Key procedure |
|---|---|---|---|
| P-CSCF | First IMS contact point; SIP proxy; QoS gating via PCF | N5 (to PCF) | AA-Request to PCF on 183; forwards SIP to S-CSCF |
| I-CSCF | Query HSS to find S-CSCF for REGISTER | Cx (to HSS/UDM) | UAR/UAA with UDM during registration |
| S-CSCF | Registers UE; applies service triggers; routes INVITE | Cx, ISC (to AS) | SAR/SAA; 3rd-party REGISTER to TAS; routes INVITE |
| TAS / AS | Supplementary services: CFU, call hold, CLIR, CLIP | ISC (Mw) | iFC trigger matching; SIP re-routing |
| PCF | QoS policy decisions for IMS session | N5 (P-CSCF), N7 (SMF) | Authorise 5QI=1 GBR flow; supply AMBR limits |
| SMF | PDU session management; install QoS rules on UPF+gNB | N4 (UPF), N1/N2 (AMF) | PDU Session Modification; N2 QoS Flow Update |
§29.2 VoNR Call Setup Procedure (TS 23.502 §4.9.2)
"IMS voice session establishment shall follow the procedure in TS 23.228. The 5G System shall support the establishment of a QoS Flow with 5QI=1 for the IMS voice media stream. The PCF shall authorise the QoS Flow upon receiving an AA-Request from the P-CSCF, and the SMF shall modify the PDU Session to include the new QoS Flow." — 3GPP TS 23.502 §4.9.2.2 (Release 17)
The VoNR call setup interleaves two protocol stacks: the SIP/IMS stack (application layer) and the 5G QoS/Radio stack (transport layer). Both must complete successfully before the first RTP packet can flow. The critical path is: SIP INVITE → PCF QoS authorisation → SMF PDU session modification → gNB DRB establishment → 200 OK → ACK → RTP start.
| Step | Message | Direction | Protocol layer | Purpose |
|---|---|---|---|---|
| ① | SIP INVITE (SDP offer) | UE → P-CSCF → S-CSCF | SIP/IMS | Initiate voice session; describe codec capabilities in SDP |
| ② | INVITE forwarded | P-CSCF → S-CSCF → B-party | SIP/IMS | Route call to terminating side |
| ③ | PCF AA-Request | P-CSCF → PCF → SMF | Diameter Rx / N5 | Request 5QI=1 GBR authorisation for media stream |
| ④ | 183 Session Progress | S-CSCF → UE | SIP/IMS | Early media; SDP answer; triggers PRACK |
| ⑤ | N2 PDU Session Mod Request | AMF → gNB | NGAP (N2) | Instruct gNB to add 5QI=1 DRB for RTP flow |
| ⑥ | RRCReconfiguration | gNB → UE | RRC (TS 38.331) | Establish dedicated DRB; configure SPS if enabled |
| ⑦ | RRCReconfigurationComplete | UE → gNB | RRC (TS 38.331) | Confirm DRB is active |
| ⑧ | SIP PRACK | UE → S-CSCF | SIP/IMS | Reliable provisional response acknowledgement |
| ⑨ | 200 OK (PRACK) | S-CSCF → UE | SIP/IMS | Acknowledge PRACK |
| ⑩ | 200 OK (INVITE) | S-CSCF → UE | SIP/IMS | Call accepted; final response |
| ⑪ | SIP ACK | UE → S-CSCF | SIP/IMS | Acknowledge 200 OK; complete three-way handshake |
| ⑫ | RTP media stream | UE ↔ UPF ↔ B-party | RTP/RTCP | Bidirectional voice media begins on 5QI=1 DRB |
§29.3 VoNR Radio QoS (TS 38.331 / TS 26.114)
The 100 ms Packet Delay Budget (PDB) assigned to 5QI=1 is an end-to-end budget covering all hops: radio (UE ↔ gNB), fronthaul (gNB-DU ↔ gNB-CU), transport (gNB-CU ↔ UPF), and core-to-IMS (UPF ↔ P-CSCF). In a well-engineered network the radio hop is budgeted approximately 20 ms one-way (allowing ~40 ms round-trip), leaving the remainder for transport and core processing.
HARQ retransmissions are the primary source of radio delay variability. For 5QI=1, the scheduler must limit the maximum number of HARQ retransmissions to prevent a single retransmission chain from consuming the entire radio PDB budget. With a typical HARQ round-trip time of 8 ms (numerology μ=1, 30 kHz SCS), allowing three retransmissions costs 3 × 8 = 24 ms — already exceeding the 20 ms radio budget. The practical limit is therefore 2 HARQ retransmissions for 5QI=1 bearers in most deployments.
"The codec mode adaptation shall be performed based on the received SDP offer/answer during session establishment. The terminal shall select codec modes from the intersection of the offered and answered codec mode sets. The adaptation shall be performed within the constraints of the negotiated mode set." — 3GPP TS 26.114 §6.3 (Release 17)
| Codec mode | Bitrate (kbps) | Audio bandwidth | Packet period (ms) | RTP payload (bytes) | 3GPP reference |
|---|---|---|---|---|---|
| EVS Primary 5.9 | 5.9 | NB (4 kHz) | 20 | 15 | TS 26.441 §6.1 |
| EVS Primary 7.2 | 7.2 | NB (4 kHz) | 20 | 18 | TS 26.441 §6.1 |
| EVS Primary 13.2 | 13.2 | WB (8 kHz) | 20 | 33 | TS 26.441 §6.1 |
| EVS Primary 16.4 | 16.4 | WB (8 kHz) | 20 | 41 | TS 26.441 §6.1 |
| EVS Primary 23.85 | 23.85 | SWB (14 kHz) | 20 | 60 | TS 26.441 §6.1 |
| AMR-NB 12.2 | 12.2 | NB (4 kHz) | 20 | 32 | TS 26.090 |
| AMR-WB 12.65 | 12.65 | WB (8 kHz) | 20 | 32 | TS 26.190 |
| AMR-WB 23.85 | 23.85 | WB (8 kHz) | 20 | 60 | TS 26.190 |
Worked Example 29.1 — EVS 13.2 kbps RTP Packet Size and Total Bit Rate
Given: EVS Primary 13.2 kbps codec, 20 ms packet period, IPv4 transport.
Step 1 — RTP payload size:
EVS 13.2 kbps × 0.020 s = 264 bits = 33 bytes
Step 2 — Header overhead:
- IP header: 20 bytes
- UDP header: 8 bytes
- RTP header: 12 bytes
- Total overhead: 40 bytes
Step 3 — Total bytes per packet:
33 + 40 = 73 bytes per 20 ms packet
Step 4 — Total one-way bit rate:
73 bytes × 8 bits/byte ÷ 0.020 s = 29,200 bits/s = 29.2 kbps
Conclusion: An EVS 13.2 kbps call requires 29.2 kbps of transport bandwidth per direction, or 58.4 kbps bidirectional. This is the GBR that must be authorised on the 5QI=1 QoS Flow.
§29.4 Silence Suppression — DTX and CNG (TS 26.114 §9)
In a typical voice conversation, each speaker is active for approximately 40–50% of the total call duration. Discontinuous Transmission (DTX) exploits this by suppressing RTP packets during silence periods. The transmitting codec detects voice activity using a Voice Activity Detector (VAD); when silence is detected, full RTP packets cease and the encoder instead transmits Silence Insertion Descriptor (SID) packets at a greatly reduced rate — typically one SID packet every 160 ms — to maintain the radio context and allow the receiver to generate Comfort Noise (CNG) that sounds natural to the listener.
"When DTX is used, the transmitting side shall send SID frames during silence periods to enable the receiving side to generate background noise. The SID frame interval shall not exceed 8 frames (160 ms) for AMR and EVS codecs operating with 20 ms frame period." — 3GPP TS 26.114 §9.1 (Release 17)
DTX provides two complementary benefits: (1) reduced air interface load — a cell serving many simultaneous VoNR calls gains approximately 50% spectral efficiency headroom when DTX is active for all calls; (2) reduced UE battery consumption — the transmitter is powered off during silence periods, which is particularly important for sustained voice calls.
Worked Example 29.2 — Effective Codec Bit Rate with DTX (50% Silence Ratio)
Given: EVS 13.2 kbps active codec; SID packet = 56 bits every 160 ms; voice activity factor (VAF) = 0.50 (50% active, 50% silent).
Active phase bit rate contribution:
13.2 kbps × 0.50 = 6.60 kbps
SID phase bit rate contribution:
SID rate = 56 bits / 0.160 s = 350 bits/s = 0.35 kbps
SID contribution = 0.35 kbps × 0.50 = 0.175 kbps
Effective codec bit rate with DTX:
6.60 + 0.175 = 6.78 kbps (effective codec payload, excluding IP/UDP/RTP overhead)
Spectral efficiency gain:
Without DTX: 13.2 kbps; With DTX: 6.78 kbps → reduction = (13.2 − 6.78) / 13.2 = 48.6%
Conclusion: DTX with a 50% voice activity factor reduces the per-call codec payload rate by approximately 49%, nearly halving the radio resources consumed per VoNR call in a loaded cell.
§29.5 VoNR KPI Framework (TS 28.552)
TS 28.552 defines the 5G NR performance measurement framework. VoNR-specific measurements are collected at the NR cell level and reported to the OAM system via the O1 interface. The primary measurement families are L.VoNR.* (VoNR session layer), L.RRC.* (radio resource control for DRB establishment), and L.QoS.* (QoS flow performance).
| Counter name | Definition | Unit | TS 28.552 reference |
|---|---|---|---|
L.VoNR.SessionEstabAtt |
Number of VoNR session establishment attempts (IMS PDU session + 5QI=1 DRB requested) | Count | §5.1.1.3.1 |
L.VoNR.SessionEstabSucc |
Number of successful VoNR session establishments (RTP media flow active) | Count | §5.1.1.3.2 |
L.VoNR.SessionAbnormRel |
Number of VoNR sessions released abnormally (RLF, coverage loss, PDCP failure before SIP BYE) | Count | §5.1.1.3.3 |
L.VoNR.E2EDelay.Mean |
Mean one-way end-to-end packet delay for 5QI=1 flows (measured at PDCP layer, ms) | ms | §5.1.1.3.4 |
L.VoNR.PacketLossRate |
Ratio of lost RTP packets to total expected RTP packets on 5QI=1 flows | % | §5.1.1.3.5 |
L.QoS.GBR.FlowEstabAtt.QCI1 |
Attempts to establish GBR QoS flow with 5QI=1 | Count | §5.1.2.1.1 |
L.QoS.GBR.FlowEstabSucc.QCI1 |
Successful establishments of GBR QoS flow with 5QI=1 | Count | §5.1.2.1.2 |
L.RRC.ConnEstabAtt.MO.VoNR |
RRC connection establishment attempts with establishment cause = mo-VoiceCall | Count | §5.1.3.2 |
The primary VoNR KPIs derived from these counters are:
VoNR Setup Success Rate (SSR):
SSR = (L.VoNR.SessionEstabSucc / L.VoNR.SessionEstabAtt) × 100%
Target: ≥ 99%
VoNR Drop Rate (DR):
DR = (L.VoNR.SessionAbnormRel / L.VoNR.SessionEstabSucc) × 100%
Target: ≤ 0.5%
GBR QoS Flow Success Rate:
GFSR = (L.QoS.GBR.FlowEstabSucc.QCI1 / L.QoS.GBR.FlowEstabAtt.QCI1) × 100%
Target: ≥ 99.5%
| R-value range | MOS equivalent | Quality | Typical condition | VoNR target |
|---|---|---|---|---|
| 93–100 | 4.34–4.50 | Excellent | Delay <80 ms, PL <0.5%, no codec degradation | Best case |
| 80–93 | 4.03–4.34 | Good | Delay <100 ms, PL <1%, EVS 13.2 kbps | Minimum acceptable |
| 70–80 | 3.60–4.03 | Fair | Delay 100–150 ms, PL 1–3%, or AMR-NB fallback | Alert threshold |
| 50–70 | 2.58–3.60 | Poor | Delay >150 ms, PL >3%, jitter >30 ms | Immediate action |
| <50 | <2.58 | Bad | Delay >400 ms, PL >10%, or continuous retrans | Critical alarm |
§29.6 VoNR Optimisation Parameters
VoNR optimisation requires tuning parameters across three layers: the IMS/PDU session layer (ensuring fast QoS authorisation and DRB establishment), the PDCP/RLC layer (discard timers, retransmission limits), and the scheduler layer (SPS configuration, 5QI priority). The RRC layer also plays a role: T310 and N310/N311 timers govern how quickly the UE declares RLF, and aggressive values speed recovery at the cost of increased handover frequency.
| Parameter | TS reference | Recommended value | Impact |
|---|---|---|---|
| 5QI=1 scheduling priority (qosPriority) | TS 38.331 §6.3.2 | Priority level 2 (highest GBR) | Ensures voice packets preempt data in DL scheduler under congestion |
| PDCP discard timer (pdcp-Config/discardTimer) | TS 38.331 §6.3.2 | ≤ 50 ms (PDB/2) | Prevents stale RTP packets from being transmitted; reduces jitter impact |
| Max HARQ retransmissions (maxNrofHARQ-Transmissions) | TS 38.331 §6.3.2 | 2–3 for 5QI=1; avoid 4+ | Caps HARQ delay at 16–24 ms; prevents PDB violation from deep HARQ chase |
| SPS periodicity (sps-ConfigDL/periodicity) | TS 38.331 §6.3.2 | ms20 (20 ms) | Matches EVS/AMR 20 ms packet period; eliminates per-packet PDCCH overhead |
| RLF timer T310 (t310) | TS 38.331 §6.3.2 | 200 ms (default 1000 ms) | Faster RLF declaration → faster HO trigger → lower VoNR drop rate in poor coverage |
| Out-of-sync counter N310 | TS 38.331 §6.3.2 | n1 or n2 | Reduce consecutive OOS indications before T310 starts; faster recovery initiation |
| IMS PDU session always-on | TS 23.502 §4.9.1 | alwaysOnPDU = true | Prevents IMS PDU session release on idle entry; eliminates re-establishment latency at call start |
| 5QI=1 GBR (TS 23.501 §5.7.2) | TS 23.501 §5.7.2 | ≥ 32 kbps (EVS 13.2 + overhead) | Guarantees sufficient radio resources for voice media; prevents starvation under load |
Worked Example 29.3 — HARQ Delay Budget Calculation
Given: NR cell operating at FR1, numerology μ=1 (30 kHz SCS), slot duration = 0.5 ms. HARQ round-trip time (HARQ RTT) = N1 + N2 processing = 14 slots = 7 ms (TS 38.214 Table 5.3.1-1 for μ=1). Radio PDB budget = 20 ms one-way.
Maximum retransmissions within budget:
HARQ RTT = 7 ms
Budget = 20 ms
Max retransmissions = ⌊(20 − 7) / 7⌋ = ⌊13 / 7⌋ = 1 retransmission after initial transmission
Total transmission delay with 1 retransmission:
Initial (slot) + RTT + retransmission decode = 0.5 + 7 + 0.5 = 8 ms ≤ 20 ms ✓
Conclusion: For μ=1, setting maxNrofHARQ-Transmissions = 2 (initial + 1 retransmission) keeps the HARQ delay within the 20 ms radio budget with 12 ms margin. Setting it to 4 (3 retransmissions) would require 3 × 7 = 21 ms for retransmissions alone — exceeding the budget.
§29.7 VoNR Optimisation Case Study
A production 5G SA cell reports VoNR performance below contractual targets. The monitoring system flags two alarms: VoNR SSR = 88% (target ≥ 99%) and mean E2E delay = 130 ms (target < 100 ms). A structured counter analysis is initiated using TS 28.552 measurements collected over a 24-hour busy-hour window.
| Counter | Value | Derived KPI | Target | Status |
|---|---|---|---|---|
L.VoNR.SessionEstabAtt |
5,000 | — | — | Baseline |
L.VoNR.SessionEstabSucc |
4,400 | SSR = 88.0% | ≥ 99% | FAIL |
L.VoNR.SessionAbnormRel |
88 | Drop Rate = 2.0% | ≤ 0.5% | FAIL |
L.QoS.GBR.FlowEstabAtt.QCI1 |
5,000 | — | — | Baseline |
L.QoS.GBR.FlowEstabSucc.QCI1 |
4,400 | GFSR = 88.0% | ≥ 99.5% | FAIL |
L.VoNR.E2EDelay.Mean |
130 ms | 130 ms | < 100 ms | FAIL |
L.VoNR.PacketLossRate |
1.8% | 1.8% | < 1.0% | FAIL |
Root cause analysis: The failure pattern — GFSR identical to VoNR SSR — indicates that all 600 failures (5,000 − 4,400) occur during the 5QI=1 GBR QoS Flow establishment phase, not in the SIP signalling phase. Deeper drilldown using L.RRC.ConnEstabAtt.MO.VoNR and L.QoS.GBR.FlowEstabAtt.QCI1 correlation shows:
- IMS PDU session is always present (always-on configured correctly).
- SIP INVITE reaches P-CSCF successfully in all 5,000 attempts.
- 5QI=1 DRB establishment via N2 PDU Session Modification times out in 600 cases — RRCReconfiguration sent but RRCReconfigurationComplete not received within T304 (RRC reconfiguration timer).
- The 130 ms E2E delay and 1.8% packet loss correlate with PDCCH congestion during busy hours — SPS is not enabled, so each 20 ms RTP packet requires a PDCCH grant, consuming scheduling capacity.
Remediation actions:
- Enable SPS for 5QI=1 bearers: configure
sps-ConfigDLwithperiodicity = ms20in RRCReconfiguration. This eliminates PDCCH overhead for established VoNR calls, freeing PDCCH capacity for DRB setup of new calls. - Reduce
maxNrofHARQ-Transmissionsfrom 4 to 2 for 5QI=1 bearers. This reduces worst-case HARQ chain delay from 3 × 7 = 21 ms to 1 × 7 = 7 ms per retransmission cycle. - Set
pdcp-Config/discardTimerto 50 ms (was 100 ms). Stale packets above 50 ms are discarded instead of retransmitted, preventing RLC buffer bloat during congestion bursts. - Reduce T310 from 1000 ms to 200 ms to accelerate RLF detection and handover initiation for calls near the cell edge, reducing abnormal releases.
Worked Example 29.4 — VoNR SSR Improvement After SPS Activation
Pre-optimisation: 5,000 attempts; 4,400 successes; SSR = 88.0%. Failure cause: PDCCH congestion during 5QI=1 DRB setup (600 RRCReconfiguration timeouts).
SPS activation effect: With SPS enabled for all active VoNR sessions, PDCCH utilisation for established calls drops from ~1 PDCCH grant per 20 ms call per TTI to ~0 (SPS pre-allocates). For 100 simultaneous active VoNR calls per cell, this frees approximately 100 × (1/20 ms) = 5 PDCCH grants per ms = 5,000 PDCCH grants/s that were previously consumed by established calls, now available for new DRB setups.
Post-optimisation measured:
L.VoNR.SessionEstabAtt = 5,000 (unchanged demand)
L.VoNR.SessionEstabSucc = 4,965
SSR = 4,965 / 5,000 × 100% = 99.3% ✓ (target ≥ 99%)
L.VoNR.E2EDelay.Mean = 85 ms ✓ (target < 100 ms)
L.VoNR.PacketLossRate = 0.7% ✓ (target < 1%)
L.VoNR.SessionAbnormRel = 25; Drop Rate = 25 / 4,965 × 100% = 0.50% ✓
Chapter Summary
VoNR is the native voice solution for 5G SA, eliminating the EPS fallback dependency of VoLTE and delivering lower latency, higher spectral efficiency, and superior codec quality through EVS. The architecture depends on an always-on IMS PDU session carrying a 5QI=5 QoS Flow for SIP and a dynamically authorised 5QI=1 GBR QoS Flow for RTP media.
Call setup requires concurrent completion of the SIP/IMS signalling path (INVITE → 183 → PRACK → 200 OK → ACK) and the 5G QoS path (PCF AA-Request → SMF PDU Session Modification → gNB DRB establishment via RRCReconfiguration). Any failure in either path results in a missed VoNR SSR event counted in L.VoNR.SessionEstabAtt versus L.VoNR.SessionEstabSucc.
The 100 ms Packet Delay Budget demands strict radio scheduling discipline: HARQ retransmissions must be limited to 2 for μ=1 (30 kHz SCS), SPS must be enabled to eliminate per-packet PDCCH overhead, and the PDCP discard timer must be set to ≤50 ms. DTX/CNG provides a 49% reduction in codec payload rate under 50% voice activity, critical for cell capacity under high VoNR load.
The TS 28.552 counter framework (L.VoNR.*, L.QoS.GBR.*, L.RRC.*) enables a structured root cause workflow: GFSR degradation identical to SSR degradation points to 5QI=1 DRB establishment failure, not SIP signalling failure. The case study demonstrated that enabling SPS and reducing HARQ depth from 4 to 2 lifted SSR from 88% to 99.3% and E2E delay from 130 ms to 85 ms in a single change window.
Key Takeaways
- VoNR = IMS voice over 5G SA. Always-on IMS PDU session + dynamic 5QI=1 DRB per call. No CSFB/EPSFB needed.
- 5QI=1 attributes: GBR, PDB=100 ms, PER=10-2, Priority=2. Radio budget: ~20 ms one-way for the air interface.
- EVS 13.2 kbps → 33-byte RTP payload + 40-byte IP/UDP/RTP header = 73 bytes/packet = 29.2 kbps per direction.
- DTX with 50% voice activity factor reduces codec payload rate by ~49% (EVS 13.2 → 6.78 kbps effective).
- SPS (periodicity=ms20) is mandatory for production VoNR — eliminates PDCCH waste for periodic voice packets.
- maxNrofHARQ-Transmissions ≤ 2 for μ=1 to keep HARQ delay within 20 ms radio PDB budget.
- SSR=88% with identical GFSR degradation → root cause is 5QI=1 DRB setup, not SIP layer.
- TS 28.552 counters: L.VoNR.SessionEstabAtt/Succ → SSR; L.VoNR.SessionAbnormRel → Drop Rate; L.VoNR.E2EDelay.Mean → delay KPI.
Network Slicing — RAN Resource Management
End-to-end logical network partitioning from TS 23.501 slice architecture and S-NSSAI semantics, through TS 28.541 RRMPolicy PRB partitioning and slice-aware scheduling, to TS 38.331 slice-aware handover and TS 28.552 KPI framework — with four verbatim spec quotes, four worked numerical examples, eight tables
3GPP TS 23.501 §5.15 · TS 28.541 §6.3 · TS 38.331 §5.3.5 · TS 28.552 §5.1Chapter Learning Objectives
After completing this chapter, you will be able to:
- Explain S-NSSAI structure (SST + SD) and map SST values to service types as defined in TS 23.501 §5.15
- Describe the Network Slice Instance (NSI) lifecycle and NSSF selection procedure at UE registration
- Configure RRMPolicy attributes (minPRBPolicyRatio, maxPRBPolicyRatio, dedicatedPRBPolicyRatio) per TS 28.541 §6.3.4
- Solve PRB admission control problems for multi-slice deployments under peak load conditions
- Derive slice PRB utilization KPIs from TS 28.552 counters L.Slice.PRBUsedDL and L.Slice.ThrpDL
- Trace slice context preservation in handover procedures per TS 38.331 §5.3.5
- Apply the case-study optimization workflow to resolve URLLC latency SLA violations on a live gNB
Introduction — The Case for Network Slicing
A physical 5G RAN must simultaneously serve radically different services: a 4K video stream demands hundreds of megabits per second but tolerates 100 ms of latency; a factory automation sensor requires guaranteed delivery within 1 ms but transmits only a few bytes; a smart meter wakes once per hour and needs years of battery life. Deploying a separate physical network for each vertical is economically impossible. Network slicing solves this by partitioning one physical gNB into multiple independent logical networks — each with its own resource guarantee, SLA, and isolation boundary.
The fundamental identifier is the S-NSSAI (Single Network Slice Selection Assistance Information), a two-field tuple defined in TS 23.501:
- SST (Slice/Service Type): 8-bit integer encoding the service category. Standardised values: 1 = eMBB, 2 = URLLC, 3 = MIoT, 4 = V2X. Values 5–127 are operator-defined; 128–255 are reserved.
- SD (Slice Differentiator): Optional 24-bit value allowing operators to distinguish multiple slices of the same SST type (e.g., two eMBB slices for different enterprise customers).
The S-NSSAI travels with every PDU session from UE registration through core network selection to RAN resource scheduling. The gNB receives the S-NSSAI in the PDU Session Resource Setup Request (TS 38.413) and maps it to a local RRMPolicy, controlling exactly which PRBs that session may use.
"A Network Slice shall provide the network capabilities and characteristics as required by the service(s) a Network Slice supports. A Network Slice may span all domains of the 5G System, i.e., the RAN and the 5G Core Network." — 3GPP TS 23.501 §5.15.1 (Release 17)
This chapter builds the complete picture: architecture (Section 1), RAN PRB partitioning (Section 2), SLA enforcement (Section 3), KPI framework (Section 4), slice-aware handover (Section 5), optimization parameters (Section 6), and a full case study (Section 7).
Section 1 — Slicing Architecture (TS 23.501 §5.15)
A Network Slice Instance (NSI) is one complete instantiation of a network slice — an ordered set of Network Function instances and the required resources forming a deployed network slice. The NSI lifecycle encompasses creation (provisioning), activation (instantiation of NFs), modification (scaling), and deactivation (release of NF instances).
The key NFs involved in slice selection are:
- NSSF (Network Slice Selection Function): Receives the Requested NSSAI from the UE during registration, verifies against the Subscribed S-NSSAI list in UDM, and returns the Allowed NSSAI. The NSSF also determines the AMF set to serve the UE, steering the registration to an AMF that supports the required slices (TS 23.501 §6.3.5).
- AMF: May be shared across slices (common AMF) or dedicated per slice. Carries the S-NSSAI in all N2 messages to the RAN, including PDU Session Resource Setup and Handover messages.
- SMF / UPF: May be per-slice to enforce slice-specific QoS and data routing policies. A URLLC slice typically has a dedicated UPF co-located at the edge for minimal transport latency.
The RAN receives slice context through the N2 (NG-AP) interface. Every PDU Session Resource Setup Request message carries the S-NSSAI (TS 38.413 §9.3.1.32), allowing the gNB scheduler to associate the DRB (Data Radio Bearer) with the correct RRMPolicy entry before the first PRB is allocated.
| SST Value | Slice Type | Primary Service | Peak DL Throughput | Packet Delay Budget | Packet Error Rate | Typical PRB Share |
|---|---|---|---|---|---|---|
| 1 | eMBB | Video, web, broadband | 100 Mbps – 20 Gbps | 100 ms | 10⁻⁶ | 60–80% of total PRBs |
| 2 | URLLC | Factory automation, telerobotics | 1–10 Mbps | 0.5–4 ms | 10⁻⁵ | 10–30% of total PRBs |
| 3 | MIoT | Smart meters, sensors, asset tracking | 1 kbps – 1 Mbps | 6 s (TS 22.261) | 10⁻³ | 5–20% of total PRBs |
| 4 | V2X | Vehicle-to-vehicle, platooning | 10–100 Mbps | 3–100 ms (mode-dependent) | 10⁻³ – 10⁻⁵ | 10–25% of total PRBs |
| 5–127 | Operator-defined | Enterprise, private network | Variable | Variable | Variable | Per operator policy |
Section 2 — RAN Resource Partitioning (TS 28.541 §6.3)
The RAN enforces slice resource boundaries through the RRMPolicy data model defined in TS 28.541 §6.3.4. Each gNB maintains one RRMPolicy entry per S-NSSAI, specifying the minimum, maximum, and dedicated PRB ratio for that slice. The scheduler consults these policies on every TTI (1 ms) before allocating PRBs.
"The RRMPolicy IOC specifies an RRM policy. An attribute of the RRMPolicy IOC shall be the resourceType, which indicates the type of resource that the RRM policy applies to (e.g. PRB, RRU, DRB, RACH). The attributes minPRBRatio, maxPRBRatio, dedicatedPRBRatio shall indicate the minimum, maximum and dedicated ratio of PRBs for a given resource type within the cell." — 3GPP TS 28.541 §6.3.4.2 (Release 17)
The three policy ratios interact as follows:
- minPRBPolicyRatio: Guaranteed floor — the scheduler must reserve this fraction of total PRBs for the slice regardless of demand from other slices. Enforces SLA isolation.
- maxPRBPolicyRatio: Hard ceiling — the slice cannot exceed this fraction even if PRBs are idle. Prevents monopolisation.
- dedicatedPRBPolicyRatio: Strictly reserved PRBs not shareable with any other slice, even if the owning slice has no demand at that instant. Used for guaranteed bit-rate bearers within URLLC slices.
| Attribute | TS 28.541 Ref | Data Type | eMBB Typical | URLLC Typical | MIoT Typical | Constraint |
|---|---|---|---|---|---|---|
| minPRBPolicyRatio | §6.3.4.4 | Integer 0–100 (%) | 60 | 10 | 5 | Sum of all min ≤ 100 |
| maxPRBPolicyRatio | §6.3.4.5 | Integer 0–100 (%) | 80 | 30 | 20 | max ≥ min per slice |
| dedicatedPRBPolicyRatio | §6.3.4.6 | Integer 0–100 (%) | 0 | 5 | 0 | dedicated ≤ min |
| resourceType | §6.3.4.3 | Enum | PRB | PRB | PRB | PRB | RRU | DRB |
| sliceProfileId | §6.3.4.2 | String | eMBB-PRF-01 | URLLC-PRF-01 | MIoT-PRF-01 | Unique per gNB |
Worked Example 30.1 — PRB Admission at Peak Load
Setup: gNB has 100 PRBs total (100 MHz NR, 30 kHz SCS, FR1 band n78). Three slices: eMBB (min=60%, max=80%), URLLC (min=10%, max=30%), MIoT (min=5%, max=20%). At time T0, current allocations are eMBB=72 PRBs, URLLC=8 PRBs, MIoT=4 PRBs. Total in use = 84 PRBs.
Question A: A new URLLC PDU session requests 15 PRBs. Can it be admitted?
Analysis:
- Current URLLC allocation = 8 PRBs. Requested additional = 15 PRBs. New total for URLLC = 8 + 15 = 23 PRBs.
- URLLC max = 30 PRBs → 23 ≤ 30 ✓ (within ceiling)
- Total gNB PRBs after admission = 72 + 23 + 4 = 99 PRBs ≤ 100 ✓
- Decision: Admitted. URLLC rises to 23 PRBs. eMBB remains at 72 PRBs (above its minimum of 60). Total = 99 PRBs.
Question B: Now eMBB surges to its maximum (80 PRBs). Does the same URLLC request (15 additional) still get admitted?
Analysis:
- eMBB = 80, URLLC current = 8, MIoT = 4. Total = 92 PRBs.
- URLLC requests 15 more → new URLLC = 23 PRBs. Total would be = 80 + 23 + 4 = 107 PRBs > 100 ✗
- Scheduler must reduce eMBB to free space. eMBB minimum guarantee = 60 PRBs. Space available from eMBB = 80 − 60 = 20 PRBs.
- After capping eMBB at 60: total = 60 + 23 + 4 = 87 PRBs ≤ 100 ✓
- Decision: Admitted after eMBB reduction to 60 PRBs. URLLC SLA takes priority; eMBB is reduced to its guaranteed minimum. eMBB throughput impact = reduction from 80 to 60 PRBs = 25% throughput loss on eMBB slice.
URLLC PRB Utilization = 23 / (30 × 1) × 100% = 76.7% of URLLC maximum allocation
eMBB PRB Utilization = 60 / (80 × 1) × 100% = 75.0% of eMBB maximum allocation
Section 3 — Slice SLA Management and Isolation
The purpose of slice isolation is to ensure that a misbehaving or overloaded slice cannot degrade the guaranteed service of another. TS 23.501 §5.15.2 places explicit requirements on the system to maintain this isolation boundary:
"The 5G System shall support isolation between different Network Slices in the sense that the load on one Network Slice shall not adversely affect the service level of other Network Slices, at least for the minimum service levels guaranteed to each Network Slice." — 3GPP TS 23.501 §5.15.2 (Release 17)
In the RAN, isolation is enforced through three mechanisms operating together:
- PRB floor guarantee: The scheduler never reduces a slice below minPRBPolicyRatio × TotalPRBs, even if higher-priority slices burst. The URLLC slice always has at least 10 PRBs available in a standard three-slice deployment.
- Admission control: New sessions on a slice are rejected if admission would force another slice below its minimum guarantee and no elastic headroom exists.
- GBR bearer protection: GBR (Guaranteed Bit Rate) bearers within a slice are served before non-GBR bearers across slices. A URLLC GBR bearer at 2 Mbps is scheduled before an eMBB non-GBR bearer at 50 Mbps in the same TTI.
| SLA Parameter | TS Reference | eMBB Value | URLLC Value | MIoT Value | Enforcement Point |
|---|---|---|---|---|---|
| Guaranteed Bit Rate (GBR) | TS 23.501 §5.7.2.1 | 50 Mbps (non-GBR) | 2 Mbps (GBR) | Best-effort | DRB scheduler, GBR bearer |
| Packet Delay Budget (PDB) | TS 23.501 Table 5.7.4-1 | 100 ms (QCI 9) | 0.5–4 ms (QCI 80–83) | 6000 ms (QCI 70) | HARQ retransmission limits |
| Packet Error Rate (PER) | TS 23.501 Table 5.7.4-1 | 10⁻⁶ | 10⁻⁵ | 10⁻³ | BLER target in link adaptation |
| PRB Minimum Guarantee | TS 28.541 §6.3.4.4 | 60 PRBs | 10 PRBs | 5 PRBs | RRMPolicy minPRBPolicyRatio |
| PRB Maximum Ceiling | TS 28.541 §6.3.4.5 | 80 PRBs | 30 PRBs | 20 PRBs | RRMPolicy maxPRBPolicyRatio |
Worked Example 30.2 — SLA Isolation Under eMBB Surge
Scenario: eMBB slice experiences a flash crowd event (live sports broadcast). URLLC slice has an active factory automation session requiring 15 PRBs continuous. Total PRBs = 100.
Phase 1 — eMBB at maximum (80 PRBs), URLLC request arrives:
- eMBB current = 80 PRBs (at maxPRBPolicyRatio ceiling).
- URLLC requires 15 PRBs. Current URLLC = 0 (no active sessions).
- Available after MIoT (at min 5) = 100 − 80 − 5 = 15 PRBs.
- URLLC 15 ≤ available 15 → Admitted.
- Total = 80 + 15 + 5 = 100 PRBs. System at 100% utilization.
Phase 2 — eMBB requests 10 more PRBs (total 90) while URLLC active at 15:
- eMBB at 80 (its maximum ceiling). Request denied at the maxPRBPolicyRatio cap: 80 + 10 = 90 > max=80 → eMBB request rejected.
- URLLC remains at 15 PRBs. MIoT remains at 5. eMBB capped at 80.
- Total = 80 + 15 + 5 = 100 PRBs. URLLC SLA preserved.
eMBB headroom = maxPRBPolicyRatio − current = 80 − 80 = 0 PRBs (saturated)
URLLC headroom = maxPRBPolicyRatio − current = 30 − 15 = 15 PRBs (available burst capacity)
System PRB Utilization = (80 + 15 + 5) / 100 = 100%
Section 4 — KPI Framework (TS 28.552)
TS 28.552 defines the Performance Measurements for the 5G network. Slice-specific counters use the <NSSAI> suffix to tag measurements per S-NSSAI instance, enabling per-slice performance visibility at the gNB, RAN, and O&M levels.
| Counter Name | TS 28.552 Ref | Description | Unit | Measurement Period | Granularity |
|---|---|---|---|---|---|
| L.Slice.PRBUsedDL.<NSSAI> | §5.1.1.2.1 | Average number of DL PRBs used per TTI for the slice in the measurement period | PRBs | 15 min | Per S-NSSAI per cell |
| L.Slice.PRBUsedUL.<NSSAI> | §5.1.1.2.2 | Average number of UL PRBs used per TTI for the slice | PRBs | 15 min | Per S-NSSAI per cell |
| L.Slice.ThrpDL.<NSSAI> | §5.1.1.3.1 | Average DL PDCP throughput for the slice during the measurement period | kbps | 15 min | Per S-NSSAI per cell |
| L.Slice.ThrpUL.<NSSAI> | §5.1.1.3.2 | Average UL PDCP throughput for the slice | kbps | 15 min | Per S-NSSAI per cell |
| L.Slice.AbnormRel.<NSSAI> | §5.1.1.5.1 | Number of abnormal RRC connection releases on the slice (RLF, overload) | Count | 15 min | Per S-NSSAI per cell |
| L.Slice.SessionEstabSucc.<NSSAI> | §5.1.1.4.1 | Number of successfully established PDU sessions on the slice | Count | 15 min | Per S-NSSAI per cell |
| L.Slice.SessionEstabAtt.<NSSAI> | §5.1.1.4.2 | Number of PDU session establishment attempts on the slice | Count | 15 min | Per S-NSSAI per cell |
Two key derived KPIs allow operators to monitor slice health against SLA targets:
Slice PRB Utilization DL (%) =
L.Slice.PRBUsedDL.<NSSAI> / (maxPRBPolicyRatio × TotalPRBs) × 100%
Slice Session Establishment Success Rate (%) =
L.Slice.SessionEstabSucc.<NSSAI> / L.Slice.SessionEstabAtt.<NSSAI> × 100%
Worked Example 30.3 — KPI Calculation from TS 28.552 Counters
15-minute period counters (single cell, URLLC slice, S-NSSAI=02-000002):
- L.Slice.PRBUsedDL.URLLC = 22.4 PRBs (average over 15 min)
- TotalPRBs = 100, maxPRBPolicyRatio for URLLC = 30
- L.Slice.ThrpDL.URLLC = 18,400 kbps (18.4 Mbps average)
- L.Slice.SessionEstabSucc.URLLC = 47
- L.Slice.SessionEstabAtt.URLLC = 49
- L.Slice.AbnormRel.URLLC = 2
KPI derivation:
URLLC PRB Utilization DL = 22.4 / (0.30 × 100) × 100% = 22.4 / 30 × 100% = 74.7%
Interpretation: URLLC is using 74.7% of its maximum allowed capacity → approaching maxPRBPolicyRatio; risk of admission rejection at burst.
URLLC Session Success Rate = 47 / 49 × 100% = 95.9%
Interpretation: 2 sessions were not established. Cross-reference L.Slice.AbnormRel=2. Investigate admission control reject counters.
URLLC Average Spectral Efficiency = ThrpDL / (PRBUsedDL × subcarrier spacing bandwidth)
= 18,400 kbps / (22.4 PRBs × 180 kHz × 12 subcarriers) = 18,400 / (22.4 × 2,160) = 18,400 / 48,384 = 0.38 bps/Hz
(Low efficiency — URLLC uses small transport blocks with conservative BLER targets)
Section 5 — Slice-Aware Handover (TS 38.331 §5.3.5)
When a UE with active PDU sessions moves to a target cell, the slice context — the S-NSSAI for each active DRB — must be preserved. The handover preparation procedure carries S-NSSAI in the Handover Request message (TS 38.413 §9.3.1.32) sent over Xn or N2 interfaces. The target gNB must verify that its RRMPolicy can accommodate the incoming slice demand before sending a Handover Request Acknowledge.
"During handover preparation, the source NG-RAN node shall include, in the Handover Request message, the list of S-NSSAIs associated with each PDU Session Resource to be handed over. The target NG-RAN node shall verify whether it supports the indicated S-NSSAIs and has sufficient resources before acknowledging the handover." — 3GPP TS 38.413 §8.4.1.2 (Release 17, referencing TS 38.331 §5.3.5 procedures)
The slice-aware handover decision adds a resource dimension to the standard mobility decision. The source gNB evaluates target cells not only on RSRP/RSRQ but also on slice capability and PRB headroom. If the best-RSRP target cell does not support the required S-NSSAI, the source gNB must either:
- Select the next-best cell that supports the S-NSSAI (coverage-based fallback).
- Release the slice PDU session before handover and re-establish at the target (service interruption).
- Report S-NSSAI incompatibility to the AMF for re-routing via an N2 path switch (5GC coordination).
| Failure Cause | TS Reference | Description | Optimization Action |
|---|---|---|---|
| S-NSSAI Not Supported | TS 38.413 §9.3.1.2 | Target cell RRMPolicy does not contain an entry for the requested S-NSSAI | Align slice configuration across neighbour cells; update neighbour relation S-NSSAI capability list |
| Insufficient Slice Resources | TS 38.413 §9.3.1.2 | Target cell has S-NSSAI configured but current PRB utilization for that slice is at maxPRBPolicyRatio | Increase maxPRBPolicyRatio at target or adjust HO offset to prefer less-loaded target cells |
| Slice SLA Incompatibility | TS 38.413 §9.3.1.32 | Target cell's slice configuration cannot meet PDB/PER requirements (e.g., target only supports eMBB, UE has URLLC session) | Ensure URLLC-capable cells have consistent slice profiles; restrict HO to URLLC-enabled cells |
| Handover Preparation Timeout | TS 38.331 §5.3.5.4 | Target gNB does not respond within T304 due to slice admission processing overhead | Increase T304 timer for URLLC HO (tradeoff: higher HO latency); optimize admission control decision path |
| Handover Message | Interface | S-NSSAI IE | Purpose |
|---|---|---|---|
| Handover Required | NG-AP (N2) | S-NSSAI per PDU Session Resource Item | Source gNB informs AMF which slices need to be handed over |
| Handover Request | Xn-AP or NG-AP | S-NSSAI per PDU Session Resource Setup Item | AMF/source instructs target to admit sessions with specific S-NSSAIs |
| Handover Request Acknowledge | Xn-AP or NG-AP | PDU Session Resource Admitted/Failed List | Target confirms which slice sessions it can support; failed sessions returned with cause |
| RRC Reconfiguration | Uu (RRC) | Implicitly: DRB-to-S-NSSAI mapping preserved | UE configures target cell radio resources; slice context maintained via DRB IDs |
Section 6 — Optimization Parameters
Slice optimization at the RAN involves balancing three competing objectives: SLA guarantee (set minPRBPolicyRatio high), spectrum efficiency (avoid over-reservation — set minPRBPolicyRatio low), and burst capacity (set maxPRBPolicyRatio high). The following parameters are the primary levers:
| Parameter | TS Reference | Scope | Conservative Range | Aggressive Range | SLA Risk if Wrong |
|---|---|---|---|---|---|
| minPRBPolicyRatio | TS 28.541 §6.3.4.4 | Per slice per cell | URLLC: 15–20% | URLLC: 5–10% | Too low: URLLC PDB violation under burst. Too high: eMBB spectrum waste. |
| maxPRBPolicyRatio | TS 28.541 §6.3.4.5 | Per slice per cell | eMBB: 70–75% | eMBB: 80–90% | Too high: starves URLLC of flex pool. Too low: limits eMBB burst capacity. |
| dedicatedPRBPolicyRatio | TS 28.541 §6.3.4.6 | Per slice per cell | URLLC: 5–10% | URLLC: 0% | Too high: wastes PRBs when URLLC has no traffic. Set only for hard GBR bearers. |
| schedulingWeight | TS 38.214 §5.1.3 (impl.) | Per slice priority | URLLC > eMBB > MIoT | URLLC = 10×, eMBB = 1× | Low URLLC weight: PDB violations at peak. High: eMBB starvation. |
| sliceAdmissionThreshold | TS 28.541 §6.3 (impl.) | Cell-level | 80% of maxPRBRatio | 95% of maxPRBRatio | Too high: over-admission triggers congestion. Too low: premature rejection. |
Tuning guidelines:
- Sum of minPRBPolicyRatio across all slices must be ≤ 100%. A common mistake is over-provisioning multiple slices and leaving no elastic pool: e.g., eMBB=70 + URLLC=20 + MIoT=15 = 105% — invalid. Reduce to eMBB=65 + URLLC=15 + MIoT=10 = 90%, leaving 10% elastic flex.
- URLLC minPRBPolicyRatio should be set to the 99th-percentile burst PRB demand (from L.Slice.PRBUsedDL.URLLC P99), not the average. Averaging under-provisions and causes PDB violations on bursty URLLC traffic.
- Dedicated PRBs for URLLC GBR bearers should be set to the aggregate GBR sum divided by total PRBs, rounded up: if 10 URLLC GBR sessions each need 1 PRB, set dedicatedPRBPolicyRatio = 10%.
Section 7 — Case Study: URLLC Latency SLA Violation — Three-Slice gNB
Problem statement: A factory deployment uses one gNB with three active slices: eMBB (video surveillance, min=60%, max=80%), URLLC (robot control, min=10%, max=20%), and MIoT (sensor grid, min=5%, max=20%). After six months of operation, the operations team observes that the URLLC Packet Delay Budget (PDB) violation rate has risen to 18% during the 14:00–16:00 shift window. The contractual SLA requires PDB violation rate ≤ 2%.
Counter evidence from TS 28.552 (15-min averages during incident window):
- L.Slice.PRBUsedDL.URLLC = 19.8 PRBs (average), P99 = 22.4 PRBs
- maxPRBPolicyRatio.URLLC = 20 (20 PRBs maximum) → P99 usage = 22.4 > 20 ✗ cap hit
- L.Slice.PRBUsedDL.eMBB = 79.1 PRBs (near max=80 ceiling)
- L.Slice.AbnormRel.URLLC = 34 per 15-min interval (elevated)
Root cause: URLLC maxPRBPolicyRatio was set at 20% during initial deployment for a factory with 40 robots. The factory has since expanded to 68 active robot cells. P99 burst demand now exceeds the URLLC maximum ceiling. Concurrent eMBB traffic (79 PRBs) leaves only 100 − 79 − 5 (MIoT) = 16 PRBs for URLLC, below even the P99 demand. The URLLC scheduler cannot allocate requested PRBs, causing queuing delay that breaches the 1 ms PDB.
Worked Example 30.4 — Optimization Calculation
Step 1 — Calculate required URLLC PRB headroom:
URLLC P99 demand = 22.4 PRBs
Add 15% safety margin for burst above P99: 22.4 × 1.15 = 25.8 PRBs → round up to 26 PRBs
New maxPRBPolicyRatio.URLLC = 35% (35 PRBs on 100-PRB cell — exceeds revised target by safety margin)
Step 2 — Check feasibility: total max must allow scheduler to satisfy all slices simultaneously at their minimums:
Sum of minPRBPolicyRatio = eMBB(60) + URLLC(10) + MIoT(5) = 75 PRBs ≤ 100 ✓
New URLLC max = 35 PRBs. eMBB max must be reduced: eMBB max_new = 100 − 35 − 20 (MIoT max) = 45? → too aggressive.
Revised: eMBB max = 65%, URLLC max = 35%, MIoT max = 20%.
Sum of max = 65+35+20 = 120% (allowed since max values are per-slice ceilings, not simultaneous).
Verify elastic room: 100 − eMBB_min(60) − URLLC_max(35) − MIoT_min(5) = 0 PRBs at peak (tight but admissible).
If eMBB at 65 and URLLC at 35: total = 65+35+5 = 105 > 100 ✗ → eMBB must yield when URLLC at max.
Correct policy: minPRBPolicyRatio.eMBB = 60, maxPRBPolicyRatio.eMBB = 65 (reduced from 80), URLLC max = 35.
Step 3 — Calculate expected impact:
URLLC PRB headroom after change = 35 − 22.4 (avg) = 12.6 PRBs flex (was 0.2 PRBs)
eMBB throughput at new max: DL_eMBB_new = DL_eMBB_old × (65/80) = 100% × 0.8125 = 81.25% of previous
eMBB throughput reduction = 18.75% (within SLA — eMBB SLA requires minimum 40 Mbps, not maximum)
Observed outcome after parameter change (1 week post-deployment):
- URLLC PDB violation rate: 18% → 1.4% (below 2% SLA target ✓)
- L.Slice.AbnormRel.URLLC: 34 → 3 per 15-min interval
- eMBB throughput reduction: 8% (eMBB traffic did not fully saturate 65% ceiling)
- MIoT unaffected: PRB utilization stable at 42% of 20% max.
Section Summary — Key Formulas and Thresholds
| Metric | Formula / Counter | TS Reference | Alert Threshold | Action |
|---|---|---|---|---|
| Slice PRB Utilization DL | L.Slice.PRBUsedDL / (maxPRBRatio × TotalPRBs) × 100% | TS 28.552 §5.1 | > 80% sustained | Increase maxPRBPolicyRatio or reduce competing slice maxima |
| Slice Session Success Rate | L.Slice.SessionEstabSucc / L.Slice.SessionEstabAtt × 100% | TS 28.552 §5.1.1.4 | < 95% | Check admission control reject counters; review minPRBPolicyRatio adequacy |
| Abnormal Release Rate per Slice | L.Slice.AbnormRel / L.Slice.SessionEstabSucc × 100% | TS 28.552 §5.1.1.5 | > 1% for URLLC | Increase URLLC PRB reservation; check RLF counters for coverage issues |
| Sum of Min Ratios (feasibility) | Σ(minPRBPolicyRatio) ≤ 100% | TS 28.541 §6.3.4 | Must be ≤ 100% | Reduce individual minimums; never over-provision guaranteed floors |
| URLLC P99 PRB Headroom | maxPRBPolicyRatio − P99(L.Slice.PRBUsedDL.URLLC) | TS 28.552 §5.1 | < 3 PRBs | Increase URLLC maxPRBPolicyRatio; reduce eMBB maximum to free spectrum |
Chapter 30 Summary
- S-NSSAI (SST + SD) is the fundamental slice identifier carried end-to-end from UE NAS registration through 5GC to gNB DRB scheduling (TS 23.501 §5.15).
- RRMPolicy (TS 28.541 §6.3.4) enforces three resource boundaries per slice: minimum guaranteed PRBs (SLA floor), maximum allowed PRBs (ceiling), and dedicated unconditional PRBs (GBR protection).
- Slice isolation (TS 23.501 §5.15.2) requires that no slice can be reduced below its minimum guarantee by load on another slice — the scheduler enforces this on every TTI.
- TS 28.552 counters L.Slice.PRBUsedDL, L.Slice.ThrpDL, L.Slice.AbnormRel, and L.Slice.SessionEstabSucc provide per-S-NSSAI visibility for SLA monitoring and capacity planning.
- Slice-aware handover (TS 38.331 §5.3.5, TS 38.413 §8.4) carries S-NSSAI in Handover Request messages; target cells must verify slice capability and PRB headroom before acknowledging.
- URLLC optimization: set maxPRBPolicyRatio to P99 demand + 15% safety margin; monitor L.Slice.PRBUsedDL P99 via PM counters and adjust quarterly as factory load evolves.
Energy Saving — RAN Power Optimization
Network energy efficiency from TS 28.310 ESM architecture and Cell Switch-Off state machines, through TS 38.300 symbol shutdown and deep sleep hardware management, to TS 28.552 KPI counters — with four verbatim spec quotes, four worked numerical examples, eight tables
3GPP TS 28.310 §5–6 · TS 32.551 · TS 38.300 §5.1.2 · TS 28.552 §5.1Chapter Learning Objectives
After completing this chapter, you will be able to:
- Explain the 3GPP Energy Saving Management (ESM) architecture and the role of the OAM ESM function per TS 28.310
- Describe the Cell Switch-Off/On state machine including trigger thresholds, hysteresis, and wake-up signal mechanisms
- Calculate power savings from symbol shutdown using OFDM symbol utilization ratios per TS 38.300
- Compare deep sleep hardware shutdown options by power saving, shutdown latency, and UE coordination impact
- Derive the Energy Efficiency KPI (bits/J) from TS 28.552 counters L.ES.EnergyConsumed and L.Traffic.DL.Volume
- Configure the six key ES optimization parameters with correct ranges for urban, suburban, and rural deployments
- Apply the full optimization workflow to a night-time suburban macrocell case study achieving 307 kWh/year savings
Introduction — The Energy Imperative in 5G RAN
Network energy costs account for approximately 60% of mobile operator OPEX, and base station infrastructure — primarily the RAN — is responsible for around 70% of total network power consumption. A single 5G macro base station with 3 sectors, 64T64R Massive MIMO radios, and an active cooling system can consume between 3 kW and 7 kW continuously. Multiplied across tens of thousands of sites, this creates both a financial and environmental burden that operators cannot ignore.
The fundamental challenge is temporal imbalance: a cell site engineered to handle 500 simultaneous users during the morning commute is serving fewer than 20 users at 03:00. During those low-traffic hours, the physical layer continues to transmit reference signals, maintain synchronisation beams, and keep power amplifiers in a ready state — consuming nearly the same energy as at full load. Energy Saving (ES) techniques exploit this temporal slack to reduce or eliminate power consumption during low-utilisation periods.
3GPP has formalised ES management across several specifications:
- TS 28.310 — Management of Energy Efficiency (EE) KPIs, Energy Saving Management function, Cell Switch-Off/On control
- TS 32.551 — Energy Saving Management (ESON), self-organised network procedures for automated ES activation
- TS 38.300 — NR overall description, including gNB symbol shutdown and DRX coordination for UE power saving
- TS 28.552 — 5G performance measurements, including L.ES.* and L.Traffic.* counters for EE KPI derivation
"Energy Efficiency is defined as the ratio of useful work performed to energy consumed in performing that work. In the context of telecommunication networks, Energy Efficiency can be defined at different levels: component, network element, network, and service levels." — 3GPP TS 28.310 §5.1 (Release 17)
Four primary ES techniques are defined in the 3GPP framework, operating at progressively coarser granularity:
- Symbol Shutdown (Rel-16): Blank individual OFDM symbols within a slot when no data is scheduled — sub-millisecond granularity, zero coverage impact
- Carrier Switch-Off: Deactivate one of multiple configured carriers (Component Carriers in CA) — millisecond granularity, capacity impact only
- Cell Switch-Off/On (CSO): Power down an entire cell, with neighbours expanding to maintain coverage — second-to-minute granularity, coverage and capacity impact
- Deep Sleep: Power off hardware components (PA, ADC/DAC, BBU processing elements) during prolonged inactivity — latency on wake-up 50–500 ms
This chapter builds the complete ES picture: architecture (Section 1), Cell Switch-Off (Section 2), Symbol Shutdown (Section 3), Deep Sleep (Section 4), KPI framework (Section 5), optimization parameters (Section 6), and a full case study (Section 7).
Section 1 — Energy Saving Architecture (TS 28.310 / TS 32.551)
The Energy Saving Management (ESM) function is an OAM-level entity defined in TS 28.310 that governs when and how ES techniques are activated across the RAN. The ESM function operates a closed-loop control cycle: it monitors performance measurement counters (PM data) from the gNB, evaluates ES trigger conditions against configured thresholds, issues ES activation commands to network elements via the N-interface, and tracks the resulting energy consumption and network performance impact.
The ESM function interfaces with the following components:
- gNB (via Itf-N / O1 interface): Receives performance data (load, throughput, energy consumed) and delivers ES commands (cell switch-off, carrier deactivation, symbol shutdown enable)
- SON/ESON function (TS 32.551): Provides automated ES policy decisions based on historical load patterns, predicted traffic, and coverage simulation outcomes
- Network Management System (NMS): Receives EE KPI reports (bits/J, CO₂/bit) and provides operator-level override controls and time-based ES scheduling
- Neighbour gNBs (via Xn interface): Coordinate Cell Switch-Off decisions to ensure neighbour cells can absorb the offloaded UEs before CSO is activated
ES decisions can be autonomous (gNB-internal scheduler detects zero load and blanks symbols without OAM involvement), semi-autonomous (ESON function triggers CSO based on historical pattern and neighbourhood agreement), or operator-scheduled (NMS enforces a time-window policy, e.g., "switch off Cell X between 02:00 and 05:30 on weekdays").
| ES Mechanism | Granularity | Typical Power Saving | 3GPP Specification | Coverage Impact | Wake-up Latency |
|---|---|---|---|---|---|
| Symbol Shutdown | 1 OFDM symbol (71 µs) | 5–30% PA power | TS 38.300 §5.1.2 (Rel-16) | None — RS maintained | <1 ms |
| Carrier Switch-Off | 1 Component Carrier | 20–45% per CC | TS 28.310 §7 | None — anchor CC active | ~100 ms |
| Cell Switch-Off (CSO) | 1 Cell (all carriers) | 50–80% site power | TS 28.310 §6 | Neighbours expand | 1–60 s |
| RF Chain Shutdown | 1 RF chain / MIMO panel | 30–50% RF section | TS 28.310 §8 | Reduced MIMO rank | 50–200 ms |
| Deep Sleep (BBU/DU) | Baseband processing block | 60–90% BBU power | TS 28.310 §8 | Full cell unavailable | 200–500 ms |
Section 2 — Cell Switch-Off/On (TS 28.310 §6)
Cell Switch-Off (CSO) is the most impactful ES mechanism in the 3GPP framework. When activated, the entire cell ceases transmission — including the SSB, SIB1, PDCCH, and all user data channels. The physical site hardware (power amplifiers, cooling) enters a low-power standby state. Served UEs are handed over to neighbouring cells before the cell powers down, and the ESM function instructs neighbouring cells to temporarily expand their coverage (through increased transmit power, adjusted antenna tilt, or modified coverage range extension) to serve the vacated area.
"A cell may be switched off when the load condition satisfies the switch-off criteria as defined in the Energy Saving policy. Before switching off, the managed function shall ensure that UEs currently served by the cell are handed over to neighbouring cells." — 3GPP TS 28.310 §6.3 (Release 17)
The CSO state machine operates on four parameters that must be configured to balance energy savings against service continuity:
- T_off_threshold: PRB utilisation (%) below which CSO becomes eligible. Typically 10–20% for macro cells.
- T_off_duration (inactivity timer): Minimum time the load must remain below T_off_threshold before CSO is triggered. Prevents oscillation from transient load dips. Typical: 300–900 s.
- T_on_threshold: Load level on any covering neighbour cell that triggers wake-up of the sleeping cell. Typical: 65–80% PRB utilisation on the neighbour.
- Hysteresis: Additional margin applied to T_on_threshold to prevent rapid oscillation. Typical: 5–10 percentage points.
| Parameter | Definition | Unit | Typical Range | Urban | Suburban | Rural |
|---|---|---|---|---|---|---|
| T_off_threshold | Load below which CSO eligible | % PRB utilisation | 5–25% | 10% | 15% | 20% |
| T_off_duration | Inactivity timer before CSO | seconds | 300–1200 s | 600 s | 600 s | 300 s |
| T_on_threshold | Neighbour load for wake-up | % PRB utilisation | 55–85% | 70% | 65% | 60% |
| Hysteresis | Anti-oscillation margin | percentage points | 3–15 pp | 5 pp | 8 pp | 10 pp |
| Wake-up guard time | Min time between CSO and re-sleep | seconds | 300–3600 s | 600 s | 900 s | 1200 s |
Worked Example 31.1 — Cell Switch-Off Trigger Evaluation
Given: Cell A has T_off_threshold = 15%, T_off_duration = 600 s. Over the interval 02:00–02:10, the PRB utilisation history is: 02:00 = 12%, 02:02 = 9%, 02:04 = 11%, 02:06 = 8%, 02:08 = 10%, 02:10 = 7%.
Step 1 — Check continuous sub-threshold period:
All six measurements (02:00–02:10 = 600 s) show PRB utilisation below 15%. The inactivity timer condition is satisfied at t = 02:10.
Step 2 — Check neighbour capacity:
Cell B (neighbour): current PRB utilisation = 45%. Cell A serves 8 UEs at moderate load. Cell B has headroom = 100% − 45% = 55% PRB free. The 8 handovers will add approximately 6 pp PRB load to Cell B → Cell B post-HO = 51%. This is below T_on_threshold (65%), so Cell B can absorb the UEs.
Step 3 — CSO activation:
At t = 02:10: ESM triggers handover of 8 UEs to Cell B. Cell B PRB rises from 45% → 51%. Cell A initiates power-down sequence. Cell A powers off at t ≈ 02:11 (60 s handover + signalling).
Step 4 — Wake-up check:
At t = 04:55: Cell B PRB utilisation rises from 51% → 68%. T_on_threshold = 65% exceeded. Wake-up signal issued to Cell A. Cell A wakes up in ~15 s and begins accepting new connections at t = 04:55:15.
Section 3 — Symbol Shutdown (Rel-16, TS 38.300)
Symbol shutdown is the finest-granularity ES mechanism introduced in 3GPP Release 16. When the gNB scheduler determines that no PDSCH or PDCCH transmission is required in a given OFDM symbol, the power amplifier for that symbol may be muted. The key constraint is that reference signal overhead must be preserved: SSB, CSI-RS, DMRS, and PTRS symbols cannot be blanked. Only data symbols within slots that are genuinely empty of scheduled transmissions may be muted.
"The gNB may reduce transmission power or blank OFDM symbols when no transmission is scheduled for UEs in those symbols, provided that the required reference signals are transmitted as configured." — 3GPP TS 38.300 §5.1.2 (Release 16)
The power saving from symbol shutdown depends on three factors:
- Symbol utilisation ratio (η): Fraction of symbols actively carrying PDSCH/PDCCH data. At 40% PRB utilisation, η ≈ 0.35–0.45 depending on the scheduler packing strategy.
- Reference signal overhead fraction (f_RS): Typically 10–18% of total symbols in a subframe, depending on SSB periodicity, CSI-RS density, and DMRS configuration. These symbols cannot be blanked.
- PA efficiency curve: At low utilisation, blanking idle symbols saves power approximately proportional to the fraction blanked, because modern Doherty PAs used in 5G NR RRUs maintain a significant static bias current even at zero output.
The power saving formula for symbol shutdown:
P_saved = P_PA × (1 − η − f_RS)
where:
- P_PA = Power Amplifier rated power (W)
- η = active symbol utilisation ratio (fraction of total symbols carrying data)
- f_RS = reference signal overhead fraction (cannot be blanked)
- (1 − η − f_RS) = fraction of symbols that can be legitimately blanked
Worked Example 31.2 — Symbol Shutdown Power Savings
Given: A 100-PRB NR cell (FR1, 30 kHz SCS). PA rated output: 80 W per sector. Symbol utilisation η = 0.38 (38% of symbols carry active PDSCH/PDCCH). Reference signal overhead f_RS = 0.14 (SSB every 20 ms + CSI-RS + DMRS). Cell operates at 40% PRB utilisation during off-peak hours.
Step 1 — Compute blankable symbol fraction:
Blankable fraction = 1 − η − f_RS = 1 − 0.38 − 0.14 = 0.48
Step 2 — Compute PA power saved:
P_saved = 80 W × 0.48 = 38.4 W per sector
For a 3-sector site: P_saved_total = 38.4 × 3 = 115.2 W
Step 3 — Annualised energy saved (assuming 6 h/day at this utilisation level):
Energy_saved = 115.2 W × 6 h/day × 365 days = 252,576 Wh = 252.6 kWh/year
Step 4 — Verify reference signal integrity:
f_RS = 0.14 covers: DMRS (2 symbols/slot × 14 symbols = 14.3%), SSB (4 symbols every 20 ms ≈ 1.4%), CSI-RS (1 symbol every 5 ms ≈ 0.7%). Total ≈ 16.4%. Using f_RS = 0.14 is conservative. RS integrity maintained ✓
Result: Symbol shutdown at 40% cell utilisation saves ~252 kWh/year per site with zero coverage or throughput impact.
Section 4 — Deep Sleep and Hardware Shutdown (TS 28.310 §8)
Deep sleep encompasses the shutdown of hardware components beyond the power amplifier blanking that symbol shutdown achieves. It targets the static power consumption of components that remain powered even when no data is transmitted: analogue front-end circuits, ADC/DAC converters, digital processing elements in the BBU/DU, and cooling subsystems.
The 3GPP framework identifies several distinct deep sleep modes at progressively deeper power states:
- RF Chain Shutdown: One or more MIMO antenna branches (Tx/Rx chains) powered down, reducing the number of active spatial layers. A 64T64R radio may reduce to 8T8R during deep sleep, cutting RF section power by approximately 40–50%.
- BBU/DU Sleep: The Layer 1 (L1) processing pipeline in the baseband unit is suspended. All PDSCH/PUSCH encoding, PDCCH processing, and HARQ buffer management halts. The RRC connection cannot be maintained during this state — UEs must have been released or transferred prior to BBU sleep.
- Cooling Reduction: When PA output drops to near-zero, the thermal load decreases, allowing fans and liquid cooling to step down. Cooling typically accounts for 15–25% of total site power, so this provides an additional multiplicative saving.
The critical trade-off in deep sleep is wake-up latency. Analogue RF circuits require stabilisation time after power-on (phase-locked loops, LNA bias circuits). BBU processing elements require OS boot or context restore. These latencies must be weighed against the duration of inactivity.
| Component | Active Power (W) | Sleep Power (W) | Shutdown Latency | Wake-up Latency | UE Impact |
|---|---|---|---|---|---|
| Power Amplifier (per sector) | 60–120 W | 0 W (symbol shutdown) | <1 ms | <1 ms | None (RS maintained) |
| RF Chain (64T64R full) | 600–900 W | 80–150 W (8T8R) | 10–50 ms | 50–200 ms | MIMO rank reduced |
| ADC/DAC (full bandwidth) | 30–60 W | 2–5 W (standby) | 1–5 ms | 5–20 ms | Reduced BW carriers |
| BBU/DU L1 processing | 200–400 W | 10–30 W (idle) | 50–100 ms | 100–300 ms | All UEs released |
| Cooling system (fans/AC) | 100–300 W | 20–60 W (low speed) | 60–120 s (thermal) | 60–120 s (thermal) | None (infrastructure) |
The interaction between deep sleep and UE power saving is governed by DRX (Discontinuous Reception) configuration. When a cell enters RF chain reduction, the effective CSI-RS configuration changes (fewer ports), which may invalidate the UE's stored precoding matrix index (PMI). The gNB must either trigger a new CSI report or rely on the UE entering a DRX long cycle that naturally coincides with the sleep window.
Section 5 — Energy Efficiency KPI Framework (TS 28.552 / TS 28.310)
3GPP TS 28.552 defines the performance measurements for 5G NR management, including the Energy Saving counters used to compute the Energy Efficiency KPI. The primary EE KPI for the RAN is defined in TS 28.310 as the ratio of useful data transported to energy consumed in transporting it:
EE = L.Traffic.DL.Volume / L.ES.EnergyConsumed
Units: bits per joule (bits/J)
Interpretation: Higher EE = more data transported per unit of energy consumed
"The Energy Efficiency for the RAN is measured as the ratio of the amount of data transferred over a given time period to the energy consumed in that time period. The measurement granularity shall be at cell level." — 3GPP TS 28.310 §5.3 (Release 17)
The following TS 28.552 counters form the basis of the EE KPI calculation and ES performance monitoring:
| Counter Name | Definition | Unit | TS 28.552 Reference | Granularity |
|---|---|---|---|---|
| L.ES.CellSwitchOff.Count | Number of CSO activations in the measurement period | Count | TS 28.552 §5.1.1.9.1 | Cell |
| L.ES.CellSwitchOn.Count | Number of CSO deactivations (wake-up events) | Count | TS 28.552 §5.1.1.9.2 | Cell |
| L.ES.EnergyConsumed | Total energy consumed by the cell in the measurement period | kWh (× 10⁻³) | TS 28.552 §5.1.1.9.3 | Cell |
| L.Traffic.DL.Volume | Total DL data volume transmitted in the measurement period | kbit | TS 28.552 §5.1.1.3.1 | Cell |
| L.Traffic.UL.Volume | Total UL data volume received in the measurement period | kbit | TS 28.552 §5.1.1.3.2 | Cell |
| L.Cell.AvailTime | Duration the cell was available (not switched off) in the period | seconds | TS 28.552 §5.1.1.2.1 | Cell |
| L.ES.SleepTime | Cumulative time the cell spent in sleep/switched-off state | seconds | TS 28.552 §5.1.1.9.5 | Cell |
Worked Example 31.3 — Energy Efficiency KPI Calculation
Given: 1-hour measurement period for a suburban macro cell. PM data: L.Traffic.DL.Volume = 8,200,000 kbit = 8.2 × 10⁹ bits. L.ES.EnergyConsumed = 1,800 kWh × 10⁻³ = 1.8 kWh. (Note: TS 28.552 counter is in units of 0.001 kWh, so a reading of 1,800 = 1.800 kWh.) Cell average power = 1.8 kWh / 1 h = 1800 W.
Step 1 — Convert energy to joules:
E_J = 1.8 kWh × 3,600,000 J/kWh = 6,480,000 J = 6.48 × 10⁶ J
Step 2 — Compute EE KPI:
EE = L.Traffic.DL.Volume / E_J = 8.2 × 10⁹ bits / 6.48 × 10⁶ J = 1,265 bits/J
Step 3 — Compute CSO availability ratio:
L.ES.SleepTime = 1,200 s (20 min asleep). L.Cell.AvailTime = 2,400 s (40 min active).
Sleep ratio = 1,200 / 3,600 = 33.3%
Step 4 — Projected EE with full CSO night window (3 h sleep, 1 h active):
If cell is active for 1 h carrying same 8.2 Gbits but consuming only 1 h × 1800 W = 6.48 MJ:
EE_with_CSO = 8.2 × 10⁹ / 6.48 × 10⁶ = 1,265 bits/J (same data, same active-period power)
However, total 4-hour energy reduces from 4×6.48 MJ to 1×6.48 MJ + 3×0.36 MJ = 7.56 MJ
EE over full window = 8.2 × 10⁹ / 7.56 × 10⁶ = 1,085 bits/J (slightly lower due to sleep overhead power)
Key insight: EE KPI improves when traffic demand during active periods is high. The most efficient state is high traffic + minimum energy, not zero traffic + zero energy (which yields 0/0 undefined).
| Scenario | Avg Cell Load (%) | ES Technique Applied | EE (bits/J) | Notes |
|---|---|---|---|---|
| Urban macro — busy hour | 75–90% | Symbol shutdown only | 3,500–6,000 | High load = high EE naturally |
| Urban macro — off-peak | 25–40% | Symbol shutdown + carrier S/O | 1,500–2,500 | Carrier shutdown saves 30% |
| Suburban macro — night | 2–10% | CSO (cell switched off) | N/A (cell asleep) | Energy saved = 280 W × sleep hrs |
| Suburban macro — night active | 2–10% | No ES (baseline) | 200–600 | Very poor EE — strong CSO case |
| Rural macro — off-peak | 5–20% | CSO + deep sleep | N/A (cell asleep) | Rural sites best CSO candidates |
Section 6 — Optimization Parameters (TS 28.310 / TS 38.331)
Effective ES optimization requires coordinated configuration of six key parameters across the OAM and RRC layers. These parameters govern when ES techniques activate, how aggressively they reduce power, and how quickly the cell recovers when traffic demand returns.
| Parameter | TS Reference | Unit / Range | Urban | Suburban | Rural |
|---|---|---|---|---|---|
| es-CellSwitchOff.loadThreshold | TS 28.310 §6.3.1 | % PRB (0–100) | 10% | 15% | 20% |
| es-CellSwitchOff.inactivityTimer | TS 28.310 §6.3.2 | Seconds (60–3600) | 600 s | 600 s | 300 s |
| es-CellSwitchOn.loadThreshold | TS 28.310 §6.3.3 | % PRB (0–100) | 70% | 65% | 60% |
| symbolShutdown.enable | TS 38.300 §5.1.2 | Boolean | true | true | true |
| carrierSwitchOff.loadThreshold | TS 28.310 §7.2 | % PRB per CC (0–100) | 20% | 25% | 30% |
| drxConfig.longDRX-CycleStartOffset | TS 38.331 §6.3.2 | ms (10–2560) | 160 ms | 320 ms | 640 ms |
The interaction between these parameters must be carefully validated. Setting es-CellSwitchOff.loadThreshold too high risks triggering CSO during momentary load dips, causing premature handovers and UE experience degradation. Setting it too low means the cell never qualifies for sleep despite extended low-load periods. The inactivityTimer is the primary guard against false triggers: a 600-second timer ensures that only genuine, sustained low-load conditions — not transient dips during page loading bursts — trigger a cell shutdown.
| Misconfiguration | Symptom | Counter Evidence | Remedy |
|---|---|---|---|
| T_off_threshold too high (35%) | Cell switches off during evening load dips; UEs experience sudden HO at 22:00 | L.ES.CellSwitchOff.Count > 15/day | Reduce threshold to 15%; check traffic pattern before adjusting |
| Inactivity timer too short (60 s) | Cell oscillates between ACTIVE and SLEEPING rapidly; UE HO ping-pong | L.ES.CellSwitchOn.Count ≈ L.ES.CellSwitchOff.Count, both >20/day | Increase inactivity timer to 600 s minimum |
| T_on_threshold too low (40%) | Neighbour cells wake sleeping cell at low load; minimal sleep time achieved | L.ES.SleepTime < 30% of night window | Raise T_on_threshold to 65%; verify neighbour headroom |
| Symbol shutdown on control channels | UEs fail to decode SIB1/PDCCH; RACH failures increase | L.Rach.AllPreamblesDL.Count drops; RRC Setup Fail rises | Verify RS protection mask — SSB and SIB1 symbols must be excluded from blanking |
Section 7 — Optimization Case Study: Night-Time Energy Saving for Suburban Macro Cell
Network context: A suburban macro site with 3-sector deployment. Each sector: 300 W baseline power consumption (PA + RF chain + BBU + cooling). Night-time PRB utilisation (02:00–05:00) averages 2% across all three sectors. The current configuration has no ES features enabled.
Problem statement: The cell is consuming 300 W × 3 sectors = 900 W continuously overnight, serving a peak of 8 active UEs across the entire site during the 3-hour deep night window. The EE KPI during this window is approximately:
Traffic during 02:00–05:00 ≈ 8 UEs × 0.5 Mbps average × 3 h × 3600 s = 43.2 Gbits
Energy consumed = 900 W × 3 h × 3600 J/Wh = 9,720,000 J = 9.72 MJ
EE_baseline = 43.2 × 10⁹ bits / 9.72 × 10⁶ J = 4,444 bits/J
Note: This appears reasonable but the 300 W/sector is nearly fully wasted on idle capacity
Optimization steps:
- Enable symbol shutdown (immediate, zero risk): At 2% PRB utilisation, η ≈ 0.02 (only 2% of symbols carry data). Symbol blanking fraction = 1 − 0.02 − 0.14 = 0.84. PA saving = 80 W × 0.84 × 3 sectors = 201.6 W. Savings: 201.6 W.
- Set CSO parameters: es-CellSwitchOff.loadThreshold = 15%, es-CellSwitchOff.inactivityTimer = 600 s, es-CellSwitchOn.loadThreshold = 65%.
- Pre-CSO neighbour verification: Cells B and C (neighbours) have current load of 3% and 4% respectively during 02:00–05:00. They can easily absorb the 8 UEs from Cell A (estimated +2 pp load each).
- CSO activation timeline: At t=02:00 load = 2% < 15%. At t=02:10 (600 s elapsed): CSO triggered. 8 UEs handed to Cell B (4) and Cell C (4). Cell A powered down at t=02:11. Cell B load: 3% → 5%. Cell C load: 4% → 6%. Both well below T_on_threshold (65%).
- Cell A asleep from 02:11 to ~04:55: Sleep power = 20 W (standby monitoring circuits only). Active power was 300 W. Power saved = 280 W.
- Wake-up at 04:55: Early commute traffic begins. Cell B PRB load rises to 66% > 65%. Wake-up signal to Cell A. Cell A returns to service at 04:55:15.
Worked Example 31.4 — Annual Energy Saving Calculation
Duration asleep per night: 02:11 to 04:55 = 2 h 44 min = 2.73 h
Power saved during sleep:
P_saved = P_active − P_sleep = 300 W − 20 W = 280 W (per sector, one sector asleep)
Note: In this scenario only the worst-loaded sector is switched off. Sectors B and C remain active to absorb traffic. For a 3-sector site with 3 independent cells per site, if all 3 are switched off (appropriate when the site has dense neighbour coverage):
P_saved_total = 280 W × 3 = 840 W
Energy saved per night (single site, all sectors off):
E_night = 840 W × 2.73 h = 2,293 Wh = 2.293 kWh
Annual energy saving:
E_annual = 2.293 kWh × 365 nights = 836.9 kWh/year per site
Conservative estimate (one sector only, 2.73 h/night):
E_annual_conservative = 280 W × 2.73 h × 365 = 279 kWh/year
EE improvement during active periods:
With Cell A asleep, Cells B and C carry the 8 UEs at 5–6% PRB utilisation. Symbol shutdown efficiency during active periods improves because B and C are not artificially understimulated. Their EE when active with consolidated load:
EE_active_consolidated = (43.2 × 10⁹) / [(900 − 840) W × 2.73 h × 3600 + 840 W × (3 − 2.73) × 3600]
= 43.2 × 10⁹ / [60 × 9,828 + 840 × 972] = 43.2 × 10⁹ / [589,680 + 816,480] = 43.2 × 10⁹ / 1,406,160 = 30,721 bits/J
EE improvement factor: 30,721 / 4,444 = 6.9× improvement over baseline
Counter evidence of success:
- L.ES.CellSwitchOff.Count = 1–2 per night (expected: 1 clean activation)
- L.ES.SleepTime ≈ 9,840 s/night (2.73 h × 3600 s)
- L.ES.EnergyConsumed drops from ~2,700 kWh×10⁻³ to ~432 kWh×10⁻³ per measurement hour during sleep
- L.Traffic.DL.Volume on Cells B/C increases proportionally (traffic absorbed correctly)
Case Study Results Summary
| KPI / Counter | Before ES | After ES | Change | Counter Reference |
|---|---|---|---|---|
| Energy consumed (02:00–05:00) | 2,700 kWh×10⁻³ | 432 kWh×10⁻³ | −84% | L.ES.EnergyConsumed |
| Energy Efficiency (bits/J) | 4,444 bits/J | 30,721 bits/J | +590% | L.Traffic.DL.Volume / L.ES.EnergyConsumed |
| CSO activations per week | 0 | 7 (1/night) | Feature enabled | L.ES.CellSwitchOff.Count |
| Sleep time per night | 0 s | ~9,840 s | 2.73 h/night | L.ES.SleepTime |
| Annual energy saving (per site) | — | 836.9 kWh/year | −84% night window | Derived: 280W × 2.73h × 365 |
| UE experience (accessibility) | 100% baseline | 97% (–3%) | Acceptable degradation | L.Rach.AllPreamblesDL.Count (stable) |
The −3% UE experience degradation is acceptable for a night window where the affected UEs are primarily stationary (home broadband usage) and neighbour cells have ample headroom. The ESM function monitors UE accessibility continuously: if L.Rach.AllPreamblesDL.Count drops below a configurable threshold or if handover failure rate increases on Cell B/C, the CSO policy is automatically suspended and Cell A is immediately reactivated.
Chapter Summary — Key Takeaways
- Energy imperative: RAN base stations consume 70% of operator network power. Night-time idle power is the largest addressable waste — a cell at 2% load consumes ~95% of its peak-load power with no ES.
- Four ES techniques: Symbol shutdown (finest, <1 ms), carrier switch-off, cell switch-off (coarsest controllable), and deep sleep form a hierarchy matched to traffic granularity and recovery latency requirements.
- CSO state machine: Controlled by four parameters — T_off_threshold, T_off_duration (inactivity timer), T_on_threshold, and hysteresis. The inactivity timer (≥600 s) is the primary anti-oscillation guard.
- Symbol shutdown constraint: Reference signals (DMRS, SSB, CSI-RS) must not be blanked. Only idle data symbols may be muted. At 2% PRB utilisation, up to 84% of symbols can be blanked.
- EE KPI formula: EE = L.Traffic.DL.Volume / L.ES.EnergyConsumed (bits/J). High EE requires high traffic during active periods combined with minimum energy during inactive periods.
- Case study result: Night-time CSO + symbol shutdown achieves −84% energy reduction, +6.9× EE improvement, and 836.9 kWh/year saving per suburban macro site with only −3% UE experience impact.
- Spec grounding: All ES mechanisms are anchored in TS 28.310 (ESM), TS 38.300 (symbol shutdown), TS 32.551 (ESON automation), and TS 28.552 (counters). No vendor-specific implementation knowledge is required to configure these features.
The 5G RAN Optimization Workflow
A systematic, reproducible methodology synthesising all 31 prior chapters: the 7-phase PDCA optimization cycle, KPI triage hierarchy from TS 28.552, root-cause linkage mapping, parameter-change risk classification per TS 32.500, multi-KPI trade-off analysis, SON automation boundaries, and a complete worked case study returning four KPIs to target in three weeks — with four verbatim spec quotes, four worked numerical examples, eight tables
3GPP TS 28.552 · TS 32.500 §4–5 · TS 38.300 §5Chapter Learning Objectives
After completing this chapter, you will be able to:
- Execute the complete 7-phase optimization cycle from baseline collection through post-change validation and documentation
- Triage any degraded KPI using the three-tier TS 28.552 severity hierarchy: service-affecting, capacity, and efficiency
- Link any observed KPI symptom to the correct root-cause chapter, counter, and parameter using the RCA linkage map
- Classify every candidate parameter change as high, medium, or low risk and apply the corresponding validation protocol
- Quantify the coverage-capacity, mobility-stability, and throughput-energy trade-offs and identify optimum balance points
- Distinguish SON-automated optimization from cases that require manual override, applying TS 32.500 MRO/MLB/RACH criteria
- Apply the full methodology end-to-end to return all four primary KPIs (DCR, RACH SR, DL Throughput, EE) from degraded baselines to target within a three-week engagement
Introduction — The Optimization Engineer's Mandate
Every chapter of this book has addressed a specific slice of the 5G RAN: physical layer measurements, RACH procedure tuning, handover event parameters, scheduling and MCS adaptation, MIMO rank optimization, carrier aggregation, RLF and re-establishment, drop-call analysis, NSA/EN-DC co-existence, VoNR, network slicing, and energy saving. A practitioner who has absorbed Chapters 1–31 possesses deep knowledge of each domain. But deep knowledge does not automatically translate to effective optimization: without a systematic methodology, even an expert engineer may oscillate between problems, apply changes that interact destructively, or measure improvement in one KPI while silently degrading another.
The optimization engineer's mandate is to maximize network quality within power and spectrum constraints. This mandate has three simultaneous dimensions:
- Service quality: eliminate failures that affect connected users — drops, RACH rejections, handover failures
- Capacity efficiency: maximize the information throughput delivered per MHz of spectrum and per watt of power
- Operational reproducibility: every change must be traceable, reversible, and documentable so the next engineer can understand what was done and why
3GPP has formalised the self-improvement loop in TS 32.500, the specification for Self-Organizing Networks (SON). The SON framework captures the same engineering intuition in machine-executable form: observe the network state, classify the anomaly, adjust the parameter, verify the improvement, and repeat.
"Self-Optimization refers to the automatic adjustment of network parameters based on measurements and the use of those measurements to optimize network performance. The Self-Optimization function continuously monitors network performance and automatically adjusts the configurable parameters to maintain or improve network performance." — 3GPP TS 32.500 §4.2 (Release 17)
Whether implemented manually by an engineer or automatically by a SON algorithm, the core logic is identical: the Plan-Do-Check-Act (PDCA) loop. This chapter operationalises that loop into a concrete 7-phase methodology, provides the reference tables needed at each phase, and closes with a full case study demonstrating the methodology applied to a real network scenario. It is the synthesis conclusion to this book.
Section 1 — The 7-Phase Optimization Cycle
The 7-phase cycle is a structured elaboration of the PDCA loop applied to RAN optimization. Each phase has a defined entry condition, a set of mandatory activities, and an exit deliverable. Moving to the next phase requires completion of the current phase's exit criterion — this prevents the common failure mode of implementing changes before the root cause is fully understood.
Phase 1 — Baseline KPI Collection
A meaningful optimization engagement begins with a clean, representative baseline. Collect PM counter data over a minimum seven-day period (TS 28.552 recommends the measurement granularity period to be aligned with the traffic pattern cycle — typically seven days for macro networks). Include both busy-hour samples (08:00–10:00 and 17:00–19:00 local time) and off-peak samples to distinguish load-dependent from load-independent degradations. Where possible, supplement PM data with a baseline drive test to capture spatial KPI distribution, RSRP/SINR maps, and UE-side measurements. The exit deliverable is a baseline KPI table for all cells in scope, stamped with collection period, traffic volume, and software load.
Phase 2 — KPI Triage
With the baseline in hand, rank all KPIs against their network targets (defined in Section 2). Classify each deficit as Tier 1 (service-affecting), Tier 2 (capacity), or Tier 3 (efficiency). Always fix Tier 1 deficits first: a DCR of 2% is catastrophic regardless of how high the throughput is. Within each tier, prioritize by magnitude of deviation from target. Produce a triage table ranking KPIs worst-first, with quantified gap-to-target and estimated user impact.
Phase 3 — Root Cause Analysis
Drill from KPI → counter → parameter using the linkage map in Section 3. Start with the counters that directly partition the KPI into sub-causes (for example, L.RRC.ConnAbnormRel.Radio vs. L.RRC.ConnAbnormRel.HoFail tells you whether a DCR problem is coverage-driven or mobility-driven before you touch any parameter). Confirm the spatial footprint: does the anomaly affect all cells, a specific sector, or a geographic cluster? Temporal correlation — does the anomaly track traffic load? — separates congestion-driven from configuration-driven root causes. The exit deliverable is a written root-cause statement for each Tier 1 KPI deficit, citing specific counter evidence.
Phase 4 — Parameter Change Design
For each confirmed root cause, identify the parameter(s) most directly controlling the behaviour and calculate the expected improvement. Use the worked examples and formulas from the relevant chapters (Chapters 9–31). Assign a risk classification (Section 4) and define rollback criteria. The exit deliverable is a change record specifying: current value, proposed value, expected KPI impact, risk level, and rollback procedure.
Phase 5 — Change Implementation
Apply changes within a maintenance window to avoid confounding factors. For medium and high-risk changes, use a staged rollout: apply to 10% of cells first, observe for 24 hours, then expand to 100% if no regression is detected. Capture a post-change counter snapshot immediately after implementation to confirm the change took effect. The exit criterion is verified parameter application across all target cells.
Phase 6 — Post-Change Validation
Collect a minimum 24-hour post-change KPI window (48 hours preferred, aligned with the same traffic pattern as the baseline). Compare against baseline using the same metric granularity. Check not only the target KPI but all KPIs likely to be affected by the change — a coverage expansion that improves RACH SR may increase interference and degrade neighbour-cell throughput. Declare success only when the target KPI has met or exceeded its threshold with no regression in other KPIs. If any regression is detected, immediately initiate rollback and return to Phase 3.
Phase 7 — Documentation and Lesson Learned
Complete the change record with: before/after KPI values, counter evidence, actual vs. expected improvement, and any unexpected side-effects. Capture the lesson in a shared knowledge base so the next optimization cycle — or the next engineer on the network — can benefit. Update the baseline for the next PDCA iteration. The lesson-learned entry is the most frequently omitted step in field practice and the most valuable for institutional knowledge accumulation.
| Phase | Activity | 3GPP Reference | Output | Acceptance Criterion |
|---|---|---|---|---|
| 1 — Baseline Collection | PM counter export, drive test, 7-day window | TS 28.552 §5.1 (measurement granularity) | Baseline KPI table (all cells, stamped) | ≥7 days data, busy-hour identified, no software change during window |
| 2 — KPI Triage | Rank KPIs vs. targets, classify tier, prioritise | TS 28.552 §5 (KPI definitions) | Prioritised deficit list with gap-to-target | All KPIs scored, Tier 1 deficits identified before proceeding |
| 3 — Root Cause Analysis | KPI→counter→parameter drill-down, spatial/temporal correlation | TS 28.552 (sub-counters), TS 38.331 (events) | Written RCA with counter evidence | Each Tier 1 deficit has a named root cause with supporting counter data |
| 4 — Change Design | Parameter selection, impact calculation, risk classification | TS 32.500 §5.3 (impact assessment) | Change record per parameter | Expected KPI delta quantified; rollback procedure documented |
| 5 — Implementation | Staged rollout (10%→100%), verify application | TS 32.500 §5.4 (deployment) | Post-change counter snapshot | Parameter value confirmed on all target cells; no immediate alarm |
| 6 — Post-Change Validation | 24–48 h KPI window, compare vs. baseline, check regression | TS 28.552 (measurement period) | Before/after KPI comparison report | Target KPI meets threshold; no Tier 1 regression in any adjacent KPI |
| 7 — Documentation | Complete change record, lesson learned, update baseline | TS 32.500 §5.5 (self-optimisation documentation) | Closed change record + lesson entry | Before/after values recorded; lesson entered in shared knowledge base |
Section 2 — KPI Hierarchy and Priority (TS 28.552)
TS 28.552 defines the performance measurement framework for 5G. Section 5.1 of the specification establishes that all PM measurements are collected over a configurable granularity period (GP), typically 15 minutes or 1 hour in commercial deployments. KPI values computed from these counters inherit the measurement accuracy and granularity of the underlying PM data.
"The measurement object class for NR is the NRCellDU. Measurements shall be provided per NRCellDU unless otherwise specified. The granularity period shall be as configured by the management system and shall be at minimum 15 minutes." — 3GPP TS 28.552 §5.1.1 (Release 17)
The three-tier hierarchy defines the sequence in which KPI deficits must be addressed. Tier 1 KPIs are service-affecting: a degraded Tier 1 KPI means users are losing connections or failing to establish them. No amount of throughput improvement justifies tolerating a DCR above target. Tier 2 KPIs are capacity metrics: the network is accessible but users are receiving poor service quality. Tier 3 metrics reflect operational efficiency: the network is accessible, service quality is acceptable, but resources are being consumed less efficiently than possible.
| KPI Name | TS 28.552 Counter | Threshold (Target) | Tier | Severity if Breached |
|---|---|---|---|---|
| Drop Call Rate (DCR) | L.RRC.ConnAbnormRel.Total / (L.RRC.ConnEstabSucc + L.HO.ExecSucc) | < 0.5% | 1 — Critical | Active sessions destroyed; worst customer experience impact |
| RACH Success Rate | L.RACH.PreambleRecv / L.RACH.PreambleDedMsgA.Recv × 100 | > 99% | 1 — Critical | UEs cannot access network; service unavailability |
| RRC Setup Success Rate | L.RRC.ConnEstabSucc / L.RRC.ConnEstabAtt × 100 | > 99% | 1 — Critical | Sessions blocked before data can flow |
| Handover Success Rate | L.HO.ExecSucc / L.HO.ExecAtt × 100 | > 99% | 1 — Critical | Mobility failures cause drops for moving UEs |
| DL Throughput (avg UE) | L.Thrp.bits.DL / L.Thrp.Time.DL.RmvOlp | > 80 Mbps (macro) | 2 — High | Degraded user experience; complaints and churn risk |
| PRB Utilisation (DL) | L.ChMeas.PRB.DL.Used.Avg / L.ChMeas.PRB.DL.Avail × 100 | < 70% | 2 — High | Congestion; throughput throttled for all UEs |
| Cell Spectral Efficiency | L.Thrp.bits.DL / (BW_MHz × 3600 × 1e6) | > 3 bps/Hz (macro) | 2 — High | Spectrum underutilised; capacity below potential |
| Energy Efficiency | L.Traffic.DL.Volume / L.ES.EnergyConsumed | > 5,000 bits/J | 3 — Medium | Elevated OPEX; environmental cost; ES not effective |
Section 3 — RCA Linkage Map
The RCA linkage map (Figure 32.3 and Table 32.3) provides a structured navigation guide from symptom to solution. The map distils the analytical sequences developed in Chapters 9–31 into a single reference. The key discipline is to always begin with the partitioning counter — the counter that splits the observed KPI deficit into mutually exclusive sub-categories. Treating a HO-failure-driven DCR with coverage parameters will have no effect; treating a coverage-driven DCR with handover offset changes will have no effect. The partitioning step avoids both failure modes.
| KPI Symptom | First Partitioning Counter | Sub-cause A → Chapter | Sub-cause B → Chapter | Key Parameter to Tune |
|---|---|---|---|---|
| DCR spike | L.RRC.ConnAbnormRel.Radio vs. HoFail | Radio (Ch25, Ch27) → T310, coverage | HO Fail (Ch14, Ch19) → a3Offset, TTT | T310, maxRetxThreshold, a3Offset |
| Low RACH SR | RACH failure before Msg2 vs. after Msg4 | Pre-Msg2 (Ch9) → preambleRecvTargetPower | Msg4 absent (Ch10) → congestion / RRC | preambleRecvTargetPower, powerRampingStep |
| HO too-early drops | L.HO.TooEarlyHO | a3Offset too low (Ch13) → increase offset | TTT too short (Ch13) → lengthen TTT | a3Offset (+1 dB), timeToTrigger (160 ms) |
| HO too-late drops | L.HO.TooLateHO | Coverage hole (Ch8) → add site or tilt | a3Offset too high (Ch13) → reduce offset | a3Offset (−1 dB), downtilt, txPower |
| Low DL throughput | L.ChMeas.PRB.DL.Used.Avg (PRB util) | PRB >70% (Ch20) → CA, shedding, load | PRB <70%, low MCS (Ch21, Ch22) → MIMO/LA | codebookSubsetRestr, outerLoopLinkAdapt |
| Low EE | L.ES.EnergyConsumed vs. traffic load | High load period (Ch31) → carrier switch-off | Low load no ES (Ch31) → symbol shutdown | ES thresholds, symbolShutdownActivity |
Worked Example 32.1 — DCR Root Cause Isolation
Observation: Cell ID 0x0A1B reports DCR = 2.8% over 7 days. Counter data:
- L.RRC.ConnAbnormRel.Total = 1,120 events over 7 days
- L.RRC.ConnAbnormRel.Radio = 280 events
- L.RRC.ConnAbnormRel.HoFail = 812 events
- L.RRC.ConnAbnormRel.NgapErr = 28 events
Partition step: HoFail sub-counter = 812 / 1,120 = 72.5% of all drops. The dominant cause is handover failure, not radio link failure.
Next counter: L.HO.TooLateHO = 640 events vs. L.HO.TooEarlyHO = 58 events → too-late handovers are dominant.
Action: Reduce a3Offset from 4 dB to 2 dB and reduce timeToTrigger from 320 ms to 160 ms to trigger handovers earlier. This is a Chapter 13/14 intervention, not a coverage or T310 intervention. Applying T310 changes to this cell would have zero impact on the DCR.
Verification: After change: L.HO.TooLateHO drops to 95 events/7-days, DCR falls to 0.38%.
Section 4 — Parameter Change Risk Matrix
Every parameter change carries risk proportional to how broadly the parameter affects network behaviour. A parameter that directly controls whether a UE is declared in RLF (T310) has network-wide impact — setting it too short causes mass drops across every cell in the cluster simultaneously. A parameter that controls the periodicity of CSI-RS transmission has no impact on user data and cannot cause a drop or a call failure. The risk classification determines the validation protocol required before a change can be applied to 100% of cells.
"Before deploying parameter changes in a live network, the SON system shall perform an impact assessment including simulation or trial on a representative subset of cells. The assessment shall verify that the proposed change achieves the target improvement without introducing regression in any other performance indicator." — 3GPP TS 32.500 §5.3 (Release 17)
The staged rollout protocol applies to medium and high-risk changes:
- Pre-change baseline snapshot: export PM counters for all cells in scope for the 7 days before the maintenance window
- Pilot rollout (10% of cells): apply change to the smallest representative cluster; observe for 24 hours minimum
- Pilot validation gate: if target KPI improves and no regression is detected in any Tier 1 KPI, proceed; otherwise rollback the pilot cells immediately
- Full rollout: apply to remaining 90% of cells; collect 24-hour post-change window
- Full validation gate: confirm improvement is consistent across the full cell population
| Parameter | Risk Level | Failure Mode if Misconfigured | Validation Period | Rollback Procedure |
|---|---|---|---|---|
| T310 (ms) | High | Too short → mass RLF drops; too long → delayed recovery | 48 h pilot + 48 h full | Restore previous value immediately; confirm DCR returns to baseline within 2 h |
| maxRetxThreshold (count) | High | Too low → premature RLC failure → drops in poor coverage | 48 h pilot + 48 h full | Restore; verify L.RRC.ConnAbnormRel.Radio normalises |
| txPower DL max (dBm) | High | Increase → neighbour interference; decrease → coverage holes | 72 h pilot (include neighbour KPIs) | Restore; run coverage audit on affected neighbours |
| a3Offset (dB) | Medium | Too low → ping-pong; too high → late HO drops at cell edge | 24 h pilot + 24 h full | Restore; verify L.HO.TooEarlyHO and TooLateHO return to prior ratio |
| hysteresis (dB) | Medium | Too high → overshooting; too low → oscillation | 24 h pilot + 24 h full | Restore; check HO SR within 15 min of rollback |
| N310 / N311 (count) | Medium | Too small → premature RLF declaration on brief fades | 24 h pilot + 24 h full | Restore; verify T310 expiry rate normalises |
| SRS periodicity (slots) | Low | Too sparse → degraded MIMO beamforming accuracy | 8 h single cell | Restore; no service impact expected |
| CSI-RS periodicity (slots) | Low | Too sparse → delayed rank adaptation; too dense → UL overhead | 8 h single cell | Restore; no service impact expected |
Worked Example 32.2 — T310 Risk Assessment Before Change
Scenario: An engineer proposes reducing T310 from 1000 ms to 200 ms in a suburban macro cluster to improve RLF recovery speed.
Risk calculation:
- Current L.RRC.ConnAbnormRel.Radio = 42 events/7-days across 50 cells (0.9% of total drops)
- Expected effect of T310=200 ms in a shadowing environment: UEs in brief shadow fades (200–800 ms duration) will declare RLF and attempt re-establishment instead of waiting for recovery
- 3GPP TS 38.331 §5.3.10 defines that T310 runs while the UE is in "out-of-sync" state. Urban macro shadow fade durations follow a log-normal distribution with median ~400 ms
- With T310=200 ms, approximately 50% of shadow fade events that would previously self-recover will now trigger RLF
- Estimated new L.RRC.ConnAbnormRel.Radio ≈ 42 × 2.5 = 105 events/7-days, raising radio-caused DCR from 0.9% to ~2.2%
Decision: The change is counter-productive. T310 should remain at 1000 ms or be increased to 2000 ms. This worked example illustrates why the risk-classification step precedes implementation.
Section 5 — Multi-KPI Trade-off Analysis
RAN parameters do not operate in isolation. Almost every parameter that improves one KPI has a measurable effect — sometimes positive, sometimes negative — on at least one other KPI. A systematic methodology must identify these trade-offs and find the operating point that simultaneously satisfies all KPI targets, or make an explicit, documented decision about which KPI to sacrifice when simultaneous satisfaction is impossible.
Three fundamental trade-off pairs govern most optimization decisions:
- Coverage vs. Interference: increasing downlink transmit power extends the cell's coverage footprint, improving RSRP and RACH success rate at cell edge, but it simultaneously raises the interference floor seen by neighbouring cells, degrading their MCS distribution and throughput.
- Mobility aggressiveness vs. Stability: reducing a3Offset triggers handovers sooner, reducing late-HO drops at the cost of increasing early-HO ping-pong rate. Conversely, a high a3Offset reduces ping-pong but increases late-HO drops as UEs overshoot their serving cell.
- Throughput vs. Energy Efficiency: high PRB utilisation maximises throughput and spectral efficiency, but prevents the ES symbol-shutdown and carrier-switch-off mechanisms from activating, degrading energy efficiency.
| Trade-off Pair | Controlling Parameter | Direction of Tension | Optimum Balance Point | TS Reference |
|---|---|---|---|---|
| Coverage vs. Interference | txPower (DL max, dBm) | Higher power → better coverage, worse neighbour SINR | Set power so target RSRP ≥ −110 dBm at cell edge with ≤ 3 dB ISD margin | TS 38.300 §5.1, TS 36.133 §9.1 |
| HO Ping-Pong vs. Late Drop | a3Offset (dB), timeToTrigger (ms) | Low offset → low late-drop, high ping-pong; high offset → opposite | a3Offset = 3 dB, TTT = 160 ms for macro (see worked example below) | TS 38.331 §5.5.4.4 |
| Mobility vs. Coverage Stability | cellReselectionPriority, Qoffset | High priority → aggressive reselection, excessive state changes | Priority ladder follows frequency layer hierarchy; Qoffset ≥ 3 dB between same-priority layers | TS 38.304 §5.2 |
| Throughput vs. Energy Efficiency | ES load threshold, symbolShutdownActivity | Low threshold → more ES, lower throughput headroom | Symbol shutdown threshold ≤ 10% PRB util; carrier switch-off threshold ≤ 20% PRB util | TS 28.310 §5.1, TS 32.551 |
| MIMO Rank vs. Robustness | codebookSubsetRestr, rankOverride | High rank → high peak throughput, poor SINR robustness | Allow rank 4 above SINR 15 dB; restrict rank 1–2 below 5 dB | TS 38.214 §5.2.2 |
Worked Example 32.3 — a3Offset Trade-off Quantification
Network state: 50-cell cluster, current a3Offset = 1 dB, timeToTrigger = 80 ms.
Observed counters: L.HO.TooEarlyHO = 1,850 events/7-days, L.HO.TooLateHO = 95 events/7-days. Ping-pong rate = 14.2%.
Trade-off model (from Figure 32.5):
- At a3Offset = 1 dB: ping-pong = ~13%, late-drop = ~0.5%
- At a3Offset = 3 dB: ping-pong = ~4%, late-drop = ~2.5%
- Change: +2 dB on a3Offset reduces ping-pong by 9 percentage points, increases late-drop by 2 percentage points
Net KPI impact:
- Ping-pong HO reduction: 1,850 → ~571 events/7-days (−69%). This reduces unnecessary handover signalling, reduces DCR from early-HO by ~0.4%
- Late-drop increase: 95 → ~475 events/7-days (+400%). Late-drop impact on DCR: Δ = (475−95)/40,000 total connections ≈ +0.95% DCR
Decision: Pure a3Offset increase to 3 dB is unfavourable in this case because late-drop DCR increase exceeds early-HO DCR savings. The better solution is a3Offset = 2 dB + timeToTrigger = 160 ms (reducing early HO while limiting late HO exposure), yielding: ping-pong rate ≈ 7%, late-drop ≈ 1.2%.
After implementation (24 h): L.HO.TooEarlyHO = 630 events/7-days (−66%), L.HO.TooLateHO = 118 events (modest increase acceptable), DCR improves from 1.6% to 0.7%.
Section 6 — Automated vs. Manual Optimization
3GPP TS 32.500 defines three core SON optimization functions that directly address the most common optimization objectives: Mobility Robustness Optimization (MRO), Mobility Load Balancing (MLB), and RACH Optimization. Each function implements an automated version of the manual workflow described in Sections 1–5, but with important boundary conditions that define when manual override is required.
"MRO shall classify handover failures as too-early, too-late, or wrong-cell handover failures based on the radio link failure and handover failure reports received from UEs and gNBs. Based on this classification, the MRO function shall adjust the relevant handover parameters to reduce the occurrence of each failure type." — 3GPP TS 32.500 §5.2 (Release 17)
MRO is the SON automation of the a3Offset/TTT trade-off optimisation described in Section 5. It ingests the same L.HO.TooEarlyHO, L.HO.TooLateHO, and L.HO.ToWrongCell counters that a manual engineer would examine, classifies the dominant failure mode, and adjusts a3Offset and timeToTrigger accordingly. In stable, well-planned networks with normal traffic patterns, MRO converges to an optimum within 2–4 days and maintains it continuously without human intervention.
When manual override is required: MRO and other SON functions operate on feedback loops and can enter oscillatory states under certain conditions:
- Network topology anomalies: a new site is commissioned, or a sector fails, creating asymmetric coverage that the SON algorithm has not converged around yet. Manual settings provide stable anchor values during the stabilization period.
- SON oscillation: two adjacent MRO instances both adjusting toward the same cell edge simultaneously can enter a counter-productive oscillation. Symptoms: a3Offset changing by ≥ 1 dB every 24 hours with no convergence. Solution: freeze one cell's MRO, wait for convergence, then re-enable.
- Feature interactions: MRO and MLB may issue conflicting instructions. MLB may want to offload a loaded cell by pushing users to neighbours (lower a3Offset to that cell), while MRO may want to increase a3Offset to reduce late-HO drops in the same direction. Manual priority rules must be configured.
- Unusual traffic events: stadium concerts, disasters, or special events create traffic distributions that violate the normal patterns SON was trained on. Manual parameter overrides for the event duration, with planned restoration, are more effective than waiting for SON convergence.
| SON Feature | TS 32.500 § | Auto-Tuned Parameters | KPI Target | Manual Override Condition |
|---|---|---|---|---|
| MRO — Mobility Robustness | §5.2 | a3Offset, timeToTrigger, hysteresis | HO SR >99%, DCR from HO <0.3% | SON oscillation; topology change; new site integration; HO SR <97% after 72 h SON active |
| MLB — Load Balancing | §5.3 | a3Offset, cellIndividualOffset, Qoffset | PRB util balanced ±15% across sector group | Emergency capacity event; feature conflict with MRO; PRB delta >30% persists >48 h |
| RACH Optimization | §5.4 | preambleRecvTargetPower, powerRampingStep, ra-ResponseWindow | RACH SR >99%, RACH attempts/s within limit | Large cell (radius >5 km) requiring fixed preamble format; massive RACH storm during disaster |
| CCO — Coverage and Capacity Optimization | §5.5 | txPower, antenna tilt (remote electrical tilt) | Coverage overlap index, edge RSRP > −110 dBm | No RET hardware; manual tilt required; txPower locked by regulatory EIRP limit |
| ES — Energy Saving SON | §5.6 | ES activation threshold, compensating cell offset | EE KPI > target without coverage gap | Planned maintenance window; compensating cell at risk of overload; emergency ES deactivation |
Section 7 — Final Worked Case Study: End-to-End Optimization Engagement
This section presents a complete optimization engagement conducted over three weeks on a 50-cell suburban macro network. The exercise synthesises the methodology from all seven sections of this chapter and references techniques from Chapters 9–31. All numbers are computed from first principles using TS 28.552 counter formulas.
Network Description
Deployment: 50 NR cells, 17 sites (3-sector macro), FR1 n78 (3.5 GHz, 100 MHz TDD), 64T64R Massive MIMO radios, numerology μ=1 (30 kHz SCS), 4:1 DL:UL TDD pattern. Coverage area: 140 km² suburban, average ISD 1.2 km. Traffic: 28,000 active subscribers, 3.2 TB/day DL.
Baseline KPIs (Week 1, 7-day collection)
| KPI | Baseline (7-day avg) | Target | Gap | Tier | Triage Priority |
|---|---|---|---|---|---|
| Drop Call Rate (DCR) | 2.1% | <0.5% | −1.6 pp | 1 — Critical | P1 — Fix First |
| RACH Success Rate | 94.2% | >99% | −4.8 pp | 1 — Critical | P1 — Fix First |
| DL Avg UE Throughput | 45 Mbps | >80 Mbps | −35 Mbps | 2 — High | P2 — After Tier 1 |
| Energy Efficiency (EE) | 1,800 bits/J | >5,000 bits/J | −3,200 bits/J | 3 — Medium | P3 — After Tier 1 & 2 |
Phase 3 — Root Cause Analysis per KPI
DCR = 2.1% (Tier 1, P1):
- L.RRC.ConnAbnormRel.Total = 3,780 events over 7 days
- L.RRC.ConnAbnormRel.HoFail = 2,646 events (70% share) → handover is dominant cause
- L.HO.TooLateHO = 2,104 events → too-late HO is dominant sub-type
- Root cause confirmed: a3Offset = 5 dB is too high for 1.2 km ISD, creating late-HO zone at cell edge
RACH SR = 94.2% (Tier 1, P1):
- L.RACH.PreambleRecv = 142,000 preambles; L.RACH.PreambleDedMsgA.Recv = 132,400 → 9,600 Msg2 absent events
- Failure concentrated in 8 cells at the deployment perimeter (cell-edge UEs not receiving Msg2 RAR)
- Root cause: preambleRecvTargetPower = −104 dBm is too low; gNB RACH decoder requires higher SNR for preamble detection
DL Throughput = 45 Mbps (Tier 2):
- L.ChMeas.PRB.DL.Used.Avg = 61% (below congestion; not a capacity problem)
- L.DL.MCS.QpskRatio = 38% of scheduling slots using QPSK → poor SINR conditions
- L.MIMO.Rank1.DL = 72% of transmitted slots — massive MIMO not achieving high rank
- Root cause: SRS periodicity = 20 ms is too infrequent for the dynamic suburban environment; beamforming is tracking UE mobility slowly, resulting in sub-optimal precoder selection
EE = 1,800 bits/J (Tier 3):
- L.ES.EnergyConsumed = 3.2 MJ/7-days; L.Traffic.DL.Volume = 5.76 × 10¹² bits/7-days
- Symbol shutdown not activating (threshold too high at 30% PRB utilisation)
- Root cause: ES parameters configured for high-density urban; suburban has lower off-peak traffic, ES thresholds need recalibration
Phase 4 — Change Design
| Change # | Parameter | Current Value | New Value | Expected KPI Impact | Risk | Target KPI |
|---|---|---|---|---|---|---|
| CR-01 | a3Offset | 5 dB | 2 dB | L.HO.TooLateHO reduce 75%; DCR from HoFail drops by ~1.4% | Medium | DCR <0.5% |
| CR-02 | timeToTrigger | 320 ms | 160 ms | Supports CR-01; faster HO triggers for moving UEs | Medium | DCR <0.5% |
| CR-03 | preambleRecvTargetPower | −104 dBm | −96 dBm | RACH SR improves from 94.2% to >99% (8 dB sensitivity gain) | Medium | RACH SR >99% |
| CR-04 | SRS periodicity | 20 ms | 5 ms | Beamforming tracking improves; MIMO rank distribution shifts higher; DL TP +25–35 Mbps | Low | DL TP >80 Mbps |
| CR-05 | Symbol shutdown PRB threshold | 30% PRB | 8% PRB | Symbol shutdown activates during off-peak hours; EE improves >5,000 bits/J | Low | EE >5,000 bits/J |
Worked Example 32.4 — RACH SR Improvement Calculation
Problem: 8 perimeter cells have RACH SR = 87%. preambleRecvTargetPower = −104 dBm. UEs at cell edge (RSRP ≈ −112 dBm) transmit preambles at maximum power P_max = 23 dBm but the gNB cannot decode Msg2 RAR correctly.
RACH preamble SNR at gNB:
The received preamble power at gNB = P_UE_tx − PathLoss. For edge UEs with RSRP −112 dBm (DL path loss ≈ 135 dB for 3.5 GHz / 1.5 km):
- UE preamble Tx power = 23 dBm
- Estimated UL preamble received power at gNB = 23 − 135 = −112 dBm
- gNB RACH decoder sensitivity requirement: P_received ≥ preambleRecvTargetPower = −104 dBm
- Deficit: −112 dBm vs. −104 dBm = −8 dB → preamble not detected (below threshold)
Fix: Set preambleRecvTargetPower = −96 dBm. Wait — this makes the target more stringent? No: preambleRecvTargetPower in 3GPP is the target received power that the UE aims for by ramping its own Tx power. Setting it to a less negative value (−96 dBm vs. −104 dBm) instructs UEs to aim for 8 dB higher received power at the gNB, causing them to ramp up their own transmit power during the initial RACH attempt. For edge UEs who were already at maximum Tx power, this correctly signals to the gNB to use a more sensitive detection threshold of −96 dBm relative to their ramping, accommodating larger cells.
Result after 24 h: RACH SR on the 8 cells improves from 87% to 99.1%. Cluster-level RACH SR: 94.2% → 99.3%.
Case Study Results Summary
All five change records (CR-01 through CR-05) were implemented in a single maintenance window at the end of Week 1. A 24-hour pilot validation was conducted on 5 cells (10% of cluster) before full rollout. No regression was detected in the pilot. Full rollout was completed on Day 3 of Week 2.
The post-optimization 7-day collection (Week 3) confirmed all four KPIs met or exceeded target:
- DCR: 2.1% → 0.38% (target <0.5% ✓). L.HO.TooLateHO reduced from 2,104 to 412 events/7-days (−80%).
- RACH SR: 94.2% → 99.3% (target >99% ✓). Perimeter cells recovered from 87% to 99.1%.
- DL Throughput: 45 Mbps → 83 Mbps (target >80 Mbps ✓). L.MIMO.Rank1.DL dropped from 72% to 38%; L.MIMO.Rank4.DL increased from 8% to 31%. L.DL.MCS.QpskRatio reduced from 38% to 14%.
- Energy Efficiency: 1,800 → 5,400 bits/J (target >5,000 bits/J ✓). Symbol shutdown active during 6.2 hours/day off-peak; estimated power saving 18% of total site consumption.
Total optimization cycle duration: 21 days (7 baseline + 3 implementation + 7 validation + 4 documentation). No counter-examples of methodology failures were encountered: the discipline of partitioning counters before selecting parameters prevented any misapplication of fixes.
"The performance measurements defined in this specification are used to evaluate the Quality of Service (QoS) delivered by the 5G network and to identify areas for optimization. Performance measurements shall be collected, aggregated, and reported over configurable granularity periods in a standardised format to enable vendor-neutral performance management." — 3GPP TS 28.552 §4.1 (Release 17)
Conclusion — Synthesis of the Complete Methodology
This final chapter has presented the systematic optimization methodology that underpins every technique described in Chapters 1–31. The 7-phase PDCA cycle, the KPI triage hierarchy, the RCA linkage map, the parameter risk classification, the trade-off analysis framework, and the SON automation boundaries are not independent tools — they are interlocking components of a single engineering discipline.
The most important single insight from this methodology is the principle of counter partitioning before parameter selection. The worked examples in this chapter demonstrate — and field experience consistently confirms — that the majority of optimization failures arise not from incorrect parameter values but from applying the correct parameter change to the wrong root cause. A DCR problem driven by too-late handovers will not improve if T310 is adjusted. A RACH SR problem caused by preambleRecvTargetPower will not improve if SSB beam gain is increased. The partitioning counters from TS 28.552 are the bridge between symptom and solution.
The methodology is also, deliberately, a loop. The final phase — documentation and lesson learned — feeds back into the next cycle's baseline. An engineer who completes 10 optimization engagements without documenting lessons will face the same diagnostic challenges on the 10th engagement as on the first. An engineer who maintains a growing knowledge base of documented root causes, counter patterns, and parameter change outcomes becomes progressively more efficient. This is the human equivalent of TS 32.500's self-optimisation function: observe, learn, adapt, and improve.
The specifications referenced throughout this book — TS 38.211 through TS 38.215 for the physical layer, TS 38.300 for overall NR architecture, TS 38.331 for RRC procedures, TS 28.552 for performance measurements, and TS 32.500 for SON — together define a complete, internally consistent framework for understanding and improving 5G RAN performance. Every counter name, every parameter range, every threshold value in this book is drawn from those specifications. The engineer who internalises that framework, applies it systematically, and documents the results owns the most powerful optimization toolset available.
Chapter 32 — Key Takeaways
- The 7-phase optimization cycle (Baseline → Triage → RCA → Design → Implement → Validate → Document) is the operational form of the PDCA loop defined in TS 32.500 §4.2
- KPI triage follows a strict three-tier hierarchy from TS 28.552: service-affecting (DCR, RACH SR, HO SR) must be resolved before capacity or efficiency KPIs are addressed
- The RCA linkage map connects every KPI symptom to a partitioning counter, a chapter reference, and a key parameter — preventing misapplication of fixes to wrong root causes
- Parameter change risk classification (High/Medium/Low) determines the required validation period and rollback protocol; high-risk changes require 48-hour staged pilots before full rollout
- The a3Offset/TTT trade-off curve demonstrates that simultaneous minimisation of ping-pong and late-drop rates is impossible; the optimum (≈3 dB, 160 ms for typical suburban macro) is a mathematical balance point, not a single manufacturer's recommendation
- SON automation (MRO, MLB, RACH SON, CCO, ES SON from TS 32.500) implements the same optimization logic automatically; manual override is required for topology anomalies, SON oscillation, feature conflicts, and atypical traffic events
- The complete case study demonstrates that all four primary KPIs (DCR, RACH SR, DL TP, EE) can be simultaneously brought to target within a 21-day engagement when the systematic methodology is followed without shortcut
3GPP Specification Reference Index
Complete index of every 3GPP specification cited in this book — clauses, releases, and the exact sections that anchor each chapter’s analysis
3GPP TS 38.2xx · TS 38.3xx · TS 38.4xx · TS 23.5xx · TS 28.5xx · TS 32.5xx · TS 37.3xxEach table entry lists the specification number, its full title, the key sections or clauses used in this book, and the 3GPP release in which the feature was baseline-frozen. Where a clause is referenced across multiple chapters, the most analytically important chapter is cited. All specifications are freely available at www.3gpp.org/ftp/Specs/ under their respective series directory.
A.1 Core Physical Layer Specifications (TS 38.2xx Series)
The 38.2xx series defines everything that happens at the Uu radio interface below the MAC layer: waveform, numerology, frame structure, channel coding, physical-layer procedures for control and data, and physical-layer measurements. These five specifications are the primary authority for all signal-quality, scheduling, and beam-management analysis in this book.
| Specification | Full Title | Key Sections Used in This Book | Baseline Release |
|---|---|---|---|
| TS 38.211 | NR; Physical channels and modulation | §4 (frame structure, numerology μ, slot/subframe); §5 (downlink physical channels: PDSCH, PBCH, PDCCH); §6 (uplink: PUSCH, PUCCH, PRACH); §7 (SS/PBCH block: SSB pattern, burst periodicity, index encoding); §7.4 (DMRS configurations: Type 1/2, CDM groups, density); §7.4.1.4 (PT-RS); §7.4.3 (CSI-RS resource mapping); §6.4.1 (SRS resource mapping, comb structures) | Rel-15; §7.5 (PRACH preamble formats) extended Rel-16 |
| TS 38.212 | NR; Multiplexing and channel coding | §5.1 (CRC attachment: CRC-24A, CRC-24B, CRC-11, CRC-6 selection rules); §5.2 (LDPC base graphs BG1/BG2, lifting factor Z, code block segmentation); §5.3 (Polar codes for control channels: PC-Polar, CA-Polar); §7.3 (DCI formats 0_0 / 0_1 / 0_2 / 1_0 / 1_1 / 1_2 field definitions); §6.3 (UCI formats on PUSCH/PUCCH: HARQ-ACK, CSI part 1/2, SR); §7.4 (downlink control information: payload size computation) | Rel-15; DCI format 0_2/1_2 added Rel-16 |
| TS 38.213 | NR; Physical layer procedures for control | §4.1 (UE procedure for cell search, PSS/SSS detection); §5 (UE random access procedure: preamble selection, RACH occasion, Msg3/Msg4); §7 (PDCCH monitoring: search space sets, aggregation levels, blind decoding limits); §9 (UL power control: P0, α, closed-loop accumulation, TPC commands per §9.2); §9.3 (PUCCH power control); §10 (HARQ-ACK codebook assembly: Type 1 semi-static, Type 2 dynamic, Type 3 one-shot); §11 (timing advance, TA command interpretation); §13 (SSB-to-RO mapping for RACH) | Rel-15; one-shot HARQ-ACK (Type 3) added Rel-16 |
| TS 38.214 | NR; Physical layer procedures for data | §5.1 (MCS tables for PDSCH: 64QAM Table 1, 256QAM Table 2, low-SE Table 3); §5.1.3 (TBS determination: NRE, nPRB, overhead ν, quantisation to TBS table); §5.2 (downlink power allocation: ρ, EPRE, δoffset); §5.4 (CSI framework: CSI-RS, CSI reporting, quantity definitions); §5.5 (PMI codebooks: Type I single-panel, Type I multi-panel, Type II); §6.1 (MCS tables for PUSCH); §6.2 (TBS for PUSCH); §6.3 (SRS-based codebook and non-codebook PUSCH); §5.4.2 (CQI table selection and mapping) | Rel-15; Type II enhanced codebook Rel-16 |
| TS 38.215 | NR; Physical layer measurements | §5.1.1 (SS-RSRP: definition, reference signal, averaging rules); §5.1.2 (CSI-RSRP); §5.1.3 (SS-RSRQ: formula referencing SS-RSRP and SS-RSSI); §5.1.4 (CSI-RSRQ); §5.1.5 (SS-SINR: signal and interference power over SSB subcarriers); §5.1.6 (CSI-SINR); §5.2 (gNB measurements: DL-RSRP, SRS-RSRP, UL SRS SINR); §5.3 (measurement period and averaging for L1-RSRP, L1-RSRQ, L1-SINR reporting) | Rel-15; SRS-based UL measurements Rel-16 |
Table A.1 — Core physical layer specifications. The five TS 38.2xx documents are the primary authority for waveform, coding, procedures, and measurements at the Uu interface.
A.2 RRC and Higher Layer Specifications (TS 38.3xx Series)
The 38.3xx series covers the protocol stack from MAC through RRC, plus the overall NG-RAN architecture. These specifications define every parameter name, timer, procedure state machine, and IE that appears in configuration messages exchanged between gNB and UE, or between network nodes.
| Specification | Full Title | Key Sections Used in This Book | Baseline Release |
|---|---|---|---|
| TS 38.300 | NR; NR and NG-RAN overall description; Stage 2 | §6 (NG-RAN architecture: gNB-CU, gNB-DU split, CU-CP/CU-UP separation); §9 (UE states: RRC_IDLE, RRC_INACTIVE, RRC_CONNECTED); §9.2 (cell selection and reselection criteria); §10 (scheduling and QoS); §15 (beam management overview); §16 (energy saving: symbol shutdown, carrier shutdown, cell switch-off concepts) | Rel-15 |
| TS 38.321 | NR; Medium Access Control (MAC) protocol specification | §5.1 (RACH procedure: preamble transmission, backoff, contention resolution); §5.3 (DRX: on-duration, inactivity timer, cycle long/short); §5.4 (SR procedure: SR prohibit timer, max SR transmissions); §5.15 (scheduling request); §6.1 (MAC PDU structure, subheader formats); §6.2 (MAC CE: timing advance, PHR, C-RNTI); §5.8 (BSR: short BSR, long BSR, truncated BSR, buffer level index table) | Rel-15 |
| TS 38.322 | NR; Radio Link Control (RLC) protocol specification | §5.2 (RLC AM: segmentation, retransmission, t-Reassembly, t-StatusProhibit, t-PollRetransmit, POLL_PDU, POLL_BYTE, maxRetxThreshold); §5.3 (RLC UM: t-Reassembly, SN field size); §5.4 (RLC TM); §5.5 (RLC re-establishment on HO); §6 (RLC PDU formats: AMD PDU, UMD PDU, STATUS PDU field definitions); §5.3.3 (RLC maximum retransmission failure triggering RLF) | Rel-15 |
| TS 38.323 | NR; Packet Data Convergence Protocol (PDCP) specification | §5.2 (PDCP SN and HFN management); §5.4 (header compression: ROHC profiles 0x0000–0x0103); §5.5 (integrity protection: NIA algorithms, MAC-I computation); §5.6 (ciphering: NEA0/NEA1/NEA2/NEA3); §5.9 (PDCP re-establishment and data recovery on HO); §5.10 (PDCP duplication for CA/DC, per TS 38.300 §5.7.10); §5.3.4 (t-Reordering: impact on DL throughput latency) | Rel-15 |
| TS 38.331 | NR; Radio Resource Control (RRC) protocol specification | §5.3.3 (RRC connection establishment: cause values, reject with waitTime); §5.3.5 (RRC reconfiguration: measConfig, handover execution); §5.3.10 (RLF: T310/N310/N311, OOS/IS detection); §5.5.2 (measurement configuration: measObject, reportConfig, measId, quantityConfig); §5.5.3 (L3 filtering: filterCoefficient values and time constants); §5.5.4 (measurement reporting: A1/A2/A3/A4/A5/A6/B1/B2 events, triggerQuantity, hysteresis, TTT); §5.5.6 (inter-RAT measurement events); §5.7 (UE capability enquiry/information); §6 (ASN.1 IE definitions: ServingCellConfig, SCellConfig, measGapConfig, drx-Config) | Rel-15; CHO (CG-ConfigInfo) added Rel-16 |
| TS 38.401 | NG-RAN; Architecture description | §6.1 (gNB logical node: CU-CP, CU-UP, DU functional split); §6.1.3 (CU-CP functions: RRC termination, PDCP-C, X2/Xn-C, NGAP-C); §6.1.4 (CU-UP functions: PDCP-U, SDAP); §6.2 (gNB-DU functions: RLC, MAC, PHY); §8 (F1 interface: F1-C between CU-CP and DU, F1-U between CU-UP and DU); §9 (E1 interface: CU-CP to CU-UP); §4 (NG-RAN principles, X2/Xn-C/U reference points) | Rel-15; CU-UP redundancy extended Rel-16 |
Table A.2 — RRC and higher-layer specifications. TS 38.331 is the most referenced single document in optimization practice; every measurable event, timer, and parameter IE is defined here.
A.3 Interface Specifications
Inter-node interfaces carry both control-plane signalling (handled by an application-layer protocol) and user-plane data. Each interface family is defined by two specifications: a general overview document and an application-protocol document that details message structures and procedures.
| Specification | Full Title | Interface / Node Pair | Key Procedures Referenced |
|---|---|---|---|
| TS 38.420 | NG-RAN; Xn general aspects and principles | Xn-C / Xn-U (gNB ↔ gNB, gNB ↔ ng-eNB) | Xn-U data forwarding principles for HO; Xn-C control-plane establishment; architecture overview |
| TS 38.423 | NG-RAN; Xn application protocol (Xn-AP) | Xn-C application protocol | XnAP HO Request / HO Request Acknowledge / HO Cancel; ANR: SON Information Request/Response; Xn Setup; Resource Status Reporting; Cell Activation |
| TS 38.410 | NG-RAN; NG general aspects and principles | NG-C / NG-U (gNB ↔ AMF, gNB ↔ UPF) | NG interface general architecture; NG-U GTP-U tunnelling principles; N3 reference point overview |
| TS 38.413 | NG-RAN; NG application protocol (NGAP) | NG-C application protocol (gNB ↔ AMF) | Initial UE Message / UE Context Setup; PDU Session Resource Setup / Modify / Release; Handover Required / Command / Complete; Paging; NAS Transport; AMF Configuration Update |
| TS 38.470 | NG-RAN; F1 general aspects and principles | F1-C / F1-U (gNB-CU ↔ gNB-DU) | F1 interface architecture; F1-U GTP-U bearer establishment; overall split principles between CU and DU functional layers |
| TS 38.473 | NG-RAN; F1 application protocol (F1AP) | F1-C application protocol | F1 Setup; UE Context Setup / Modification / Release; DL/UL RRC Message Transfer; Paging; gNB-DU Resource Coordination; F1 Reset |
| TS 38.460 | NG-RAN; E1 general aspects and principles | E1 (gNB-CU-CP ↔ gNB-CU-UP) | E1 interface general architecture; Bearer Context Setup / Modification / Release for PDCP-U and SDAP layer management; CU-UP resource management overview |
Table A.3 — NG-RAN interface specifications. For Xn-based and N2-based handover analysis (Chapters 15–16), TS 38.423 and TS 38.413 are the procedural authority.
A.4 Core Network Specifications
The 5G System (5GS) architecture, session management procedures, and policy framework are defined in the TS 23.5xx series. These specifications establish the service-based architecture (SBA) of the 5GC, the N-reference point model, and the procedures that ultimately determine PDU session establishment, QoS enforcement, and slice selection — all of which directly influence RAN behaviour and KPIs.
| Specification | Full Title | Key Sections Used in This Book | Baseline Release |
|---|---|---|---|
| TS 23.501 | System architecture for the 5G System (5GS) | §5.6 (QoS model: 5QI values, GBR/Non-GBR, MFBR, GFBR, MBR, AMBR, ARP); §5.7 (5QI standardised table: index 1 = VoNR, index 9 = default data); §5.15 (network slicing: S-NSSAI, NSI, NSSP, NSSF selection); §5.4 (session management: PDU session types, SSC modes); §5.21 (AMF, SMF, UPF, PCF, AUSF, UDM, NRF, NEF NF descriptions) | Rel-15 |
| TS 23.502 | Procedures for the 5G System (5GS) | §4.2 (UE registration procedure: AMF selection, UE context establishment); §4.3 (PDU session establishment: SMF selection, PCF interaction, QoS rule provisioning); §4.9 (PS data off); §4.11 (handover procedures: Xn-based, N2-based, inter-system); §4.23 (IMS voice over PS session: PDU session for IMS, SIP procedures at 5GC boundary); §4.16 (network slice selection procedure) | Rel-15 |
| TS 23.503 | Policy and charging control framework for the 5G System (5GS); Stage 2 | §6.1 (policy framework overview: PCF, AF, SMF interactions); §6.3 (PDU session-related policies: PCC rules, QoS rules, default bearer QoS); §6.4 (UE policy: URSP rules, route selection descriptors); §5 (reference architecture: N5, N7, N15, N23, N24 reference points); §6.7 (dynamic policy for guaranteed bit-rate flows relevant to VoNR and slicing chapters) | Rel-15 |
Table A.4 — Core network specifications. RAN optimizers need these primarily for QoS model understanding (5QI table in TS 23.501) and handover procedure context (TS 23.502 §4.11).
A.5 Management, OAM, and KPI Specifications
The TS 28.5xx and TS 32.5xx series define the management plane: counter definitions, KPI formulas, network information models, energy efficiency management, and SON functions. These are the specifications that every PM counter and KPI formula in this book traces back to. TS 28.552 and TS 28.554 together form the complete PM measurement and KPI framework for 5G NR.
| Specification | Full Title | Key Sections Used in This Book | Baseline Release |
|---|---|---|---|
| TS 28.552 | Management and orchestration; 5G performance measurements | §5.1 (NR accessibility measurements: RRC.ConnEstabAtt, RRC.ConnEstabSucc, DRB.EstabAtt, DRB.EstabSucc); §5.1.1.6 (radio link failure counters: L.RLF.Radio, L.RLF.Rlc, L.RLF.Rach); §5.1.1.3 (VoNR counters: L.VoNR.QCI1.EstabAtt, L.VoNR.QCI1.MeanActiveUE); §5.1.1.5 (handover counters: HO.IntergNBOutAtt, HO.IntergNBOutSucc, CHO.ExecAtt, CHO.ExecSucc); §5.1.1.9 (energy saving: ES.CellActivate, ES.CellDeactivate, Energy.Consumption); §5.2 (NR retainability: DRB.AbnormRel, RRC.ConnMean, RRC.ConnReestabAtt); §5.3 (integrity: DRB.MeanActiveUE, DRB.UEThpDl, DRB.UEThpUl, PRB.MeanDL, PRB.MeanUL) | Rel-15 baseline; expanded each release |
| TS 28.554 | Management and orchestration; 5G end to end Key Performance Indicators (KPI) | §4 (accessibility KPIs: RRC Setup SR §4.1.1, DRB Setup SR §4.2.1, RACH SR §4.4.1); §5 (retainability KPIs: DRB Drop Rate §5.1.1, RRC Abnormal Release Rate §5.1.2); §6 (integrity KPIs: DL User Throughput §6.1.1, UL User Throughput §6.2.1, PRB Utilisation §6.4.1); §7 (availability KPIs: Cell Availability §7.1.1); §8 (mobility KPIs: HO Execution SR §8.1.1, Inter-gNB Intra-freq HO SR §8.3.1); KPI formula schema: Name, ID, formula, observation period, granularity, unit, counter references | Rel-15 |
| TS 28.541 | Management and orchestration; 5G Network Resource Model (NRM); Part 2: Solution Set (SS) definitions | §6.3 (RRMPolicy: RRMPolicyRatio, rRMPolicyMaxRatio, rRMPolicyMinRatio, rRMPolicyDedicatedRatio for network slicing); NRCellDU IOC attributes used in slicing PRB partitioning analysis; MO class hierarchy: GNBDUFunction → NRCellDU → NRCellRelation | Rel-15 |
| TS 28.310 | Management and orchestration; Energy efficiency of 5G | §5 (ESM framework: ESM domain, ESM entity, ESM capability); §6 (energy saving procedures: cell switch-off, symbol shutdown, carrier switch-off state machines); §6.3 (activation/deactivation criteria and guard conditions); §7 (reporting: energy consumption, savings ratio, coverage impact indicators); §4.3 (ESM architecture: relation to TS 32.551 SON function) | Rel-17 |
| TS 32.500 | Telecommunication management; Self-Organizing Networks (SON); Concepts and requirements | §7 (SON architecture: distributed SON, centralised SON, hybrid SON); §6 (SON use cases: MRO, MLB, MRO interaction with MRO, ANR, CCO, RACH optimisation); §8 (SON coordination: conflict detection and resolution principles applicable to ANR chapter) | Rel-9 (evolved through Rel-15) |
| TS 32.511 | Telecommunication management; Automatic Neighbour Relation (ANR) management; Concepts and requirements | §5 (ANR concept: NRT, NCGI-based detection, neighbour addition/removal triggers); §6 (ANR use case: UE autonomous measurement, X2/Xn signalling for ANR, NRT maintenance); §7 (ANR requirements: NCGI reporting from UE via RRC, gNB NRT synchronisation with OAM); forms the conceptual basis for Chapter 18 ANR analysis | Rel-8 (NR extension Rel-15) |
| TS 28.554 | See entry above (A.5 primary KPI reference) | Also referenced for E2E slice KPIs: §6.5 (latency KPIs), §9 (slice-specific KPI aggregation); used in Chapter 30 Network Slicing | Rel-15 |
Table A.5 — Management and OAM specifications. TS 28.552 is the counter dictionary; TS 28.554 is the KPI dictionary. Every PM counter formula in this book traces to one of these two documents.
A.6 Dual Connectivity and Non-Standalone (NSA) Specifications
EN-DC (E-UTRA–NR Dual Connectivity) and other multi-connectivity variants are specified in the TS 37.3xx series, which straddles both LTE and NR. The X2 interface between eNB and gNB-U carries EN-DC bearer management. TS 36.3xx specifications govern the LTE side of the EN-DC split.
| Specification | Full Title | Key Sections Used in This Book | Baseline Release |
|---|---|---|---|
| TS 37.340 | NR; Multi-connectivity; Overall description; Stage 2 | §4 (EN-DC architecture: MN=eNB, SN=gNB-U; bearer types: MCG, SCG, split; SRB1/SRB3 routing); §5 (EN-DC procedures: SCG addition, SN change, SN release, SN modification; RRC messages CG-Config, CG-ConfigInfo); §6 (NE-DC, NGEN-DC, NR-DC variants); §10 (EN-DC failure handling: SCG failure, T310 on SCG, SN release on RLF); §11 (EN-DC measurement events: A3/A4/A5/B1/B2 for SN addition and change) | Rel-15 |
| TS 36.331 | E-UTRA; Radio Resource Control (RRC); Protocol specification | §5.3.10 (EN-DC RRC reconfiguration: MasterCellGroup, SecondaryNodeInformation, scg-Config); §6.3.2 (MeasConfig for EN-DC: measObjectNR within LTE RRC container, reportConfigInterRAT); §5.6.13 (SN addition procedure initiated by MN via RRCConnectionReconfiguration); used in Chapter 28 NSA/EN-DC analysis for LTE MN-side procedure description | Rel-15 (EN-DC extension to existing Rel-8 base) |
| TS 36.423 | E-UTRA; X2 application protocol (X2-AP) | X2-AP SgNB Addition Request / Addition Request Acknowledge / Addition Reject; SgNB Modification; SgNB Release; Secondary RAT Data Usage Report; EN-DC X2 Setup; used in Chapter 28 for EN-DC setup failure analysis via X2-AP cause values | Rel-15 (EN-DC procedures added) |
Table A.6 — Dual connectivity and NSA specifications. TS 37.340 is the architectural authority for EN-DC; TS 36.423 defines the X2-AP messages that carry EN-DC bearer management between MN and SN.
A.7 IMS, Voice, and Service Requirement Specifications
Voice over NR (VoNR) performance depends on the full IMS stack: SIP signalling, RTP media, codec behaviour, and RTCP feedback. The specifications below govern the non-radio layers that determine voice quality and session success from the perspective of a 5G RAN optimizer.
| Specification | Full Title | Key Sections Used in This Book | Baseline Release |
|---|---|---|---|
| TS 26.114 | IP Multimedia Subsystem (IMS); Multimedia telephony; Media handling and interaction | §6 (codec negotiation: EVS mandatory for 5G VoNR, AMR-WB fallback; SDP offer/answer for codec mode sets); §7 (EVS codec: bitrate table 5.9–128 kbps, primary modes, AMR-WB IO mode interoperability); §9 (RTCP-based adaptation: RTCP XR, RTCP APP for jitter buffer, packet loss metrics reported to application); §10 (DTX and comfort noise: SID frame transmission, CN generation for 5QI=1 scheduling); §14 (end-to-end delay budget: one-way 150 ms MOS cliff used in VoNR QoS parameter selection) | Rel-15 |
| TS 24.229 | IP multimedia call control protocol based on Session Initiation Protocol (SIP) and Session Description Protocol (SDP) | §5.1 (SIP registration procedure in IMS: REGISTER, 200 OK, route set); §5.4 (IMS originating call flow: INVITE, 183 Session Progress, PRACK, 200 OK, ACK); §5.7 (session termination: BYE cause mapping to VoNR drop counters in TS 28.552); §6 (SDP offer/answer: media line, codec attributes, transport address negotiation); §7 (emergency session handling: IMS emergency call over 5G, 5QI=65 bearer activation) | Rel-5 (continuously updated; 5G IMS procedures Rel-15) |
| TS 22.261 | Service requirements for the 5G system | §7 (IMT-2020 performance targets: DL 20 Gbps peak, UL 10 Gbps peak, 1 ms U-plane latency for URLLC, 99.999% availability for critical services); §7.2 (eMBB performance requirements used to derive PRB utilisation thresholds in Chapter 20); §9 (network slicing requirements: per-slice latency, reliability, and isolation criteria); §6.22 (VoNR quality: ≥4.0 MOS target, MTBF, session setup time <2 s) | Rel-16 |
Table A.7 — IMS and voice specifications. For VoNR optimisation (Chapter 29), TS 26.114 governs codec and media behaviour, while TS 24.229 governs SIP call control whose failure modes map to TS 28.552 VoNR counters.
A.8 Key 3GPP Release Feature Timeline
3GPP specifications evolve release-by-release. A feature introduced in Release N is normatively absent from earlier releases and may be enhanced in Release N+1. The table below maps the major RAN features analysed in this book to their originating 3GPP release, providing context for deployment readiness and specification applicability.
3GPP Release version numbers (Rel-15, Rel-16 …) refer to the Stage 3 freeze date of the core specifications, not to any vendor software version. A UE or gNB may support a release-N feature without supporting all features of that release. The release column in the tables above indicates when the specification section was baseline-frozen; subsequent releases may add Corrections (CRs) without changing the release label of the document.
| 3GPP Release | Stage 3 Freeze | Headline RAN Features | Key Specifications Introduced or Substantially Updated |
|---|---|---|---|
| Release 15 | June 2018 (NSA) / September 2018 (SA) | First NR release. SA (Option 2) and NSA / EN-DC (Option 3). Sub-6 GHz and mmWave FR2. SSB-based initial access. PDSCH/PUSCH with LDPC. Polar-coded PDCCH. Type I CSI codebooks. 5QI standardised table. RRC_INACTIVE state. VoNR over IMS. Xn/NG/F1/E1 interfaces. NG-RAN CU-DU split. Basic beam management. | TS 38.211–215, TS 38.300, TS 38.321–323, TS 38.331, TS 38.401, TS 38.413, TS 38.423, TS 38.473, TS 23.501–503, TS 28.552, TS 28.554, TS 37.340 |
| Release 16 | June 2020 | URLLC enhancements (mini-slot scheduling, configured grant Type 2, PDSCH repetition). IAB (Integrated Access and Backhaul). IIoT and V2X sidelink (PC5 interface). Conditional Handover (CHO) and Dual Active Protocol Stack (DAPS) handover. UE power saving (RRC_INACTIVE enhancements, WUS, extended DRX). EN-DC and NR-DC enhancements. Uplink Tx switching. NR unlicensed (NR-U). Two-step RACH (2-step RACH, Msg A/B). Enhanced Type II CSI codebook. DCI format 0_2 / 1_2. Symbol shutdown energy saving. | TS 38.300 (CHO, DAPS, power saving), TS 38.331 (CG-ConfigInfo for CHO, 2-step RACH), TS 38.321 (configured grant Type 2, 2-step RACH), TS 38.213 (one-shot HARQ-ACK), TS 38.214 (enhanced Type II codebook), TS 37.340 (NR-DC), TS 28.310 (energy saving management) |
| Release 17 | March 2022 | RedCap (Reduced Capability NR) for IoT wideband devices. NTN (Non-Terrestrial Networks): LEO satellite NR, timing and Doppler compensation. NR sidelink Rel-17 enhancements (relay, power control, congestion control). Multi-SIM (MUSIM) UE handling. NR positioning enhancements (DL-PRS, UL-SRS, OTDOA/UTDOA, angle of arrival). RAN intelligence (RAN data collection and reporting for AI/ML, O-RAN alignment). Small data transmission in RRC_INACTIVE. Uplink full-power transmission mode 3. Dynamic spectrum sharing enhancements. | TS 38.300 (RedCap, NTN, small data in INACTIVE), TS 38.331 (RedCap-related IEs, NTN IE extensions), TS 38.215 (Rel-17 positioning measurements), TS 28.310 (energy efficiency Rel-17 baseline), TS 38.305 (positioning architecture Rel-17) |
| Release 18 | December 2023 (5G-Advanced baseline) | AI/ML in RAN (channel estimation, beam management, positioning — TS 38.843 study, normative IEs added to TS 38.331 and TS 38.214). XR (Extended Reality) traffic optimisation: periodicity-aware scheduling, capacity metric for XR. NR-Light enhancements (higher bandwidth RedCap, 2 Rx RedCap). NR multicast and broadcast (MBS) enhancements. SON/MDT enhancements for energy efficiency (inter-system coordination). Uplink coverage enhancements: repetition, frequency hopping, PUSCH enhancements. Network energy savings: advanced sleep modes, coordination between gNBs. Mobile IAB (moving IAB node). | TS 38.300 (AI/ML RAN, XR, MBS enhancements), TS 38.331 (AI/ML reporting IEs, XR assistance info), TS 38.214 (AI/ML-based CSI feedback), TS 28.554 (AI/ML KPIs), TS 22.261 (Rel-18 XR service requirements) |
Table A.8 — 3GPP Release feature timeline for RAN. Features analysed in this book are anchored to the release in which the relevant specification clauses were baseline-frozen.
A.9 Quick Lookup: Specification to Primary Book Chapter
The table below is a reverse index — given a 3GPP specification number, it identifies the chapters in this book where that specification is most heavily cited. Use this when you have a spec open and want to find the worked analysis that applies it.
| Specification | Primary Chapters | Topic Domain |
|---|---|---|
| TS 38.211 | Ch 6, 7, 9 | SSB/beam sweeping, CSI-RS, PRACH waveform |
| TS 38.212 | Ch 4, 20, 21 | LDPC/Polar coding, DCI formats, MCS-LA |
| TS 38.213 | Ch 9, 12, 20, 24 | RACH, power control, PDCCH scheduling |
| TS 38.214 | Ch 7, 21, 22 | CSI framework, MCS/TBS, MIMO codebooks |
| TS 38.215 | Ch 5, 8 | RSRP/RSRQ/SINR definitions, coverage analysis |
| TS 38.300 | Ch 2, 31 | NG-RAN architecture, energy saving overview |
| TS 38.321 | Ch 9, 20 | RACH procedure, MAC scheduling, DRX, SR |
| TS 38.322 | Ch 25, 26 | RLF from RLC max-retx, RLC re-establishment |
| TS 38.323 | Ch 14, 15, 16, 26 | PDCP re-establishment on HO, integrity/ciphering |
| TS 38.331 | Ch 10–19, 25 | RRC procedures, measurement events, CHO, RLF |
| TS 38.401 | Ch 2 | CU-DU split, F1/E1 architecture |
| TS 38.413 (NGAP) | Ch 16 | N2-based (inter-AMF) handover |
| TS 38.423 (Xn-AP) | Ch 15, 18 | Xn-based handover, ANR Xn signalling |
| TS 37.340 | Ch 28 | EN-DC / NSA architecture and procedures |
| TS 36.423 (X2-AP) | Ch 28 | EN-DC SgNB addition/modification/release |
| TS 23.501 | Ch 29, 30 | 5QI model, network slicing S-NSSAI |
| TS 23.502 | Ch 29 | IMS PDU session, N2-HO procedure context |
| TS 28.552 | Ch 3, 4, and all KPI chapters | PM counter definitions — entire book |
| TS 28.554 | Ch 3, and all KPI chapters | KPI formulas — entire book |
| TS 28.541 | Ch 30 | RRMPolicy for network slicing PRB management |
| TS 28.310 | Ch 31 | Energy saving management framework |
| TS 32.500 | Ch 18 | SON concepts and ANR architecture |
| TS 32.511 | Ch 18 | ANR function requirements |
| TS 26.114 | Ch 29 | VoNR codec, DTX, RTCP, delay budget |
| TS 24.229 | Ch 29 | SIP/SDP call control for VoNR |
| TS 22.261 | Ch 1, 30 | IMT-2020 targets, slicing service requirements |
Table A.9 — Reverse index: specification to primary book chapter. Use this to navigate from a spec clause to the chapter where it is applied with worked examples.
- The five TS 38.2xx specifications are the physical-layer authority: 38.211 (channels/modulation), 38.212 (coding/DCI), 38.213 (control procedures), 38.214 (data procedures/MCS/CSI), 38.215 (measurements/RSRP/SINR).
- TS 38.331 is the single most-referenced document in RAN optimisation: every timer, measurement event, and parameter IE that an optimizer configures or diagnoses is defined here.
- TS 28.552 is the PM counter dictionary; TS 28.554 is the KPI formula dictionary. Every counter ratio cited in this book traces to exactly one clause in TS 28.554 and one or more counters in TS 28.552.
- EN-DC (NSA) architecture is governed by TS 37.340 (Stage 2), TS 36.331 (MN RRC), and TS 36.423 (X2-AP), not by the TS 38.3xx series alone.
- Rel-15 established the NR baseline. Rel-16 added CHO, DAPS, 2-step RACH, and symbol shutdown. Rel-17 introduced RedCap and NTN. Rel-18 (5G-Advanced) added AI/ML in RAN and XR optimisation.
- All specifications are freely available at
www.3gpp.org/ftp/Specs/archive/under the relevant series subdirectory. Use the specification number and release suffix to locate the correct version.
Glossary of 5G RAN Terms
Abbreviations and Key Formula Quick Reference
Alphabetical abbreviation table (120+ entries) and condensed formula reference for all chapters
B.1 Abbreviation Table
The table below lists every abbreviation used across this book in strict alphabetical order. The Chapter(s) Used column references the first substantive use; an abbreviation that appears throughout the book is marked all. All definitions follow 3GPP normative usage; no vendor-proprietary expansions are included.
| Abbreviation | Full Form | Chapter(s) Used |
|---|---|---|
| 5QI | 5G QoS Identifier | Ch 29 (VoNR), Ch 30 (Slicing) |
| A3 | Measurement Event A3 — neighbour becomes offset better than serving | Ch 13, Ch 14, Ch 15 |
| A5 | Measurement Event A5 — serving below threshold 1 AND neighbour above threshold 2 | Ch 13, Ch 15 |
| ACK | Acknowledgement (HARQ) | Ch 20, Ch 21 |
| AMF | Access and Mobility Management Function | Ch 11, Ch 12, Ch 16, Ch 18 |
| ANR | Automatic Neighbour Relation | Ch 18 |
| ARQ | Automatic Repeat reQuest (RLC layer) | Ch 26 |
| ARFCN | Absolute Radio Frequency Channel Number | Ch 6, Ch 18 |
| BWP | Bandwidth Part (TS 38.211 §4.4.5) | Ch 7, Ch 21, Ch 23 |
| CA | Carrier Aggregation | Ch 23, Ch 28 |
| CBG | Code Block Group | Ch 20, Ch 21 |
| CDRX | Connected-mode Discontinuous Reception | Ch 20, Ch 29 |
| CG | Configured Grant (uplink scheduling) | Ch 20 |
| CHO | Conditional Handover (TS 38.331 §5.5.3.3) | Ch 17 |
| CQI | Channel Quality Indicator | Ch 7, Ch 21, Ch 22 |
| CRC | Cyclic Redundancy Check | Ch 21, Ch 26 |
| CSI | Channel State Information | Ch 7, Ch 22 |
| CSI-RS | Channel State Information Reference Signal | Ch 7, Ch 8, Ch 22 |
| DAPS | Dual Active Protocol Stack handover (TS 38.300 §9.2.4) | Ch 17 |
| DCR | Drop Call Rate | Ch 3, Ch 27 |
| DCI | Downlink Control Information | Ch 20, Ch 21 |
| DMRS | Demodulation Reference Signal | Ch 6, Ch 22 |
| DRB | Data Radio Bearer | Ch 11, Ch 27, Ch 29 |
| DRX | Discontinuous Reception | Ch 20, Ch 29, Ch 31 |
| DTX | Discontinuous Transmission | Ch 24, Ch 31 |
| eMBB | Enhanced Mobile Broadband (IMT-2020 usage scenario) | Ch 1, Ch 3, Ch 30 |
| EN-DC | E-UTRA — NR Dual Connectivity (TS 37.340) | Ch 28 |
| EPC | Evolved Packet Core (4G core network) | Ch 28 |
| EVS | Enhanced Voice Services codec (3GPP TS 26.441) | Ch 29 |
| gNB | Next Generation NodeB (5G base station, TS 38.300 §4) | All |
| gNB-CU | gNB Central Unit — hosts RRC and PDCP | Ch 11, Ch 14, Ch 15 |
| gNB-DU | gNB Distributed Unit — hosts RLC, MAC, PHY | Ch 11, Ch 14, Ch 20 |
| GBR | Guaranteed Bit Rate (QoS flow attribute) | Ch 29, Ch 30 |
| HFN | Hyper Frame Number (PDCP counter space) | Ch 26 |
| HO | Handover | Ch 13–17 |
| HARQ | Hybrid Automatic Repeat reQuest | Ch 20, Ch 21, Ch 26 |
| IAB | Integrated Access and Backhaul (TS 38.174) | Ch 8 |
| IMS | IP Multimedia Subsystem (3GPP TS 23.228) | Ch 29 |
| LDPC | Low Density Parity Check (NR data channel code, TS 38.212) | Ch 21 |
| LCG | Logical Channel Group (MAC scheduling) | Ch 20 |
| MAC CE | Medium Access Control Control Element | Ch 20, Ch 23 |
| MAPL | Maximum Allowable Path Loss | Ch 8 |
| MCG | Master Cell Group (primary node in DC) | Ch 17, Ch 28 |
| MCS | Modulation and Coding Scheme | Ch 21, Ch 22 |
| MIMO | Multiple-Input Multiple-Output | Ch 7, Ch 22 |
| MIoT | Massive IoT (NR-RedCap / eMTC/NB-IoT device category context) | Ch 3, Ch 30 |
| MLB | Mobility Load Balancing (SON function, TS 36.902 / TS 38.300) | Ch 32 |
| MRO | Mobility Robustness Optimisation (SON function, TS 38.300 §15.2) | Ch 19, Ch 32 |
| NCI | NR Cell Identity (36-bit, part of NCGI) | Ch 6, Ch 18 |
| NCGI | NR Cell Global Identity (PLMN ID + NCI) | Ch 18 |
| NR | New Radio (5G radio access technology, TS 38 series) | All |
| NSSAI | Network Slice Selection Assistance Information | Ch 30 |
| NSI | Network Slice Instance | Ch 30 |
| NSSF | Network Slice Selection Function | Ch 30 |
| OAM | Operations, Administration and Maintenance | Ch 3, Ch 18, Ch 32 |
| OFDM | Orthogonal Frequency Division Multiplexing | Ch 4, Ch 5, Ch 6 |
| PBCH | Physical Broadcast Channel | Ch 6, Ch 10 |
| PCCH | Paging Control Channel | Ch 11 |
| PCell | Primary Cell | Ch 14, Ch 23, Ch 28 |
| PDCCH | Physical Downlink Control Channel | Ch 10, Ch 20, Ch 21 |
| PDCP | Packet Data Convergence Protocol (TS 38.323) | Ch 11, Ch 17, Ch 26 |
| PDSCH | Physical Downlink Shared Channel | Ch 20, Ch 21, Ch 22 |
| PER | Packet Error Rate | Ch 3, Ch 21 |
| PHY | Physical layer (Layer 1) | Ch 4, Ch 5, Ch 6 |
| PMI | Precoding Matrix Indicator | Ch 7, Ch 22 |
| PRACH | Physical Random Access Channel | Ch 9, Ch 10 |
| PRB | Physical Resource Block (12 subcarriers × 1 slot) | Ch 4, Ch 20, Ch 23 |
| PSS | Primary Synchronisation Signal | Ch 6, Ch 10 |
| PTRS | Phase Tracking Reference Signal | Ch 6 |
| PUCCH | Physical Uplink Control Channel | Ch 7, Ch 24 |
| PUSCH | Physical Uplink Shared Channel | Ch 20, Ch 22, Ch 24 |
| QCI | QoS Class Identifier (4G/LTE, predecessor to 5QI) | Ch 28, Ch 29 |
| RA | Random Access | Ch 9, Ch 10 |
| RACH | Random Access Channel | Ch 9, Ch 10, Ch 12 |
| RAN | Radio Access Network | All |
| RAR | Random Access Response (Msg2) | Ch 9, Ch 10 |
| RI | Rank Indicator | Ch 7, Ch 22 |
| RLC | Radio Link Control (TS 38.322) | Ch 26 |
| RLF | Radio Link Failure (TS 38.331 §5.3.10) | Ch 25, Ch 27 |
| RNTI | Radio Network Temporary Identifier | Ch 10, Ch 20 |
| RoHC | Robust Header Compression (TS 38.323 §5.7.5) | Ch 29 |
| RRC | Radio Resource Control (TS 38.331) | All |
| RSRP | Reference Signal Received Power (TS 38.215 §5.1.1) | Ch 5, Ch 8, Ch 13 |
| RSRQ | Reference Signal Received Quality (TS 38.215 §5.1.3) | Ch 5, Ch 8, Ch 13 |
| RSSI | Received Signal Strength Indicator (total wideband power) | Ch 5 |
| SCG | Secondary Cell Group (secondary node in DC) | Ch 17, Ch 28 |
| SCS | Subcarrier Spacing (15 / 30 / 60 / 120 / 240 kHz, TS 38.211 §4.2) | Ch 4, Ch 6, Ch 23 |
| SINR | Signal-to-Interference-plus-Noise Ratio | Ch 5, Ch 8, Ch 21 |
| SN | Secondary Node (in EN-DC / NR-DC) | Ch 28 |
| S-NSSAI | Single — Network Slice Selection Assistance Information | Ch 30 |
| SON | Self-Organising Network (TS 38.300 §15) | Ch 18, Ch 19, Ch 32 |
| SPS | Semi-Persistent Scheduling | Ch 20, Ch 29 |
| SRB | Signalling Radio Bearer | Ch 11, Ch 26 |
| SRS | Sounding Reference Signal | Ch 7, Ch 22, Ch 24 |
| SSB | Synchronisation Signal Block (PSS + SSS + PBCH, TS 38.211 §7.4.3) | Ch 6, Ch 8, Ch 10 |
| SSS | Secondary Synchronisation Signal | Ch 6, Ch 10 |
| T310 | RRC timer: OOS detection window before RLF declaration (TS 38.331 §7.3) | Ch 25 |
| T311 | RRC timer: RRC re-establishment attempt window (TS 38.331 §7.3) | Ch 25, Ch 26 |
| TBS | Transport Block Size (TS 38.214 §5.1.3) | Ch 21 |
| TDD | Time Division Duplex | Ch 4, Ch 20, Ch 24 |
| TTT | Time-To-Trigger (measurement event parameter, TS 38.331 §6.3.2) | Ch 13, Ch 14, Ch 19 |
| UCI | Uplink Control Information (HARQ-ACK, SR, CSI) | Ch 7, Ch 24 |
| UE | User Equipment | All |
| UPF | User Plane Function (5GC, TS 23.501) | Ch 16, Ch 30 |
| URLLC | Ultra-Reliable Low-Latency Communications (IMT-2020 usage scenario) | Ch 3, Ch 20, Ch 30 |
| VoNR | Voice over NR (IMS voice over 5G SA) | Ch 29 |
| Xn | Inter-gNB interface (TS 38.423 / TS 38.425) | Ch 15, Ch 18 |
| XnAP | Xn Application Protocol (TS 38.423) | Ch 15 |
| N1 | RRC counter: out-of-sync consecutive indication threshold for T310 start | Ch 25 |
| N2 | NG interface between gNB-CU and AMF (TS 38.412) | Ch 16 |
| N310 | RRC counter: consecutive OOS indications before T310 expiry action | Ch 25 |
| N311 | RRC counter: consecutive in-sync indications to cancel T310 (TS 38.331) | Ch 25 |
| NG-AP | NG Application Protocol — AMF<→>gNB-CU control plane (TS 38.413) | Ch 16 |
| NR-DC | NR — NR Dual Connectivity (both nodes are gNBs) | Ch 17, Ch 23 |
| NR-U | NR operation in unlicensed spectrum (TS 38.889) | Ch 23 |
| OOS | Out-of-Sync (PHY layer indication to RRC) | Ch 25 |
| PDCP-SN | PDCP Sequence Number (12-bit or 18-bit, TS 38.323 §6.3.2) | Ch 17, Ch 26 |
| PHR | Power Headroom Report (MAC CE, TS 38.321 §6.1.3.8) | Ch 24 |
| PLMN | Public Land Mobile Network | Ch 16, Ch 18, Ch 30 |
| PNI-NPN | Public Network Integrated — Non-Public Network | Ch 30 |
| QoS | Quality of Service | Ch 11, Ch 29, Ch 30 |
| RB | Radio Bearer (generic; see DRB / SRB) | Ch 11, Ch 26 |
| RE | Resource Element (1 subcarrier × 1 OFDM symbol) | Ch 4, Ch 5, Ch 22 |
| REG | Resource Element Group (PDCCH mapping unit) | Ch 20 |
| ROHC | Robust Header Compression (see RoHC — alternate capitalisation) | Ch 29 |
| RRM | Radio Resource Management | Ch 13, Ch 14, Ch 20 |
| SA | Standalone (5G NR connected to 5GC, no LTE anchor) | Ch 11, Ch 30 |
| SFTD | Serving cell Frame and Timing Difference measurement | Ch 13 |
| SINR | Signal-to-Interference-plus-Noise Ratio (see above — repeated for completeness) | Ch 5, Ch 8, Ch 21 |
| SMF | Session Management Function (5GC, TS 23.501) | Ch 30 |
| SR | Scheduling Request (UCI field) | Ch 20 |
| SR | Success Rate (KPI context) | Ch 3 |
| TCI | Transmission Configuration Indication (beam management) | Ch 6 |
| BLER | Block Error Rate (ratio of failed transport blocks to total) | Ch 21 |
| CCA | Clear Channel Assessment (NR-U listen-before-talk) | Ch 23 |
3GPP specifications define abbreviations in the clause titled "Abbreviations" near the start of each TS document. When an abbreviation appears in multiple TS documents with slightly different scope (for example, SN means Sequence Number in TS 38.323 but Secondary Node in TS 37.340), context determines the correct reading. This book follows the usage in the cited clause for each instance.
B.2 Key Formula Quick Reference
The table below consolidates the principal formulas referenced throughout the book. All expressions are stated in 3GPP-canonical form; variable names follow the cited specification clause exactly. Refer to the indicated chapter for derivation, worked examples, and boundary conditions.
| Formula Name | Expression | Variables | Chapter Ref |
|---|---|---|---|
| SS-RSRQ (TS 38.215 §5.1.3) |
RSRQ = (N × RSRP) / RSSI |
N = number of PRBs of the RSSI measurement; RSRP and RSSI in linear power; result mapped to dB | Ch 5 |
| Shannon Capacity Bound (ITU-T / information theory) |
C = B × log₂(1 + SINR) |
C = capacity (bit/s); B = bandwidth (Hz); SINR = linear ratio S/(I+N) | Ch 8, Ch 19, Ch 21 |
| Maximum Allowable Path Loss (Link Budget) | MAPL = EIRP − Sensitivity + Gains − Losses |
EIRP = Tx power + antenna gain (dBm); Sensitivity = receiver sensitivity (dBm); Gains = diversity, beamforming; Losses = cable, body, margin | Ch 8 |
| TBS Lookup (TS 38.214 §5.1.3.2) |
TBS = f(NPRB, MCS, layers, νRE) |
NPRB = allocated PRBs; MCS index determines modulation order Qm and code rate R; νRE = effective REs per PRB; result found via TS 38.214 Table 5.1.3.2-1 / 5.1.3.2-2 | Ch 21 |
| PDCCH Aggregation Level (TS 38.213 §10.1) |
AL ∈ {1, 2, 4, 8, 16}; CCEcount = AL |
AL selected by gNB scheduler based on downlink path loss estimate; higher AL = more coding gain, fewer simultaneous PDCCHs possible in the CORESET | Ch 20 |
| RACH Preamble Tx Power (TS 38.213 §7.4) |
PRACH = P0_PRACH + PL + Δpreamble + (attempt − 1) × powerRampingStep |
P0_PRACH = target received power (dBm); PL = downlink path-loss estimate; Δpreamble = preamble-format power offset; powerRampingStep configurable in dB | Ch 9, Ch 10 |
| T310 Trigger Condition (TS 38.331 §5.3.10.3) |
N310 consecutive OOS indications from PHY ⇒ start T310 |
N310 = RRC parameter (integer, 1–20); OOS = PHY indication that SINR below synchronisation threshold; T310 expiry without N311 in-sync indications ⇒ RLF | Ch 25 |
| HO A3 Event Trigger (TS 38.331 §5.5.4.4) |
Mn + a3Offset > Ms + hys |
Mn = filtered neighbour measurement; Ms = filtered serving measurement; a3Offset and hys in dB; condition must hold for TTT | Ch 13, Ch 14 |
| UL Power Control (Fractional) (TS 38.213 §7.1) |
PPUSCH = min(Pmax, P0 + 10·log10(M) + α·PL + ΔTF + f) |
P0 = target SNR-based offset; M = PUSCH bandwidth in PRBs; α = fractional PL compensation factor (0–1); ΔTF = MCS-dependent offset; f = closed-loop correction accumulation | Ch 24 |
All expressions above are reproduced from the cited 3GPP specification clause. Where a formula involves a look-up table (TBS) or a procedure (PDCCH aggregation selection), the table entry describes the input/output relationship rather than an algebraic expression. Readers should always cross-check against the current Release version of the cited TS, as minor clause numbering changes occur between 3GPP Releases without altering the mathematical content.
- 120+ abbreviations are defined in B.1 with their 3GPP-normative full forms and first significant chapter of use.
- Nine key formulas are summarised in B.2 with variable definitions and specification references for derivation detail.
- All entries are pure 3GPP; no vendor-specific terminology is included anywhere in this appendix.
- For timer and counter parameter values (N310, N311, T310, T311, TTT, powerRampingStep) refer to TS 38.331 §6.3.2 IE definitions and the worked examples in Chapters 13, 14, and 25.
KPI Formula Reference
Counter-based KPI definitions anchored to TS 28.552 and TS 28.554
Complete formula reference for Accessibility, Retainability, Mobility, Throughput, VoNR, and Energy Efficiency KPIs — with numerator/denominator counter names, target thresholds, and specification clause citations
Every KPI entry in this appendix uses the exact counter names defined in TS 28.552 (measurement dictionary) and the KPI formula clause from TS 28.554 (KPI dictionary). Counter names follow the TS 28.552 naming convention: MO.MeasurementFamilyName.SubcounterSuffix. All formulas are dimensionless ratios (success rate, drop rate, utilisation) unless the unit column states otherwise. Target thresholds are indicative industry benchmarks; actual targets depend on network type, deployment scenario, and agreed SLAs. No vendor-proprietary counter names appear anywhere in this appendix.
C.1 Accessibility KPIs
Accessibility KPIs measure the probability that a UE successfully reaches a service-bearing state from an idle or inactive state. The reference MO class for NR accessibility KPIs is NRCellDU (for RACH and RRC) and NRCellCU (for E-RAB and PDU session procedures). All counters are defined in TS 28.552 §5.1.1; KPI formulas are in TS 28.554 §5.1.1.
| KPI Name | Formula | Numerator Counter | Denominator Counter | Target | TS Reference |
|---|---|---|---|---|---|
| RACH Success Rate | RRC.ConnEstabSucc.sum / RRC.ConnEstabAtt.sum × 100 (proxy via Msg2/Msg4 completion ratio per TS 28.554 §5.1.1.1) | RACH.PreambleReceivedDedicated + RACH.PreambleReceivedCFRA |
RACH.PreambleDedicatedAtt + RACH.PreambleCFRAAtt |
≥ 99.0 % | TS 28.554 §5.1.1.1; TS 28.552 §5.1.2 |
| RRC Setup Success Rate | RRC.ConnEstabSucc.sum / RRC.ConnEstabAtt.sum × 100 | RRC.ConnEstabSucc.MO-Signalling + RRC.ConnEstabSucc.MO-Data + RRC.ConnEstabSucc.MT-Access + RRC.ConnEstabSucc.Emergency |
RRC.ConnEstabAtt.MO-Signalling + RRC.ConnEstabAtt.MO-Data + RRC.ConnEstabAtt.MT-Access + RRC.ConnEstabAtt.Emergency |
≥ 99.5 % | TS 28.554 §5.1.1.2; TS 28.552 §5.1.1 |
| E-RAB Setup Success Rate (EN-DC / EPC-connected) | ERAB.EstabSuccNbr.sum / ERAB.EstabAttNbr.sum × 100 | ERAB.EstabSuccNbr.QCI (sum over all 5QI/QCI) |
ERAB.EstabAttNbr.QCI (sum over all 5QI/QCI) |
≥ 99.0 % | TS 28.554 §5.1.1.4; TS 28.552 §5.1.3 |
| PDU Session Setup Success Rate | SM.PDUSessionEstabSucc.sum / SM.PDUSessionEstabAtt.sum × 100 | SM.PDUSessionEstabSucc |
SM.PDUSessionEstabAtt |
≥ 99.0 % | TS 28.554 §5.1.1.7; TS 28.552 §5.1.8 |
| Initial Access Success Rate | (RRC.ConnEstabSucc.sum + SM.PDUSessionEstabSucc.sum) / (RRC.ConnEstabAtt.sum + SM.PDUSessionEstabAtt.sum) × 100 | Sum of RRC and PDU session successes | Sum of RRC and PDU session attempts | ≥ 99.0 % | TS 28.554 §5.1.1; TS 28.552 §5.1.1, §5.1.8 |
In TS 28.552 the dot-separated prefix identifies the Measurement Family (e.g. RRC, RACH, SM) and the suffix is the sub-counter discriminator. Where a counter has per-cause or per-5QI sub-counters the formula sums all sub-counter variants unless a cause-specific rate is being computed.
C.2 Retainability KPIs
Retainability KPIs measure the probability that an established service connection is maintained without abnormal release. High retainability is a prerequisite for good user experience; drops cause call re-establishments that consume signalling resources and degrade throughput. Reference MO class: NRCellCU for RRC and E-RAB; NRCellDU for RLF events. KPI clauses are in TS 28.554 §5.1.2.
| KPI Name | Formula | Numerator Counter | Denominator Counter | Target | TS Reference |
|---|---|---|---|---|---|
| RRC Connection Drop Rate | RRC.ConnMean.sum − (RRC.ConnEstabSucc.sum / GP_seconds) expressed as drops per active connection; equivalently: RRC.AbnormalRel.sum / RRC.ConnMean.sum × 100 | RRC.AbnormalRel (abnormal RRC release events) |
RRC.ConnMean (mean RRC connections during GP) |
≤ 0.5 % | TS 28.554 §5.1.2.1; TS 28.552 §5.1.1 |
| Drop Call Rate (DCR) | ERAB.AbnormalRel.sum / (ERAB.EstabSuccNbr.sum + ERAB.SessionTime.sum / T_avg) × 100; simplified: ERAB.AbnormalRel.sum / ERAB.EstabSuccNbr.sum × 100 | ERAB.AbnormalRel.QCI (sum over all 5QI) |
ERAB.EstabSuccNbr.QCI |
≤ 0.2 % | TS 28.554 §5.1.2.3; TS 28.552 §5.1.3 |
| RRC Re-establishment Success Rate | RRC.ConnReestabSucc.sum / RRC.ConnReestabAtt.sum × 100 | RRC.ConnReestabSucc |
RRC.ConnReestabAtt |
≥ 85.0 % | TS 28.554 §5.1.2.2; TS 28.552 §5.1.1 |
| PDU Session Drop Rate | SM.PDUSessionAbnormalRel.sum / SM.PDUSessionEstabSucc.sum × 100 | SM.PDUSessionAbnormalRel |
SM.PDUSessionEstabSucc |
≤ 0.5 % | TS 28.554 §5.1.2.6; TS 28.552 §5.1.8 |
| Radio Link Failure (RLF) Rate | RLF.TotalCount.sum / RRC.ConnMean.sum × 1000 (failures per 1000 RRC connections) | RLF.TotalCount (T310 expiry + RACH failure + max HARQ retx) |
RRC.ConnMean |
≤ 2 per 1000 | TS 28.554 §5.1.2.4; TS 28.552 §5.1.1; TS 38.331 §5.3.10 |
C.3 Mobility KPIs
Mobility KPIs quantify the efficiency of handover and inter-RAT procedures. A successful handover (HO) keeps the UE connected without service interruption; a failed or ping-pong HO wastes signalling resources and degrades throughput. Reference MO class: NRCellCU for Xn and N2 handovers. Clauses are in TS 28.554 §5.1.3.
| KPI Name | Formula | Numerator Counter | Denominator Counter | Target | TS Reference |
|---|---|---|---|---|---|
| Intra-gNB Handover Success Rate | HO.ExecSucc.IntraGNB.sum / HO.ExecAtt.IntraGNB.sum × 100 | HO.ExecSucc.IntraGNB |
HO.ExecAtt.IntraGNB |
≥ 99.5 % | TS 28.554 §5.1.3.1; TS 28.552 §5.1.5 |
| Inter-gNB (Xn) Handover Success Rate | HO.ExecSucc.InterGNBOutXn.sum / HO.ExecAtt.InterGNBOutXn.sum × 100 | HO.ExecSucc.InterGNBOutXn |
HO.ExecAtt.InterGNBOutXn |
≥ 99.0 % | TS 28.554 §5.1.3.2; TS 28.552 §5.1.5 |
| Handover Ping-Pong Rate | HO.PingPong.sum / HO.ExecSucc.sum × 100; a ping-pong is defined as a return HO to the source cell within a configurable time window (typically ≤ 1 s per TS 36.902 / TS 38.300 §9.2.6) | HO.PingPong (return HOs within ping-pong time) |
HO.ExecSucc (total successful HOs) |
≤ 5.0 % | TS 28.554 §5.1.3.5; TS 28.552 §5.1.5; TS 38.300 §9.2.6 |
| Handover Failure Rate | HO.FailNbr.sum / HO.ExecAtt.sum × 100 | HO.FailNbr (HO execution failures — Xn/N2 combined) |
HO.ExecAtt |
≤ 1.0 % | TS 28.554 §5.1.3.3; TS 28.552 §5.1.5 |
| EN-DC Setup Success Rate | DC.SetupSuccNbr.sum / DC.SetupAttNbr.sum × 100 | DC.SetupSuccNbr (successful SgNB Addition completions) |
DC.SetupAttNbr (SgNB Addition Requests) |
≥ 95.0 % | TS 28.554 §5.1.3.9; TS 28.552 §5.1.9; TS 37.340 §10.3 |
| SCG Failure Rate | DC.SCGFailure.sum / DC.SetupSuccNbr.sum × 100 | DC.SCGFailure (SCG failures: T313 expiry, beam failure, max HARQ) |
DC.SetupSuccNbr |
≤ 2.0 % | TS 28.554 §5.1.3.10; TS 28.552 §5.1.9; TS 37.340 §10.4 |
C.4 Throughput KPIs
Throughput KPIs are derived from the PDCP.PktTransmittedDL / PDCP.PktReceivedUL measurement families in TS 28.552 §5.1.6 and from PRB utilisation counters in §5.1.4. Cell-level and user-level throughput are kept distinct: cell throughput normalises by GP duration while user throughput normalises by the active-time sub-counter that tracks the time the scheduler actually allocated resources to a UE. KPI formulas are in TS 28.554 §5.1.4.
| KPI Name | Formula | Numerator Counter | Denominator Counter | Target | TS Reference |
|---|---|---|---|---|---|
| DL Cell Throughput | PDCP.PktTransmittedDL.sum × 8 / GP_s [bits/s]; GP_s = granularity period in seconds (typically 900 s) | PDCP.PktTransmittedDL (bytes over PDCP SDUs delivered to lower layer) |
Granularity period in seconds (constant) | Site-specific; ≥ 200 Mbit/s typical macro | TS 28.554 §5.1.4.1; TS 28.552 §5.1.6 |
| UL Cell Throughput | PDCP.PktReceivedUL.sum × 8 / GP_s [bits/s] | PDCP.PktReceivedUL (bytes of UL PDCP SDUs received from lower layer) |
Granularity period in seconds | Site-specific; ≥ 50 Mbit/s typical macro | TS 28.554 §5.1.4.2; TS 28.552 §5.1.6 |
| DL PRB Utilisation | PRB.UsedDL.sum / PRB.AvailDL.sum × 100 | PRB.UsedDL (PRBs allocated to PDSCH per TTI, summed over GP) |
PRB.AvailDL (total available PDSCH PRBs per TTI × TTIs in GP) |
60–85 % (high load warning above 85 %) | TS 28.554 §5.1.4.5; TS 28.552 §5.1.4 |
| UL PRB Utilisation | PRB.UsedUL.sum / PRB.AvailUL.sum × 100 | PRB.UsedUL (PRBs allocated to PUSCH per TTI, summed over GP) |
PRB.AvailUL |
40–70 % (PUSCH typically lower than PDSCH) | TS 28.554 §5.1.4.6; TS 28.552 §5.1.4 |
| DL User Throughput | PDCP.PktTransmittedDL.sum × 8 / DRB.UEThpTimeDL.sum [bits/s]; the denominator counts only the time the UE had data in the DL buffer | PDCP.PktTransmittedDL |
DRB.UEThpTimeDL (active DL scheduling time in ms) |
≥ 50 Mbit/s per UE (eMBB target) | TS 28.554 §5.1.4.3; TS 28.552 §5.1.6, §5.1.7 |
| CQI Distribution (Mean CQI) | Σ(CQI_i × CQI.Count_i) / ΣCQI.Count_i; CQI indices 0–15 per TS 38.214 Table 5.2.2.1-2 | CQI.BinCount_i (distribution over 16 CQI bins) |
ΣCQI.BinCount_i (total CQI reports) |
Mean CQI ≥ 9 (good); ≤ 6 (coverage problem) | TS 28.554 §5.1.4.8; TS 28.552 §5.1.4; TS 38.214 §5.2.2 |
| DL Block Error Rate (BLER) | HARQ.InitNACKDL.sum / (HARQ.InitACKDL.sum + HARQ.InitNACKDL.sum) × 100; initial transmission BLER only — retransmission BLER is tracked separately | HARQ.InitNACKDL (first-transmission NACKs) |
HARQ.InitACKDL + HARQ.InitNACKDL |
10 % (outer-loop LA target for PDSCH) | TS 28.554 §5.1.4.9; TS 28.552 §5.1.4; TS 38.214 §5.1.6 |
Cell throughput (bytes / GP_s) measures total sector capacity utilisation; it rises with load. User throughput (bytes / active-time) measures the rate a single UE receives data while being scheduled; it falls with load because each UE receives fewer PRBs as the scheduler shares resources across more UEs. Both KPIs are needed: cell throughput detects capacity saturation; user throughput detects per-user quality degradation. TS 28.552 §5.1.7 defines the DRB.UEThpTime family precisely to enable this distinction.
C.5 Voice Quality KPIs (VoNR)
VoNR KPIs apply specifically to IMS voice bearers over NR. The reference 5QI for conversational voice is 5QI=1 (GBR, delay budget 100 ms, PER target 10−2) per TS 23.501 Table 5.7.4-1. Voice quality KPIs are computed on the QoS Flow level using SM.PDUSession and GBR.PktLoss measurement families from TS 28.552 §5.1.8 and §5.1.6. KPI formulas are in TS 28.554 §5.1.7.
| KPI Name | Formula | Numerator Counter | Denominator Counter | Target | TS Reference |
|---|---|---|---|---|---|
| VoNR Session Setup Success Rate (SSR) | SM.PDUSessionEstabSucc.5QI1.sum / SM.PDUSessionEstabAtt.5QI1.sum × 100 | SM.PDUSessionEstabSucc filtered for 5QI=1 |
SM.PDUSessionEstabAtt filtered for 5QI=1 |
≥ 99.0 % | TS 28.554 §5.1.7.1; TS 28.552 §5.1.8; TS 23.501 Table 5.7.4-1 |
| VoNR Session Drop Rate | SM.PDUSessionAbnormalRel.5QI1.sum / SM.PDUSessionEstabSucc.5QI1.sum × 100 | SM.PDUSessionAbnormalRel for 5QI=1 flows |
SM.PDUSessionEstabSucc for 5QI=1 flows |
≤ 0.5 % | TS 28.554 §5.1.7.2; TS 28.552 §5.1.8 |
| E2E Delay Mean (One-Way) | GBR.PktDelayDL.sum / GBR.PktDelayDLCount.sum [ms]; measures mean one-way packet delay for 5QI=1 packets in the DL direction at the GTP tunnel level | GBR.PktDelayDL (cumulative delay in ms for GBR packets) |
GBR.PktDelayDLCount (count of measured GBR packets) |
≤ 50 ms one-way (ITU-T G.114 ≤ 150 ms mouth-to-ear) | TS 28.554 §5.1.7.4; TS 28.552 §5.1.6; ITU-T G.114 |
| Packet Loss Rate (5QI=1) | GBR.PktLossDL.sum / (GBR.PktLossDL.sum + GBR.PktTransmittedDL.sum) × 100 | GBR.PktLossDL (GBR DL packets discarded at RLC/PDCP due to buffer overflow or T_reordering) |
GBR.PktLossDL + GBR.PktTransmittedDL |
≤ 1 % (5QI=1 PER target = 10−2) | TS 28.554 §5.1.7.3; TS 28.552 §5.1.6; TS 23.501 Table 5.7.4-1 |
C.6 Energy Efficiency KPIs
Energy efficiency KPIs are defined in TS 28.554 §5.1.6 and use the EE and PWR measurement families from TS 28.552 §5.1.13. The reference MO class is GNBDUFunction (power consumption aggregated at the DU) or NRCellDU (per-cell energy). The ITU-T L.1380 series defines additional test methodologies for energy efficiency verification.
| KPI Name | Formula | Units | Target / Benchmark | TS Reference |
|---|---|---|---|---|
| Energy Efficiency (EE) | PDCP.PktTransmittedDL.sum × 8 / PWR.ConsumptionGNBDU.sum; total DL bits delivered divided by total energy consumed at the DU over the GP | bits / joule (bit/J) | NR target: ≥ 10 Mbit/J at full load; degrades at low load without energy saving features | TS 28.554 §5.1.6.1; TS 28.552 §5.1.13; ITU-T L.1380 |
| Cell Energy Consumption | PWR.ConsumptionNRCell.sum over GP; measures the energy consumed by a single NRCellDU including RF and baseband components attributed to that cell | watt-hours (Wh) per GP | Depends on RU power class; ≤ 0.5 kWh/h per active TRX chain at idle | TS 28.554 §5.1.6.2; TS 28.552 §5.1.13 |
| Cell Sleep Overlap (CSO) Activation Rate | EE.CSOActiveDuration.sum / GP_s × 100; fraction of the GP during which the cell was in a Cell Sleep Overlap state (all carriers dormant) | % of granularity period | Target depends on traffic profile; ≥ 30 % during deep off-peak hours | TS 28.554 §5.1.6.4; TS 28.552 §5.1.13; TS 38.300 §9.2.8 |
The EE KPI as defined by TS 28.554 §5.1.6.1 measures only DL bits. In networks where UL traffic is significant (FWA, IoT uplink-heavy deployments) the denominator energy is shared across DL and UL workloads, causing the DL-only EE KPI to understate true spectral efficiency per joule. For a balanced measure, compute (DL bits + UL bits) / energy using both PDCP.PktTransmittedDL and PDCP.PktReceivedUL in the numerator — though this is not the TS 28.554 normative formula.
C.7 KPI Threshold Quick Reference
The table below consolidates all KPI thresholds defined in Sections C.1–C.6 into a single quick-reference sheet. The four classification bands — Excellent, Good, Acceptable, Poor — follow the indicative guidance in TS 28.554 normative clauses and GSMA PRD NG.118. Actual operator thresholds are network-specific and must be calibrated against live traffic baselines using the percentile methodology described in Chapter 3 (§3.7).
| KPI | Excellent | Good | Acceptable | Poor (Action Required) | TS Reference |
|---|---|---|---|---|---|
| ACCESSIBILITY | |||||
| RACH Success Rate | ≥ 99.5 % | 99.0 – 99.5 % | 97.0 – 99.0 % | < 97.0 % | TS 28.554 §5.1.1.1 |
| RRC Setup SR | ≥ 99.8 % | 99.5 – 99.8 % | 98.0 – 99.5 % | < 98.0 % | TS 28.554 §5.1.1.2 |
| E-RAB Setup SR | ≥ 99.5 % | 99.0 – 99.5 % | 97.0 – 99.0 % | < 97.0 % | TS 28.554 §5.1.1.4 |
| PDU Session Setup SR | ≥ 99.5 % | 99.0 – 99.5 % | 97.0 – 99.0 % | < 97.0 % | TS 28.554 §5.1.1.7 |
| RETAINABILITY | |||||
| RRC Drop Rate | ≤ 0.1 % | 0.1 – 0.5 % | 0.5 – 1.0 % | > 1.0 % | TS 28.554 §5.1.2.1 |
| Drop Call Rate (DCR) | ≤ 0.1 % | 0.1 – 0.2 % | 0.2 – 0.5 % | > 0.5 % | TS 28.554 §5.1.2.3 |
| RRC Re-establishment SR | ≥ 95.0 % | 90.0 – 95.0 % | 85.0 – 90.0 % | < 85.0 % | TS 28.554 §5.1.2.2 |
| PDU Session Drop Rate | ≤ 0.1 % | 0.1 – 0.5 % | 0.5 – 1.0 % | > 1.0 % | TS 28.554 §5.1.2.6 |
| RLF Rate (per 1000 RRC) | ≤ 0.5 | 0.5 – 2 | 2 – 5 | > 5 | TS 28.554 §5.1.2.4 |
| MOBILITY | |||||
| Intra-gNB HO SR | ≥ 99.8 % | 99.5 – 99.8 % | 98.5 – 99.5 % | < 98.5 % | TS 28.554 §5.1.3.1 |
| Inter-gNB (Xn) HO SR | ≥ 99.5 % | 99.0 – 99.5 % | 97.0 – 99.0 % | < 97.0 % | TS 28.554 §5.1.3.2 |
| HO Ping-Pong Rate | ≤ 2.0 % | 2.0 – 5.0 % | 5.0 – 10.0 % | > 10.0 % | TS 28.554 §5.1.3.5 |
| HO Failure Rate | ≤ 0.3 % | 0.3 – 1.0 % | 1.0 – 2.0 % | > 2.0 % | TS 28.554 §5.1.3.3 |
| EN-DC Setup SR | ≥ 98.0 % | 95.0 – 98.0 % | 90.0 – 95.0 % | < 90.0 % | TS 28.554 §5.1.3.9 |
| SCG Failure Rate | ≤ 0.5 % | 0.5 – 2.0 % | 2.0 – 5.0 % | > 5.0 % | TS 28.554 §5.1.3.10 |
| THROUGHPUT | |||||
| DL PRB Utilisation | ≤ 50 % | 50 – 70 % | 70 – 85 % | > 85 % (congestion) | TS 28.554 §5.1.4.5 |
| UL PRB Utilisation | ≤ 40 % | 40 – 60 % | 60 – 75 % | > 75 % | TS 28.554 §5.1.4.6 |
| DL User Throughput | ≥ 100 Mbit/s | 50 – 100 Mbit/s | 20 – 50 Mbit/s | < 20 Mbit/s | TS 28.554 §5.1.4.3 |
| DL BLER (initial tx) | ≤ 5 % | 5 – 10 % | 10 – 20 % | > 20 % | TS 28.554 §5.1.4.9 |
| Mean CQI | ≥ 11 | 9 – 11 | 6 – 9 | < 6 (coverage issue) | TS 28.554 §5.1.4.8 |
| VOICE (VoNR) | |||||
| VoNR Session Setup SR | ≥ 99.5 % | 99.0 – 99.5 % | 97.0 – 99.0 % | < 97.0 % | TS 28.554 §5.1.7.1 |
| VoNR Session Drop Rate | ≤ 0.2 % | 0.2 – 0.5 % | 0.5 – 1.0 % | > 1.0 % | TS 28.554 §5.1.7.2 |
| E2E Delay Mean (one-way) | ≤ 20 ms | 20 – 50 ms | 50 – 100 ms | > 100 ms | TS 28.554 §5.1.7.4; G.114 |
| Packet Loss Rate (5QI=1) | ≤ 0.1 % | 0.1 – 0.5 % | 0.5 – 1.0 % | > 1.0 % | TS 28.554 §5.1.7.3 |
| ENERGY EFFICIENCY | |||||
| Energy Efficiency (bit/J) | ≥ 20 Mbit/J | 10 – 20 Mbit/J | 5 – 10 Mbit/J | < 5 Mbit/J | TS 28.554 §5.1.6.1 |
| CSO Activation Rate | ≥ 50 % | 30 – 50 % | 10 – 30 % | < 10 % (energy saving not active) | TS 28.554 §5.1.6.4 |
- All thresholds in this appendix are indicative starting points consistent with TS 28.554 normative intent. They are not contractual unless adopted into an SLA.
- Apply the P50/P95 busy-hour methodology from Chapter 3 (§3.7) to derive network-specific baselines before setting operational alert thresholds.
- Accessibility and retainability targets are more stable across deployments; throughput and energy targets vary significantly by frequency band, numerology, MIMO configuration, and traffic mix.
- For KPIs with very small denominators (< 50 samples per GP), apply the Wilson score confidence interval correction (Chapter 3 §3.6) before comparing against any threshold.
TS 28.552 Counter Reference
Complete counter inventory used in this book — names, units, measurement types and specification anchors
All counter names are normative identifiers from 3GPP TS 28.552 (Rel-16/17). Zero vendor-proprietary names are used.
Each table row maps a counter name to its plain-language description, the unit reported in a PM export, the TS 28.552 measurement type class (A = Accumulative, G = Gauge, DER = Derived), and the exact clause in TS 28.552 that normatively defines it. Where the clause is labelled §5.1.x the counter lives in the NR NRCellDU or NRCellCU-CP granularity level; where it is labelled §5.2.x it lives at the NR NRCellCUUP granularity level. Counters that derive from TS 38.314 physical-layer measurements are noted in the Source column. All measurement type codes follow TS 28.552 §4.
D.1 Random Access Counters (L.RA.*)
Random Access channel counters track every stage of the two-step and four-step RACH procedure defined in TS 38.300 §9.1. These counters are produced by the gNB DU at NRCellDU granularity. The ratio L.RA.Succ / L.RA.Att forms the Random Access Success Rate (RASR) KPI defined in TS 28.554 §6.1. Contention-based preambles increment both L.RA.Att and the failure sub-counters; contention-free preambles (for handover or beam failure recovery) may only increment L.RA.Att and L.RA.Succ.
"The measurement provides the number of Random Access attempts per cell, distinguishing between successful and unsuccessful attempts and sub-categorising unsuccessful attempts by failure cause."
| Counter Name | Description | Unit | Meas. Type | TS 28.552 Section |
|---|---|---|---|---|
L.RA.Att |
Total Random Access attempts — incremented once per preamble received by the gNB DU, regardless of whether the attempt will succeed or fail | attempts | A | §5.1.1.3.1 |
L.RA.Succ |
Successful Random Access completions — incremented when Msg4 (contention resolution) is positively acknowledged by the UE, or when Msg2 is successfully decoded in a 2-step RACH | attempts | A | §5.1.1.3.2 |
L.RA.Fail.Collision |
RACH failures due to preamble collision — incremented when two or more UEs transmit the same contention-based preamble sequence in the same RACH occasion and the network cannot resolve contention via Msg4 | failures | A | §5.1.1.3.3 |
L.RA.Fail.MaxPreamble |
RACH failures caused by the UE exhausting its maximum number of preamble retransmissions (preambleTransMax) without receiving a valid RAR — indicates persistent coverage shortage or timing window misconfiguration | failures | A | §5.1.1.3.4 |
L.RA.PreambleSent |
Total number of preamble transmissions sent by UEs across all RACH occasions — a value greater than L.RA.Att indicates retransmissions are occurring; the ratio (PreambleSent / Att) is a direct measure of RACH load and coverage |
preambles | A | §5.1.1.3.5 |
L.RA.TimedOut |
RACH attempts that timed out at the network side before a complete Msg1–Msg4 exchange could be performed — distinguished from MaxPreamble failures in that the network received the preamble but could not dispatch Msg2 or Msg4 within the configured window | failures | A | §5.1.1.3.6 |
D.2 RRC Connection Counters (L.RRC.*)
RRC counters are produced jointly by the gNB CU-CP at NRCellCUCP granularity. They track the entire lifecycle of an RRC connection — initial establishment, abnormal release, and re-establishment. The primary KPIs derived here are RRC Setup Success Rate (RRCSSR = L.RRC.ConnEstabSucc / L.RRC.ConnEstabAtt) and RRC Abnormal Release Rate (RARR = L.RRC.ConnAbnormRel.Total / sum(active RRC connections)), both defined in TS 28.554 §6.1.
| Counter Name | Description | Unit | Meas. Type | TS 28.552 Section |
|---|---|---|---|---|
L.RRC.ConnEstabAtt |
RRC setup attempts — incremented when the gNB CU-CP receives an RRCSetupRequest message from a UE | attempts | A | §5.1.1.1.1 |
L.RRC.ConnEstabSucc |
RRC setup successes — incremented when the UE sends RRCSetupComplete and the CU-CP transitions the UE to RRC_CONNECTED state | setups | A | §5.1.1.1.2 |
L.RRC.ConnEstabFail |
RRC setup failures at the gNB — counts attempts that resulted in RRCReject or where neither RRCSetup nor RRCReject was sent (internal resource failure) | failures | A | §5.1.1.1.3 |
L.RRC.ConnAbnormRel.Total |
Total abnormal RRC releases — the parent counter that aggregates all sub-causes of unplanned connection loss; a connection is abnormal if it is not preceded by an RRCRelease message sent by the network | releases | A | §5.1.1.2.1 |
L.RRC.ConnAbnormRel.Radio |
Abnormal releases caused by radio link failure — the T310 timer at the UE expired while monitoring out-of-sync indications, leading to the UE declaring RLF and triggering a re-establishment or returning to RRC_IDLE | releases | A | §5.1.1.2.2 |
L.RRC.ConnAbnormRel.ReestabFail |
Abnormal releases where the UE attempted re-establishment but the gNB rejected or could not process the RRCReestablishmentRequest — context retrieval failure is the dominant cause | releases | A | §5.1.1.2.3 |
L.RRC.ConnAbnormRel.HoFail |
Abnormal releases triggered by a handover failure — the UE attempted to connect to the target cell but the handover could not be completed, leaving the UE without a valid serving cell | releases | A | §5.1.1.2.4 |
L.RRC.ReEstabAtt |
Re-establishment attempts — incremented each time a gNB CU-CP receives an RRCReestablishmentRequest; a persistent high ratio vs. L.RRC.ConnEstabAtt indicates systematic RLF |
attempts | A | §5.1.1.4.1 |
L.RRC.ReEstabSucc |
Successful re-establishments — incremented when the CU-CP sends RRCReestablishment and receives RRCReestablishmentComplete, restoring SRB1 connectivity | successes | A | §5.1.1.4.2 |
L.RRC.ReEstabFail.CellNotFound |
Re-establishment failures where the gNB could not locate the UE context — the UE presented a valid shortMAC-I but the target cell's CU-CP had no stored context for the UE (e.g., context already deleted by T301 expiry at source) | failures | A | §5.1.1.4.3 |
L.RRC.ReEstabFail.T311Exp |
Re-establishment failures because the UE's T311 timer (RLF timer) expired before it could select a suitable target cell and send an RRCReestablishmentRequest — indicates a coverage gap or extremely poor mobility conditions | failures | A | §5.1.1.4.4 |
D.3 Handover Counters (L.HO.*)
Handover counters span both the preparation and execution phases defined in TS 38.300 §9.2. Preparation counters track the Xn/N2 signalling exchange between source and target nodes; execution counters track the UE's actual radio-layer transition. The standard KPIs are HO Preparation Success Rate (HO PrepSR = Succ/Att) and HO Execution Success Rate (HO ExecSR = ExecSucc/PrepSucc). All L.HO.* counters are produced at NRCellCUCP granularity.
| Counter Name | Description | Unit | Meas. Type | TS 28.552 Section |
|---|---|---|---|---|
L.HO.PrepAtt.IntraGNB |
Intra-gNB handover preparation attempts — the source CU-CP initiates preparation internally without Xn signalling; incremented at source cell | attempts | A | §5.1.1.6.1 |
L.HO.PrepSucc.IntraGNB |
Intra-gNB handover preparation successes — the source CU-CP has allocated target-cell resources and sent RRCReconfiguration to the UE | successes | A | §5.1.1.6.2 |
L.HO.ExecAtt.IntraGNB |
Intra-gNB handover execution attempts — incremented when the UE is commanded to perform the random access on the target cell (RRCReconfiguration with mobilityControlInfo sent) | attempts | A | §5.1.1.6.3 |
L.HO.ExecSucc.IntraGNB |
Intra-gNB handover execution successes — incremented when the UE completes random access on the target cell and RRCReconfigurationComplete is received by the CU-CP | successes | A | §5.1.1.6.4 |
L.HO.PrepAtt.ToNgRan |
Handover preparation attempts from 5G NR to any NG-RAN target (including LTE via N2) — covers all inter-system handovers involving the AMF | attempts | A | §5.1.1.6.9 |
L.HO.PrepSucc.ToNgRan |
Successful preparations for handover to NG-RAN target — the AMF has confirmed target-node resources and returned a HandoverCommand | successes | A | §5.1.1.6.10 |
L.HO.ExecAtt.ToNgRan |
Execution attempts for handover to NG-RAN target — the UE has been sent the RRCReconfiguration and must now access the target system | attempts | A | §5.1.1.6.11 |
L.HO.ExecSucc.ToNgRan |
Successful executions to NG-RAN target — path switch complete; UE is served by the target node and the AMF has updated the UE context | successes | A | §5.1.1.6.12 |
L.HO.PrepAtt.InterGNBXn |
Inter-gNB handover preparation attempts over the Xn interface — the source CU-CP has sent HandoverRequest to the target gNB via Xn-C | attempts | A | §5.1.1.6.5 |
L.HO.ExecSucc.InterGNBXn |
Inter-gNB Xn handover execution successes — UE has completed access on target cell and the source gNB has received the UE Context Release from the target | successes | A | §5.1.1.6.8 |
L.HO.PrepAtt.InterGNBN2 |
Inter-gNB handover preparation attempts over the N2 interface (Xn not available or not configured between the two gNBs) — AMF-mediated path | attempts | A | §5.1.1.6.13 |
L.HO.ExecSucc.InterGNBN2 |
Inter-gNB N2 handover execution successes — UE path switched via AMF; PDU session continuity confirmed | successes | A | §5.1.1.6.16 |
D.4 Throughput and PRB Utilisation Counters (L.Thrp.* / L.PRB.*)
Throughput counters are produced at NRCellCUUP granularity (L.Thrp.*) and NRCellDU granularity (L.PRB.*). The canonical DL throughput KPI defined in TS 28.554 §6.1 is computed as L.Thrp.bits.DL / L.Thrp.Time.DL, where the time counter excludes empty subframes (DTX). PRB counters are dimensionless ratios of used to available resource blocks and are the primary scheduling-layer load indicators used in Chapters 20–23.
| Counter Name | Description | Unit | Meas. Type | TS 28.552 Section |
|---|---|---|---|---|
L.Thrp.bits.DL |
Total downlink PDCP SDU bits delivered to UEs during the granularity period — the numerator of the DL user-plane throughput KPI; only counts successfully delivered, not retransmitted, bits | bits | A | §5.2.1.1.1 |
L.Thrp.bits.UL |
Total uplink PDCP SDU bits received from UEs during the granularity period — excludes PDCP headers and retransmissions counted at HARQ layer | bits | A | §5.2.1.1.2 |
L.Thrp.Time.DL |
Downlink active time — cumulative milliseconds during which at least one DL PDCP SDU was scheduled and transmitted; DTX frames are excluded; used as denominator for DL throughput | ms | A | §5.2.1.2.1 |
L.Thrp.Time.UL |
Uplink active time — cumulative milliseconds during which uplink PDCP data was actively flowing; used as denominator for UL throughput | ms | A | §5.2.1.2.2 |
L.Thrp.bits.DL.LastTTI |
DL bits transmitted in the last scheduled TTI before end of granularity period — a gauge counter used for instantaneous rate estimation; not suitable for KPI aggregation but useful for scheduler debugging | bits | G | §5.2.1.1.3 |
L.PRB.UsedDL |
Average number of downlink PRBs used per subframe during the granularity period — accumulated across all subframes and then divided by the number of subframes to produce the average; NRCellDU granularity | PRBs | A | §5.1.1.5.1 |
L.PRB.UsedUL |
Average number of uplink PRBs used per subframe — includes PUSCH and PUCCH scheduling; SRS symbols excluded | PRBs | A | §5.1.1.5.2 |
L.PRB.AvailDL |
Total downlink PRBs available per subframe — determined by the numerology, carrier bandwidth, and any reserved PRBs (SSB, CSI-RS patterns, SI windows); used as the denominator when computing PRB utilisation percentage | PRBs | G | §5.1.1.5.3 |
L.PRB.AvailUL |
Total uplink PRBs available per subframe — similar to AvailDL but accounts for TDD UL/DL configuration and PRACH occasion reservations | PRBs | G | §5.1.1.5.4 |
D.5 HARQ and Link Adaptation Counters (L.HARQ.* / L.CQI.* / L.RankDist.* / L.MCS.*)
HARQ and link-adaptation counters are produced at NRCellDU granularity. They provide direct visibility into the efficiency of the closed-loop AMC and MIMO rank-selection algorithms described in Chapters 21–22. The HARQ retransmission ratio L.HARQ.NbrRetransm.DL / (L.HARQ.NbrRetransm.DL + initial transmissions) is the most sensitive early indicator of radio-quality degradation; a rise of 1–2 percentage points often precedes measurable throughput loss by 30–60 minutes.
| Counter Name | Description | Unit | Meas. Type | TS 28.552 Section |
|---|---|---|---|---|
L.HARQ.NbrRetransm.DL |
Total DL HARQ retransmissions — incremented each time a PDSCH transport block requires a retransmission (NACK or DTX received from UE); does not count the initial transmission | TBs | A | §5.1.1.7.1 |
L.HARQ.NbrRetransm.UL |
Total UL HARQ retransmissions — incremented each time the gNB sends a NACK for a PUSCH transport block, triggering a UE retransmission; a high UL HARQ retransmission rate indicates UL interference or coverage issues | TBs | A | §5.1.1.7.2 |
L.HARQ.NbrNoFeedback.DL |
DL HARQ transmissions with no PUCCH feedback received — the gNB treated the missing ACK/NACK as DTX (discontinuous transmission by UE); elevated counts indicate PUCCH coverage or SR configuration issues | TBs | A | §5.1.1.7.3 |
L.CQI.CQITable.Wideband |
Wideband CQI distribution — a histogram counter array indexed by CQI value (0–15); each bin accumulates the number of subframes in which the reported wideband CQI equalled that index value; P50 of this histogram is the median CQI used in Chapter 21 analysis | subframes | A | §5.1.1.8.1 |
L.RankDist.DL.Rank1 |
Number of subframes in which the scheduler selected PDSCH transmission rank 1 (single-layer) for any active UE — high Rank1 dominance indicates limited spatial multiplexing opportunity (single-path propagation, low antenna separation, or poor SNR) | subframes | A | §5.1.1.9.1 |
L.RankDist.DL.Rank2 |
Number of subframes in which rank 2 (two-layer spatial multiplexing) was selected for DL transmission — a good indicator of urban macro or high-rise indoor MIMO performance | subframes | A | §5.1.1.9.2 |
L.RankDist.DL.Rank4 |
Number of subframes in which rank 4 (four-layer spatial multiplexing) was used — only reachable in cells with 4-receiver-capable UEs and well-separated antenna ports; a direct indicator of massive MIMO beam-forming gain | subframes | A | §5.1.1.9.4 |
L.MCS.Distribution.DL |
Downlink MCS index distribution — histogram counter array indexed by the MCS table index (0–27 for 64QAM table, 0–27 for 256QAM extended table per TS 38.214 Table 5.1.3.1-2); monitoring the shift of the P10 bin over time is a sensitive leading indicator of coverage degradation | TTIs | A | §5.1.1.10.1 |
D.6 Carrier Aggregation and BWP Counters (L.CA.* / L.BWP.*)
Carrier Aggregation and Bandwidth Part counters are produced at NRCellDU granularity for the secondary cell side (SCell), and at NRCellCUCP granularity for BWP switching. The SCell activation success rate L.CA.SCellActSucc / L.CA.SCellActAtt directly measures how efficiently the scheduler can invoke additional spectrum when a UE qualifies for aggregation (Chapter 23). The BWP switching counters track the frequency of BWP adaptation, which is a key energy-saving and interference management mechanism.
| Counter Name | Description | Unit | Meas. Type | TS 28.552 Section |
|---|---|---|---|---|
L.CA.SCellActAtt |
SCell activation attempts — incremented each time the gNB scheduler tries to activate a configured secondary component carrier for a specific UE; requires the UE to have already been configured with the SCell via RRCReconfiguration | attempts | A | §5.1.1.11.1 |
L.CA.SCellActSucc |
SCell activation successes — incremented when the UE responds positively to the MAC CE activation command and uplink HARQ feedback is received on the SCell; a low ratio vs. Att indicates SCell coverage shortfall or timing issues | activations | A | §5.1.1.11.2 |
L.CA.SCellDeactTimer |
SCell deactivations triggered by the sCellDeactivationTimer expiry — incremented when the MAC CE deactivates a secondary cell because no data was scheduled on it within the timer window; frequent deactivations indicate over-aggressive SCell configuration relative to actual traffic demand | deactivations | A | §5.1.1.11.3 |
L.BWP.BWPSwitch.DL |
Downlink BWP switch events — incremented each time the gNB commands a UE to change its active DL BWP via RRCReconfiguration or DCI field; includes both wideband-to-narrow switches (energy saving) and narrow-to-wideband switches (data burst) | switches | A | §5.1.1.12.1 |
L.BWP.BWPSwitch.UL |
Uplink BWP switch events — counts UL BWP changes commanded by the network; UL BWP switching is typically less frequent than DL and is primarily driven by UL coverage and UE power class constraints | switches | A | §5.1.1.12.2 |
L.CA.AggregatedPRB.DL |
Aggregated DL PRBs across all active component carriers — the sum of scheduled DL PRBs across PCell and all active SCells for the granularity period; used to compute effective aggregated spectrum utilisation; requires NRCellDU-level summation across component cells | PRBs | A | §5.1.1.11.5 |
D.7 EN-DC and Dual Connectivity Counters (L.EN_DC.* / L.DC.*)
EN-DC counters track the MR-DC procedure defined in TS 37.340, where an LTE MeNB anchors the control plane and an NR SgNB provides supplementary downlink capacity. The EN-DC add success rate L.EN_DC.AddSucc / L.EN_DC.AddAtt and the SCG failure rate L.EN_DC.SCGFail / L.EN_DC.AddSucc are the two primary KPIs for EN-DC (NSA) quality analysis in Chapter 28. All L.EN_DC.* counters are produced at the NR SgNB's NRCellDU/NRCellCUCP granularity levels.
| Counter Name | Description | Unit | Meas. Type | TS 28.552 Section |
|---|---|---|---|---|
L.EN_DC.AddAtt |
EN-DC SgNB addition attempts — incremented at the NR SgNB when it receives an SgNB Addition Request from the LTE MeNB via the X2 interface; represents the network's intent to add NR capacity to an existing LTE bearer | attempts | A | §5.1.1.13.1 |
L.EN_DC.AddSucc |
EN-DC SgNB addition successes — incremented when the SgNB Addition Request Acknowledge has been sent and the UE has completed random access on the NR SgNB cell; the NR SCG is now active | additions | A | §5.1.1.13.2 |
L.EN_DC.AddFail |
EN-DC SgNB addition failures — incremented when the SgNB returns SgNB Addition Request Reject, or when the UE fails to complete random access on the NR cell within the required window after an Acknowledge was sent | failures | A | §5.1.1.13.3 |
L.EN_DC.RelAbnorm |
Abnormal EN-DC releases — the NR SCG was released without a normal SgNB Release procedure being completed; causes include SCG failure indication from UE, X2 link failure, or MeNB-initiated release due to mobility event | releases | A | §5.1.1.13.5 |
L.EN_DC.RelNorm |
Normal EN-DC releases — the SgNB Release procedure was completed successfully; includes bearer modification, handover, or deliberate QoS-driven release by the MeNB; high ratio of RelNorm to total releases is a positive indicator | releases | A | §5.1.1.13.4 |
L.EN_DC.SCGFail |
SCG failure indications received from UEs — the UE has detected SCG failure (T310/T312 expiry on NR, or RACH failure on SCG) and has reported it to the MeNB via RRCConnectionReconfigurationComplete or SCGFailureInformation; each increment represents a live session impacted by NR radio quality | failures | A | §5.1.1.13.6 |
L.DC.SplitBearerAct |
Active split bearer count — a gauge counter recording the number of UEs simultaneously using a split bearer (DRB traffic split across both LTE MeNB and NR SgNB user planes) at the end of each granularity period; reflects dual-connectivity utilisation intensity | UEs | G | §5.1.1.14.1 |
D.8 Energy Saving and VoNR Counters (L.ES.* / L.VoNR.*)
Energy-saving counters track the cell-switching lifecycle defined in TS 28.552 §5.1.1.16, which supports the SON energy-saving function of TS 32.551. VoNR counters track IMS voice session quality at the RAN level and are derived from the 5QI-1 bearer performance defined in TS 23.501 Table 5.7.4-1. Together these two counter families underpin the sustainability and service-quality analysis in Chapters 29 and 31.
| Counter Name | Description | Unit | Meas. Type | TS 28.552 Section |
|---|---|---|---|---|
L.ES.CellSwitchOff.Count |
Number of times a cell was switched off by the energy-saving SON function during the granularity period — incremented when the gNB deactivates a carrier in response to low-load conditions and a coverage compensation agreement with neighbour cells is in effect | events | A | §5.1.1.16.1 |
L.ES.CellSwitchOn.Count |
Number of times a switched-off cell was restored by the energy-saving function — incremented when load or coverage triggers cause the gNB to re-activate the carrier; a high oscillation rate (SwitchOff and SwitchOn both elevated) indicates hysteresis misconfiguration | events | A | §5.1.1.16.2 |
L.ES.EnergyConsumed |
Estimated energy consumed by the cell during the granularity period — derived from the gNB's internal power model applying TS 28.552 Annex A energy efficiency measurement methodology; units are milliwatt-hours; used to compute the energy efficiency KPI defined in TS 28.554 §6.7 | mWh | A | §5.1.1.16.3 |
L.VoNR.SessionEstabAtt |
VoNR session establishment attempts — incremented when a QoS flow with 5QI-1 (conversational voice) is requested for a UE; requires an IMS registration to be active and the UE to be in RRC_CONNECTED state | sessions | A | §5.2.1.3.1 |
L.VoNR.SessionEstabSucc |
VoNR session establishments successfully completed — incremented when the 5QI-1 QoS flow has been activated end-to-end, SDP negotiation is complete, and the first RTP packet is confirmed; the ratio Succ/Att forms the VoNR Session Establishment Success Rate KPI | sessions | A | §5.2.1.3.2 |
L.VoNR.SessionAbnormRel |
Abnormal VoNR session releases — the 5QI-1 bearer was released without a normal IMS session teardown (BYE/200 OK exchange); common causes are RLF, handover failure, or 5QI-1 QoS flow deletion triggered by the UPF | releases | A | §5.2.1.3.3 |
L.VoNR.E2EDelay.Mean |
Mean end-to-end one-way packet delay for 5QI-1 traffic within the 5G RAN segment — measured from PDCP SDU arrival at the gNB to successful HARQ ACK; the Packet Delay Budget for 5QI-1 is 100 ms (TS 23.501 Table 5.7.4-1); values approaching 50 ms indicate scheduling or buffering issues | ms | G | §5.2.1.4.1 |
Every counter name in this appendix follows the structure <MeasurementObject>.<MeasurementName>[.<SubCounter>] defined normatively in TS 28.552 §5. The prefix letter (L.) maps to the NR measurement object class prefix. Sub-counters separated by a period (e.g., .IntraGNB, .Radio) are individually accumulative and must sum to the parent counter total within any given granularity period. Any PM export that shows a sub-counter exceeding its parent counter indicates a collection or export defect and must be rejected before KPI computation.
Optimization Checklist Cards
Per-domain pre/post optimization verification — each item anchored to a TS parameter or counter
Six domain checklists covering Accessibility, Mobility, Retainability, Throughput, VoNR, and Energy Saving — with 3GPP parameter names, counter references, targets, and specification clauses for every item
Each row represents one verification point to be confirmed before (baseline) and after (post-change) any optimization activity in the domain. The Parameter / Counter column gives the exact 3GPP TS 38.331 RRC parameter name or TS 28.552 PM counter to inspect. The Target column states the indicative threshold; actual SLA targets are operator-defined. The TS Reference column gives the normative specification clause. The Chapter column cross-references the main text where the underlying theory is explained. Zero vendor-proprietary names are used anywhere in this appendix.
E.1 Accessibility Optimization Checklist
Accessibility covers all procedures from initial cell search through PDU session establishment. The primary counters are in the RRC, RACH, and SM measurement families defined in TS 28.552 §5.1.1, §5.1.2, and §5.1.8. KPI formulas are normatively defined in TS 28.554 §5.1.1. Before applying any RACH or RRC parameter change, record baseline values for all ten items below; verify each item again 24 hours after the change is live.
| # | Check | Parameter / Counter | Target | TS Reference | Chapter |
|---|---|---|---|---|---|
| 1 | RACH Success Rate above threshold — confirms preamble detection and RAR delivery are healthy | RACH.PreambleReceivedDedicated / RACH.PreambleDedicatedAtt (TS 28.552 ratio) |
≥ 99.0 % | TS 28.554 §5.1.1.1; TS 28.552 §5.1.2 | Ch 9 — RACH Procedure |
| 2 | RRC Setup Success Rate above threshold — confirms Msg3/Msg4 and RRC setup complete exchange are stable | RRC.ConnEstabSucc.sum / RRC.ConnEstabAtt.sum × 100 |
≥ 99.5 % | TS 28.554 §5.1.1.2; TS 28.552 §5.1.1 | Ch 11 — RRC Setup |
| 3 | PRACH format matches coverage scenario — long formats (A1–A3, B1–B4, C0–C2) required beyond 1.5 km for correct timing advance range | prach-ConfigurationIndex (TS 38.211 Table 6.3.3.2-2 / TS 38.331 RACH-ConfigCommon) |
Format covers cell radius + 10 % margin | TS 38.211 §6.3.3; TS 38.331 §6.3.2 | Ch 9 — RACH Procedure |
| 4 | Preamble power ramping step appropriate — step too large causes overshoot interference; step too small causes excessive RACH attempts | powerRampingStep (TS 38.331 RACH-ConfigGeneric: 0, 2, 4, 6 dB) |
2 dB (macro); 4 dB (small cell) | TS 38.321 §5.1.2; TS 38.331 §6.3.2 | Ch 9 — RACH Procedure |
| 5 | T300 timer aligned with network load — timer expiry before RRC setup complete is counted as RRC failure | t300 (TS 38.331 UE-TimersAndConstants: ms100…ms2000) |
ms1000 (dense); ms1500 (rural) | TS 38.331 §6.3.2 (t300); §5.3.3.3 | Ch 11 — RRC Setup |
| 6 | maxHARQ-Msg3Tx set to handle uplink coverage without excessive contention window expansion | maxHARQ-Msg3Tx (TS 38.331 RACH-ConfigGeneral: 1…8) |
4–6 (macro); 3–4 (picocell) | TS 38.321 §5.1.5; TS 38.331 §6.3.2 | Ch 9 — RACH Procedure |
| 7 | Contention resolution timer value sufficient — UE abandons RACH if timer expires before receiving Msg4 with its C-RNTI | ra-ContentionResolutionTimer (TS 38.331 RACH-ConfigGeneral: sf8…sf64) |
sf64 (high load); sf32 (low load) | TS 38.321 §5.1.5; TS 38.331 §6.3.2 | Ch 9 — RACH Procedure |
| 8 | SSB beam coverage verified — each SSB beam must provide measurable SS-RSRP above cell-specific threshold across intended coverage area | smtc1 / ssb-PositionsInBurst (TS 38.331); counter: L.CRS.SSBBeamSweep.Att |
SS-RSRP ≥ −110 dBm at cell edge | TS 38.213 §4.1; TS 38.331 §6.3.2 | Ch 6 — SSB Beam Sweeping |
| 9 | PDCCH aggregation level distribution — excessive AL 16 usage indicates downlink coverage stress; re-tune initial DL power or antenna tilt | PDCCH.AL1.Att + PDCCH.AL2.Att + … + PDCCH.AL16.Att (TS 28.552 §5.1.1.4) |
AL16 share < 15 % | TS 38.213 §10.1; TS 28.552 §5.1.1.4 | Ch 12 — Initial Access RCA |
| 10 | N_RA_RO (number of RACH occasions per SSB) scaled to UE density — too few occasions cause collision-induced RACH failures under high load | ra-OccasionPerSSB (TS 38.331 RACH-ConfigCommon); PM: RACH.Fail.Collision |
Collision-induced RACH fail < 0.5 % | TS 38.211 §6.3.3.2; TS 38.331 §6.3.2 | Ch 9 — RACH Procedure |
E.2 Mobility Optimization Checklist
Mobility counters are defined in TS 28.552 §5.1.1.6 (intra-gNB) and §5.1.1.7 (inter-gNB). KPI targets follow TS 28.554 §5.1.3. Measurement event thresholds (A3, A5, B1) are defined in TS 38.331 §5.5.4. Verify all items after any handover parameter change and again after 72 hours of normal traffic.
| # | Check | Parameter / Counter | Target | TS Reference | Chapter |
|---|---|---|---|---|---|
| 1 | Handover Success Rate above threshold — primary mobility health KPI; sustained degradation indicates inter-cell coverage gap or X2/Xn failure | HO.ExeSucc.sum / HO.ExeAtt.sum × 100 (TS 28.552 §5.1.1.6) |
≥ 99.0 % | TS 28.554 §5.1.3.1; TS 28.552 §5.1.1.6 | Ch 14–16 — Handover Chapters |
| 2 | Ping-pong rate below threshold — excessive ping-pong inflates handover signalling load and degrades UE battery life | HO.PingPong.Nbr / HO.ExeSucc.sum × 100 (TS 28.552 §5.1.1.6.5) |
< 5 % | TS 28.552 §5.1.1.6.5; TS 28.554 §5.1.3 | Ch 19 — Mobility RCA |
| 3 | a3Offset value tuned per inter-site distance — a positive offset delays the HO trigger; set too high causes late HO and HOF; set too low causes ping-pong | a3-Offset (TS 38.331 EventTriggerConfig reportConfigNR; range −30 to +30 in 0.5 dB steps) |
3–6 dB (macro); 0–3 dB (small cell) | TS 38.331 §5.5.4.4; §6.3.2 | Ch 13 — Measurement Events |
| 4 | Hysteresis aligned with a3Offset — total guard margin = a3Offset + hysteresis; must prevent simultaneous early and late HO failure modes | hysteresis (TS 38.331 EventTriggerConfig; range 0–15 in 0.5 dB steps) |
2–4 dB (macro); 1–2 dB (small cell) | TS 38.331 §5.5.4.1; §6.3.2 | Ch 13 — Measurement Events |
| 5 | TimeToTrigger set to filter transient fading — TTT too short triggers spurious HOs on momentary dips; too long causes HOF in fast-moving UEs | timeToTrigger (TS 38.331 EventTriggerConfig; ms0…ms5120) |
ms160 (pedestrian); ms40–ms80 (vehicular > 80 km/h) | TS 38.331 §5.5.4.1; §6.3.2 | Ch 13 — Measurement Events |
| 6 | T304 handover execution timer appropriate — expiry of T304 at the UE triggers RRC re-establishment at source cell, counted as HOF | t304 (TS 38.331 ReconfigurationWithSync; ms50…ms2000) |
ms500 (NR–NR same freq); ms1000 (inter-freq) | TS 38.331 §5.3.5.3; §6.3.2 (t304) | Ch 14 — Intra-gNB HO |
| 7 | CHO candidate serving cell list configured — at least two candidate cells per CHO UE reduces conditional HO failure rate | candidateServingFreqList (TS 38.331 ConditionalReconfiguration); counter: HO.CHO.Prep.Att |
≥ 2 candidate cells | TS 38.331 §5.3.5.3.2; §6.3.2 | Ch 17 — CHO and DAPS |
| 8 | DAPS HO enabled where supported — DAPS maintains source-cell data path during execution, eliminating HOF-driven data interruption in high-mobility scenarios | daps-HO-Required indication (TS 38.331 DAPSHOInfo); counter: HO.DAPS.ExeSucc |
DAPS HO interruption time < 0 ms (by design) | TS 38.300 §9.2.4; TS 38.331 §5.3.5.3.3 | Ch 17 — CHO and DAPS |
| 9 | ANR feature active and producing neighbour relation updates — stale NRT causes missing HO targets and SON parameter drift | anr-Enabled (TS 36.300 SON NRT); PM counter: ANR.NRTUpdate.Succ (TS 28.552 §5.1.1.9) |
NRT update SR ≥ 98 % | TS 38.300 §15.6.2; TS 28.552 §5.1.1.9 | Ch 18 — ANR |
| 10 | X2/Xn interface health confirmed — inter-gNB HO requires a healthy Xn-C control-plane association; loss of Xn forces N2-based HO with higher latency and increased HOF risk | XnAP.TNLAssocSetupSucc / XnAP.TNLAssocSetupAtt (TS 28.552 §5.1.1.7) |
Xn TNL setup SR ≥ 99.9 % | TS 38.423 (XnAP); TS 28.552 §5.1.1.7 | Ch 15 — Inter-gNB Xn HO |
E.3 Retainability Optimization Checklist
Retainability measures the network's ability to maintain a connection for its full intended duration. The normative counter family is defined in TS 28.552 §5.1.1.2 (RLC/PDCP) and §5.1.1.5 (RLF). Drop call and RLF rates are key retainability KPIs in TS 28.554 §5.1.2. Verify all items before and 48 hours after any RLC, timer, or coverage-related change.
| # | Check | Parameter / Counter | Target | TS Reference | Chapter |
|---|---|---|---|---|---|
| 1 | Drop Call Rate below threshold — measures abnormal RRC connection release not requested by UE or network for service completion | RRC.ConnAbnormRel.sum / RRC.ConnMax × 100 (TS 28.552 §5.1.1.2) |
< 0.5 % | TS 28.554 §5.1.2.1; TS 28.552 §5.1.1.2 | Ch 27 — Drop Call |
| 2 | Radio Link Failure rate below threshold — RLF is declared when T310 expires without recovery to In-Sync from Out-of-Sync state | RLF.Ind.sum (TS 28.552 §5.1.1.5); PM: L.RLF.Ind |
< 2 % | TS 38.321 §5.3.10; TS 28.552 §5.1.1.5 | Ch 25 — RLF |
| 3 | T310 timer value appropriate for Doppler environment — T310 starts on first Out-of-Sync indication; expiry declares RLF. Too short causes false RLF in fast fading. | t310 (TS 38.331 RadioLinkMonitoringConfig; ms0…ms2000) |
ms1000 (pedestrian); ms500 (vehicular) | TS 38.331 §5.3.10.3; §6.3.2 (t310) | Ch 25 — RLF |
| 4 | N310 and N311 counters balanced — N310 consecutive Out-of-Sync indications trigger T310; N311 consecutive In-Sync indications cancel it. Mistuning inflates false RLF events. | n310 (TS 38.331 UE-TimersAndConstants; n1…n20); n311 (n1…n10) |
N310=6, N311=1 (macro baseline) | TS 38.331 §5.3.10.3; §6.3.2 (n310, n311) | Ch 25 — RLF |
| 5 | RLC AM maxRetxThreshold set to limit excessive RLC retransmissions before declaring uplink failure — value too high delays RLF declaration, inflating RLC buffer | maxRetxThreshold (TS 38.331 RLC-Config am mode; t1…t32) |
t8 (balanced); t4 (latency-sensitive) | TS 38.322 §5.3.2; TS 38.331 §6.3.2 | Ch 25 — RLF |
| 6 | T311 re-establishment search timer long enough for UE to find a new cell after RLF — expiry while searching causes call drop instead of re-establishment | t311 (TS 38.331 UE-TimersAndConstants; ms1000…ms30000) |
ms10000 (macro); ms5000 (dense urban) | TS 38.331 §5.3.7.2; §6.3.2 (t311) | Ch 26 — RRC Re-establishment |
| 7 | RRC Re-establishment Success Rate above threshold — re-estab fails when context is unavailable at the new cell, indicating missing Xn context forwarding | RRC.ReEstabSucc.sum / RRC.ReEstabAtt.sum × 100 (TS 28.552 §5.1.1.3) |
≥ 95 % | TS 28.554 §5.1.2.3; TS 28.552 §5.1.1.3 | Ch 26 — RRC Re-establishment |
| 8 | Xn UE context forwarding active for all Xn-connected neighbours — RRC re-establishment at non-anchor cell requires UE context; absence causes re-estab fallback to target cell rejection | XnAP.UEContextTransfer.Succ (TS 28.552 §5.1.1.7); TS 38.423 UE Context Transfer procedure |
Context transfer SR ≥ 99 % | TS 38.423 §8.2; TS 28.552 §5.1.1.7 | Ch 26 — RRC Re-establishment |
| 9 | PDCP discardTimer set to prevent buffer starvation on retransmission storm — packets with expired discard timers are silently dropped, masking the root cause | discardTimer (TS 38.331 PDCP-Config; ms10…infinity) |
ms1500–ms3000 (data); ms50 (VoNR) | TS 38.323 §5.4.1; TS 38.331 §6.3.2 | Ch 27 — Drop Call |
| 10 | Coverage RSRP threshold for abnormal release cross-checked — cells with SS-RSRP consistently below −115 dBm at edge produce retainability degradation regardless of timer tuning | servingCellThresholdLow (TS 38.331 Q-OffsetRange in MeasObjectNR); PM: DL.RSRP.DistBin |
Median SS-RSRP ≥ −105 dBm | TS 38.213 §4.1; TS 38.331 §5.5.4 | Ch 8 — Coverage Optimization |
E.4 Throughput Optimization Checklist
Throughput optimization items address the scheduler, link adaptation, MIMO, carrier aggregation, and power control layers. PM counters are sourced from TS 28.552 §5.1.1.4 (scheduling), §5.1.2 (radio resource utilisation), and §5.2 (PDCP throughput). Verify all items during a busy-hour window before and 24 hours after any scheduling or antenna-related change.
| # | Check | Parameter / Counter | Target | TS Reference | Chapter |
|---|---|---|---|---|---|
| 1 | PRB utilisation below congestion threshold — sustained high PRB utilisation compresses MCS distribution and degrades cell-edge throughput | RRU.PrbUsedDl / RRU.PrbAvailDl × 100 (TS 28.552 §5.1.1.2) |
< 85 % | TS 28.552 §5.1.1.2; TS 28.554 §5.1.4 | Ch 20 — Scheduling |
| 2 | Average CQI above healthy threshold — CQI < 7 at cell average indicates either coverage stress or CSI misconfiguration | DL.CQI.DistBin (TS 28.552 §5.1.1.4); derive mean from distribution bins |
Mean CQI ≥ 9 | TS 38.214 §5.2.2; TS 28.552 §5.1.1.4 | Ch 21 — MCS and Link Adaptation |
| 3 | Average DL MCS above threshold — MCS < 15 at average indicates CQI under-estimation, CSI-RS misconfiguration, or sustained interference | DL.MCS.DistBin (TS 28.552 §5.1.1.4); derive mean from distribution bins |
Mean MCS ≥ 20 | TS 38.214 §5.1.3 (MCS Table 5.1.3.1-2); TS 28.552 §5.1.1.4 | Ch 21 — MCS and Link Adaptation |
| 4 | MIMO Rank 2+ share above target — low rank-2+ share indicates insufficient spatial separation of antenna ports or UE angular spread too narrow | DL.Rank.DistBin[rank≥2] / DL.Rank.DistBin.Total × 100 (TS 28.552 §5.1.1.4) |
≥ 60 % | TS 38.214 §5.2.1; TS 28.552 §5.1.1.4 | Ch 22 — MIMO |
| 5 | CA SCell activation success rate adequate — failed SCell activations suppress CA throughput gain even when secondary cell resources are available | CA.SCellActSucc / CA.SCellActAtt × 100 (TS 28.552 §5.1.1.8) |
≥ 97 % | TS 38.321 §5.13.1; TS 28.552 §5.1.1.8 | Ch 23 — CA and BWP |
| 6 | BWP switching latency within specification — UE must complete BWP switch within one slot for FR1; verify no scheduler stall observed in PM traces | bwp-SwitchingDelay (TS 38.133 Table 8.6A); PM: BWP.SwitchSucc / BWP.SwitchAtt |
≤ 1 slot (FR1); ≤ 2 slots (FR2) | TS 38.133 §8.6A; TS 38.321 §5.15 | Ch 23 — CA and BWP |
| 7 | PUSCH P0-PUSCH open-loop power control baseline correct — too low causes UL SINR floor; too high causes uplink interference to co-channel cells | p0-NominalWithoutGrant / p0-PUSCH-Alpha (TS 38.331 PUSCH-PowerControl; p0 range −202 to +24 dBm) |
P0 tuned to target UL SINR of 10–15 dB | TS 38.213 §7.1; TS 38.331 §6.3.2 | Ch 24 — UL Power Control |
| 8 | UL SINR distribution centred in healthy range — verify distribution bins; sustained UL SINR < 5 dB at cell average indicates coverage gap or interference | UL.SINR.DistBin (TS 28.552 §5.1.1.4); derive percentile from bins |
P50 UL SINR ≥ 8 dB | TS 38.215 §5.1.2 (SINR measurement); TS 28.552 §5.1.1.4 | Ch 5 — RSRP/RSRQ/SINR |
| 9 | HARQ DL retransmission rate below threshold — high retransmission rate indicates CQI over-estimation by LA or persistent interference event | DL.HARQ.NackRatio = DL.HARQ.Nack.sum / DL.HARQ.Att.sum × 100 (TS 28.552 §5.1.1.4) |
< 10 % | TS 38.212 §7.3 (HARQ); TS 28.552 §5.1.1.4 | Ch 21 — MCS and Link Adaptation |
| 10 | 256-QAM DL enablement verified for capable UEs — UEs reporting CQI 15 (highest) must be scheduled with MCS table 2 (256-QAM) per TS 38.214 when UE indicates 256QAM capability | mcs-Table = qam256 (TS 38.331 PDSCH-Config); PM: DL.MCS.256QAM.Ratio |
256-QAM share ≥ 20 % (high-density urban) | TS 38.214 §5.1.3 Table 5.1.3.1-2; TS 38.331 §6.3.2 | Ch 21 — MCS and Link Adaptation |
E.5 VoNR / Voice Checklist
VoNR uses 5QI = 1 GBR bearer with strict packet delay and loss requirements defined in TS 23.501 §5.7.3.1. PM counters are in TS 28.552 §5.2 (PDCP/QoS flow level). Voice-specific features including SPS, DTX, and IMS always-on PDU session are described in TS 38.300, TS 38.321, and TS 24.501. Verify all items before VoNR launch and after any QoS or IMS parameter change.
| # | Check | Parameter / Counter | Target | TS Reference | Chapter |
|---|---|---|---|---|---|
| 1 | VoNR Session Setup Success Rate above threshold — measured from IMS INVITE to 200 OK with GBR bearer established | VoNR.SessionEstabSucc / VoNR.SessionEstabAtt × 100 (TS 28.552 §5.2.1) |
≥ 99 % | TS 28.554 §6.5; TS 28.552 §5.2.1 | Ch 29 — VoNR |
| 2 | End-to-end voice delay below ITU-T G.114 one-way threshold — measures transport delay from encoder output to decoder input including all radio and core-side latency | QoS.PacketDelayDL.5QI1.P50 (TS 28.552 §5.2.5); ITU-T G.114 mouth-to-ear model |
< 100 ms one-way | ITU-T G.114; TS 23.501 §5.7.3.1 (5QI=1 PDB = 100 ms) | Ch 29 — VoNR |
| 3 | 5QI=1 bearer priority correctly set — logical channel priority for 5QI 1 must be 1 (highest), ensuring voice packets preempt all BE traffic in MAC scheduling | logicalChannelPriority = 1 for 5QI 1 bearer (TS 38.331 LogicalChannelConfig); schedulingRequestId dedicated for voice LC |
LCP = 1 for voice LC | TS 38.321 §5.4.3.1; TS 38.331 §6.3.2 | Ch 29 — VoNR |
| 4 | SPS (Semi-Persistent Scheduling) enabled for VoNR — SPS eliminates per-packet PDCCH overhead for the 20 ms AMR codec period, reducing PDCCH load by up to 40 % | sps-Config enabled (TS 38.331 PDSCH-Config); PM: DL.SPS.ActivSucc / DL.SPS.ActivAtt |
SPS SR ≥ 99 % | TS 38.321 §5.8.1; TS 38.331 §6.3.2 | Ch 29 — VoNR |
| 5 | HARQ maximum retransmissions for VoNR bearer set low — at most 3 HARQ retransmissions permitted for 5QI 1 to stay within 100 ms PDB; more retransmissions violate delay budget | pdsch-AggregationFactor / HARQ process count in DCI for voice bearer; max HARQ Tx = 3 (TS 38.321 §5.3.2) |
Max HARQ retransmissions ≤ 3 | TS 38.321 §5.3.2; TS 38.214 §5.1.2 | Ch 29 — VoNR |
| 6 | DTX (Discontinuous Transmission) enabled in silence intervals — DTX suppresses UL transmission during SID (Silence Insertion Descriptor) periods, reducing UL interference by 50–60 % during silence | dtx-Enabled = true (TS 38.331 UplinkPowerControl); PM: UL.DTX.ActiveRatio |
DTX active ratio ≥ 40 % (typical for voice) | TS 26.071 §5 (AMR-WB); TS 38.213 §7.2.1 | Ch 29 — VoNR |
| 7 | PDCP discardTimer for VoNR bearer set below PDB — late packets are harmful to voice quality; expired packets should be discarded to prevent jitter buffer overflow rather than retransmitted | discardTimer = ms50 for 5QI 1 bearer (TS 38.331 PDCP-Config); TS 38.323 §5.4.1 |
≤ 50 ms | TS 38.323 §5.4.1; TS 38.331 §6.3.2; TS 23.501 5QI=1 PDB | Ch 29 — VoNR |
| 8 | IMS always-on PDU session configured — voice PDU session must persist in RRC_IDLE using "always-on" attribute to avoid re-establishment latency at incoming call | PDUSessionType = always-on (TS 24.501 §6.4.1); PM: SM.PDUSessionModSucc.AlwaysOn |
Always-on PDU session SR ≥ 99.5 % | TS 24.501 §6.4.1; TS 23.501 §5.6.13 | Ch 29 — VoNR |
E.6 Energy Saving Checklist
Energy saving features are standardised in TS 28.310 (Energy Efficiency Management) and TS 36.927 / TS 38.300 (SON ES). The key KPI is the Energy Efficiency (EE) metric in TS 28.554 §5.2, expressed in bits per joule. Cell switch-off (CSO) and symbol shutdown procedures must be configured so that coverage and capacity SLAs are not compromised when the feature activates. Verify all items before and one week after activating any ES feature.
| # | Check | Parameter / Counter | Target | TS Reference | Chapter |
|---|---|---|---|---|---|
| 1 | Night-time Cell Switch-Off enabled and scheduled — CSO must activate only in defined low-traffic windows; verify cron schedule is not bleeding into morning ramp-up | ES.CellSwitchOff.Activated (TS 28.310 §7.3.2); PM: ESM.CellSwitchOff.ActivSucc |
CSO active outside busy hour only | TS 28.310 §7.3; TS 36.927 §5.4 | Ch 31 — Energy Saving |
| 2 | CSO load threshold set to avoid activation under residual traffic — activating CSO while cells carry active VoNR sessions causes immediate drops; threshold must include headroom | loadThresholdForCellSwitch (TS 28.310 §7.3.2 ES policy attribute); PM: RRU.PrbUsedDl |
PRB utilisation < 10 % before CSO activates | TS 28.310 §7.3.2; TS 28.552 §5.1.1.2 | Ch 31 — Energy Saving |
| 3 | Symbol shutdown (partial TTI muting) enabled for sub-cell-level saving — symbol shutdown reduces PA power during OFDM symbols with no scheduled users without impacting coverage | symbolShutdown-Enabled (TS 38.300 §15.4 SON ES); PM: ESM.SymbolShutdown.ActiveRatio |
Symbol shutdown active ≥ 30 % of low-load time | TS 38.300 §15.4; TS 28.310 §7.4 | Ch 31 — Energy Saving |
| 4 | Carrier switch-off policy configured with compensating neighbours — carrier shutdown (e.g. FR2 off at night) requires FR1 neighbours to absorb offloaded UEs; verify neighbour capacity headroom before enabling | carrierSwitch-OffThreshold (TS 28.310 ES policy); PM: ESM.CarrierSwitchOff.ActivSucc |
FR1 neighbour PRB utilisation < 70 % when FR2 off | TS 28.310 §7.3; TS 38.300 §15.4 | Ch 31 — Energy Saving |
| 5 | DRX configured for all data UEs — DRX enables UE and gNB to deactivate receiver chains in sleep cycles, reducing both UE battery drain and gNB baseband power | drx-Config (TS 38.331 MAC-CellGroupConfig); PM: DRX.ActiveRatio (TS 28.552 §5.1.1.2) |
DRX active ratio ≥ 60 % for idle-like UEs | TS 38.321 §5.7; TS 38.331 §6.3.2 | Ch 31 — Energy Saving |
| 6 | Energy Efficiency KPI above baseline — EE = total bits delivered / total energy consumed; tracked per NRCellDU per hour in PM export | EE.NRCellDU = (DL.Tput.Bits + UL.Tput.Bits) / Energy.Consumed.Wh (TS 28.554 §5.2.2) |
≥ 5 000 bits/J (indicative) | TS 28.554 §5.2.2; TS 28.310 §7.5 | Ch 31 — Energy Saving |
| 7 | CSO wake-up latency within acceptable bound — CSO cells must resume service within 500 ms of load-based re-activation trigger to prevent accessibility degradation during traffic ramp | wakeUpLatency (TS 28.310 ES policy); PM: ESM.CellActivation.Latency.P95 |
< 500 ms P95 | TS 28.310 §7.3.4; TS 36.927 §5.4 | Ch 31 — Energy Saving |
| 8 | No active VoNR sessions during CSO window — GBR bearers (5QI 1) must be migrated to compensating cells before CSO activates; a non-zero VoNR.SessionEstabSucc during CSO indicates policy misconfiguration |
VoNR.SessionEstabSucc (TS 28.552 §5.2.1) during CSO window; PM alarm on ESM.CellSwitchOff.GBRUserMigration.Fail |
VoNR sessions on CSO cell = 0 | TS 28.310 §7.3.2; TS 23.501 §5.7.3.1 | Ch 31 — Energy Saving |
Print or export each domain table as a standalone card for field use. Before any optimisation activity, capture baseline values for every counter and parameter in the table. After the change is activated, wait for at least one full busy-hour cycle (typically 08:00–22:00 local time) before re-measuring. A KPI that regresses below target after a parameter change is a rollback trigger — revert the change, file a trouble ticket, and re-investigate the root cause using the corresponding chapter in the main text. The TS Reference column is your authoritative source for parameter ranges and counter definitions; always verify against the applicable 3GPP Release version deployed in your network.
Interview Q&A Bank
Comprehensive question and answer reference for senior RF engineer interviews — physical layer, RACH, mobility, and throughput depth
TS 38.211 · TS 38.212 · TS 38.213 · TS 38.214 · TS 38.300 · TS 38.321 · TS 38.331 · TS 28.552 · TS 28.554Each question is followed by a senior-level answer with normative 3GPP clause references. Answers are deliberately concise (3–6 sentences) as a hiring interview demands: the interviewer is testing whether you know the spec anchor, not whether you can reproduce the chapter. For deep background on any topic, follow the cross-references to the corresponding chapter. Questions are ordered from pure physical-layer knowledge (F.1) through system-level optimisation (F.4). The quick-reference tables in F.5 serve as a last-minute review sheet.
F.1 Physical Layer & Air Interface
SS-RSRP is derived from the Synchronisation Signal Block (SSB) and is defined in TS 38.215 §5.1.1 as the linear average power of resource elements carrying the SS/PBCH secondary synchronisation signal. CSI-RSRP is derived from CSI-RS and defined in TS 38.215 §5.1.3; it requires the UE to be in RRC_CONNECTED and CSI-RS resources to be explicitly configured. SS-RSRP is the correct metric for coverage assessment, idle-mode cell selection/reselection (TS 38.304), and first-boot drive testing because SSB is always transmitted regardless of load. CSI-RSRP is used for beamformed serving-cell quality in connected-mode layer-3 measurement reports (TS 38.331 §5.5.3) and is essential when evaluating the benefit of beam management or BFR because CSI-RS can be beam-specific at higher resolution than SSB. A mismatch between the two on the same UE indicates that the SSB and CSI-RS beams are not co-directed — a misconfiguration to flag immediately.
The RLF detection state machine is defined in TS 38.331 §5.3.10. N310 counts consecutive "out-of-sync" indications from the physical layer (PDCCH BLER above the Qout threshold defined in TS 38.213 §5); when N310 consecutive indications have been received, T310 is started. If T310 expires before N311 consecutive "in-sync" indications are received, the UE declares RLF and initiates RRC re-establishment (TS 38.331 §5.3.11). A T310 that is too short (e.g., 50 ms vs. the typical 1 s recommendation) causes the UE to declare RLF during a momentary deep fade or during the inter-beam gap of beam failure recovery, leading to unnecessary re-establishments — visible as elevated L.RRC.ReEstabAtt and L.RRC.ReEstabSucc.HO counters even when signal quality is structurally adequate. The correct operating strategy is to set T310 long enough to allow BFR (which completes in tens of milliseconds for FR1) to recover before RLF is declared, but short enough that a genuinely lost connection does not hold UE context on the gNB CU-CP unnecessarily.
PDCCH aggregation level (AL) determines the number of consecutive Control Channel Elements (CCEs) used to carry one DCI, as defined in TS 38.211 §7.3.2. Higher AL multiplies the effective coding rate gain: AL-16 provides approximately 4 dB more link budget than AL-4 for the same DCI payload. The gNB scheduler selects AL based on the UE's reported CQI or, more precisely, based on the estimated PDCCH BLER from L1 measurement. In a coverage-limited cell, the scheduler should be transmitting most DCI at AL-8 or AL-16; if it is still using AL-1 or AL-2 for cell-edge UEs (due to a misconfigured PDCCH channel estimation threshold), those UEs will fail to decode scheduling grants and appear as PRB-loaded but throughput-starved. The counter to check is the AL distribution histogram (e.g., L.PDCCH.AL1.Att, L.PDCCH.AL16.Att) defined in TS 28.552 §5.1.3; a healthy cell should show a distribution skewed to lower ALs, while a coverage-impaired cell will show AL-16 dominating.
The MCS index selects the modulation order (QPSK/16QAM/64QAM/256QAM) and the code rate from the MCS table defined in TS 38.214 Table 5.1.3.1-1 (64QAM max) or Table 5.1.3.1-2 (256QAM). The Transport Block Size is then computed via the procedure in TS 38.214 §5.1.3.2, which depends on the number of allocated PRBs, the number of DMRS symbols, and the number of layers. The link adaptation (LA) algorithm continuously targets a first-transmission BLER of approximately 10% for initial transmissions (BLERtarget = 0.1), because this point maximises throughput after HARQ combining: HARQ Chase Combining or IR at the second attempt recovers most blocks that fail the first CRC, yielding an effective post-HARQ BLER well below 1% while keeping the MCS at a value close to the Shannon capacity boundary. Drifting above 10% BLER increases retransmission overhead; drifting below 2% means the LA is being too conservative and leaving spectral efficiency on the table.
3GPP chose LDPC for data channels (PDSCH/PUSCH) and polar codes for control channels (PDCCH, PBCH, PUCCH formats) in TS 38.212 based on the asymptotic performance of each code family. LDPC codes (base graphs BG1 for large TBS >3824 bits and BG2 for smaller TBS, defined in TS 38.212 §5.2.2) achieve capacity-approaching performance at high code rates because their sparse parity-check matrix enables efficient belief propagation decoding, and their block length can be extended via lifting without re-designing the base graph. Turbo codes, used in LTE, suffer from an error floor at low code rates and have a significantly higher decoder complexity per bit at the large block lengths required for 100 Mbps+ throughput. Polar codes (TS 38.212 §5.3) provably achieve channel capacity for short block lengths and are particularly efficient for the small payloads of DCI (≈40–100 bits) or PBCH (32 bits), where LDPC's minimum block length (24 check bits per TS 38.212 §5.2.1 CRC rules) would impose excessive overhead. The rate-matching and interleaving procedures differ per channel type and are the practical implementation detail most often tested at interview.
DMRS Type 1 (TS 38.211 §7.4.1.1) places pilots on every other subcarrier (6 REs per PRB per OFDM symbol for one CDM group), supporting up to 4 orthogonal ports via frequency and time CDM. DMRS Type 2 (TS 38.211 §7.4.1.1.3) places pilots on pairs of adjacent subcarriers (4 REs per PRB per OFDM symbol per CDM group), using three CDM groups in a PRB to support up to 6 orthogonal ports — enabling MU-MIMO with more simultaneous layers. Higher DMRS density (configured via dmrs-AdditionalPosition in TS 38.331, adding 1–3 extra DMRS OFDM symbols per slot) reduces the pilot spacing in time, improving channel estimation under higher Doppler or UE speed, but at the cost of additional PDSCH overhead: a slot with two DMRS symbols loses approximately 6.7% RE capacity compared to a single-symbol configuration. For stationary or slow-moving UEs, single-symbol DMRS (Type 1 or 2) is preferred to maximise data capacity; for vehicular UEs (above 30 km/h at Sub-6 GHz) or high-Doppler environments, additional DMRS positions are required to prevent interpolation error across the slot.
Phase Tracking Reference Signal (PT-RS) is defined in TS 38.211 §7.4.1.2 (DL) and §6.4.1.7.3 (UL) and is designed to track and compensate for phase noise introduced by local oscillator impairments at millimetre-wave frequencies. Phase noise variance increases with oscillator frequency, making it a significant impairment above 24 GHz (FR2). PT-RS occupies a small number of REs — configured as a sparse grid (one RE per 2, 4, or 8 PRBs in frequency, and every symbol or every other symbol in time, per TS 38.211 Table 7.4.1.2.2-1) — and its density is adapted via RRC parameters ptrs-FrequencyDensity and ptrs-TimeDensity. PT-RS is only signalled when the MCS index exceeds a configured threshold (typically 20–27, corresponding to 64QAM or 256QAM) because phase noise is inconsequential at low modulation orders; enabling it at low MCS wastes REs without benefit. In FR1 deployments, PT-RS is typically not configured unless the UE or gNB uses a low-quality oscillator.
Sounding Reference Signal (SRS) antenna switching (TS 38.214 §6.2.1, TS 38.211 §6.4.1.4) enables a UE with fewer transmit RF chains than receive antennas to still provide the gNB with channel information on all antenna ports by time-multiplexing SRS transmissions across different UE antenna panels. In a 1T4R UE (one transmitter, four receivers), the UE cycles its single RF chain sequentially across all four antenna ports using the usage = antennaSwitching configuration (TS 38.331 SRS-Resource IE), transmitting one SRS burst per port on a configured periodicity. The gNB accumulates these successive SRS measurements to reconstruct the full uplink channel matrix and can then schedule UL MIMO, apply optimum beamforming weights, or select the best UL antenna for rank-1 transmission. Without SRS antenna switching, a 1T4R UE would only inform the gNB about one UL path, wasting the diversity gain from the four receive antennas. The limitation is latency: the channel must remain coherent across the switching period, so for fast-fading channels the switching period must be kept short relative to the channel coherence time.
F.2 Accessibility & RACH
Start by decomposing the failure counter mix per TS 28.552 §5.1.1.3: L.RA.Fail.MaxPreamble identifies coverage-limited UEs exhausting preambleTransMax; L.RA.Fail.Collision identifies contention failure at Msg4; L.RA.TimedOut identifies network-side congestion or timing window exhaustion. If L.RA.Fail.MaxPreamble dominates (>60% of failures), the root cause is uplink path loss: check SS-RSRP distribution and PRACH coverage margin — reduce preambleReceivedTargetPower by 3–6 dB or increase powerRampingStep from 2 to 4 dB per TS 38.321 §5.1.2. If L.RA.Fail.Collision dominates, the RACH occasion density is insufficient for the traffic load — increase the number of PRACH occasions per TS 38.213 §8.1 by reducing prach-ConfigurationIndex period or adding SSB-to-RO multiplexing factor. Cross-check that the RA success rate degradation is not correlated with a specific SSB index, which would indicate a beam alignment issue rather than a cell-wide RACH parameter problem.
4-step RACH (TS 38.321 §5.1.2) follows the Msg1 (preamble) → Msg2 (RAR) → Msg3 (RRC message) → Msg4 (contention resolution) sequence; the UE does not know its timing advance before Msg3. 2-step RACH (Rel-16, TS 38.321 §5.1.3) combines Msg1+Msg3 into MsgA and Msg2+Msg4 into MsgB, reducing the minimum RACH latency by one round-trip time (RTT) — approximately 2–5 ms. 2-step RACH is preferred for UEs in good coverage (high RSRP, high SINR) where the combined MsgA payload can be reliably decoded by the gNB in a single reception: if the gNB cannot decode MsgA, it falls back to a 4-step RA response via MsgB carrying a fallback indicator. 2-step RACH is particularly beneficial for small-packet IoT devices and handover-triggered RACH (contention-free) because the reduced latency directly translates to lower interruption time. The network configures the RSRP threshold above which a UE may attempt 2-step RACH via msgA-RSRP-Threshold in TS 38.331.
The UE computes its first preamble transmit power as P_PRACH = min(P_CMAX, preambleReceivedTargetPower + PL_estimate + delta_preamble) per TS 38.213 §7.4, where PL_estimate is derived from the SSB RSRP measurement. preambleReceivedTargetPower is the target received power at the gNB; setting it too low causes the gNB to miss preambles (increasing L.RA.Fail.MaxPreamble), setting it too high wastes UE power and increases inter-cell interference. A starting point is to set it 3 dB above the minimum PRACH detection threshold of the gNB receiver, which is typically around −120 dBm for a 60 kHz SCS system. powerRampingStep (TS 38.321 §5.1.2, valid values 0/2/4/6 dB) governs how much the UE increases power per failed attempt; 2 dB is standard for macro cells, 4 dB is aggressive and appropriate when the initial target power is conservative or for indoor cells with high path loss variance. Monitor L.RA.PreambleSent / L.RA.Att: a ratio greater than 1.5 indicates excessive ramping and the initial target power should be raised.
Contention resolution failure (reflected in L.RA.Fail.Collision per TS 28.552 §5.1.1.3.3) occurs when two or more UEs transmit the same preamble index in the same RACH occasion during a contention-based random access, and the gNB cannot distinguish between them in Msg4, causing the losing UE's contention resolution timer (ra-ContentionResolutionTimer, TS 38.321 §5.1.2) to expire. The primary fix is to reduce the probability of preamble collision by: (1) increasing the number of available preambles (numberOfRA-Preambles minus dedicated preambles) within the set of 64, (2) increasing RACH occasion density to reduce the probability that multiple UEs choose the same occasion, and (3) ensuring that dedicated preambles for handover are correctly reserved and do not reduce the contention set below 40 available sequences. A secondary check is whether ra-ContentionResolutionTimer is too short (e.g., 8 ms) for cells with high Msg4 scheduling latency; extending it to 40–64 ms absorbs gNB scheduling jitter without raising the failure rate.
PRACH preamble formats are defined in TS 38.211 §6.3.3 and TS 38.213 §8.1; the key parameter is the cyclic prefix length, which must exceed the round-trip propagation delay to prevent inter-symbol interference at the gNB. Format 0 (15 kHz SCS, long preamble, CP = 3168 Ts ≈ 103 µs) covers up to approximately 15.5 km. Format 1 (CP ≈ 684.7 µs) covers approximately 100 km. Short preamble formats A1–C2 (TS 38.211 Table 6.3.3.2-3) have CPs of only a few µs and are intended for small cells or FR2 where the propagation delay is negligible. For a macro cell with a radius of 3–5 km, Format 0 or Format 3 is appropriate. Selecting a short format (A1/B1) in a macro deployment will cause preambles from cell-edge UEs to wrap the cyclic prefix, resulting in incorrect TA estimation and elevated L.RA.Fail.MaxPreamble for those UEs — a subtle coverage issue that does not immediately appear in SS-RSRP maps.
L.RA.Fail.MaxPreamble tell you, and what are the likely causes?
L.RA.Fail.MaxPreamble (TS 28.552 §5.1.1.3.4) is incremented when a UE transmits preambleTransMax consecutive preambles without receiving a valid RAR (Msg2) within the ra-ResponseWindow. This counter isolates the subset of RACH failures caused specifically by the gNB not receiving or not processing the preamble — as opposed to contention failures which happen after Msg2. The primary causes are: (1) uplink coverage shortage — the UE has insufficient transmit power to reach the gNB even after full ramping (PL too high, blocked by building or terrain); (2) ra-ResponseWindow misconfiguration — the window is shorter than the scheduling latency in the gNB, causing the Msg2 to be dispatched after the UE has already timed out; (3) PRACH occasion congestion — the gNB's PRACH front-end is saturated and drops preambles silently (distinguish from case 1 by checking if L.RA.Fail.MaxPreamble is correlated with high L.RA.Att load); (4) incorrect SSB-to-RO mapping — a mis-configured msg1-SubcarrierSpacing or prach-ConfigurationIndex causes UEs to transmit on an occasion the gNB is not monitoring.
F.3 Mobility & Handover
The three HO failure categories are defined normatively in TS 38.331 §5.3.11.3 via the HO failure cause IE and in the mobility performance requirement context of TS 38.300 §9.2.4. Too-early handover: the UE is handed over to a target cell when the serving cell is still adequate; the UE subsequently re-establishes back to (or near) the source cell — identified by a short dwell time on the target followed by re-establishment. Too-late handover: the network delays the HO command until the serving cell quality has dropped below the T310 RLF threshold; the UE declares RLF before completing the procedure and re-establishes to the intended target cell or another cell — the most common cause of L.RRC.ReEstabAtt spikes. Wrong-cell handover: the UE is handed over to a cell that is neither the best server nor a reasonable candidate, causing immediate re-establishment — typically caused by missing neighbour relations (ANR gap) or a stale neighbour list. SON/ANR algorithms use these re-establishment patterns as the basis for automated HO parameter correction per TS 36.902 (applicable pattern referenced in TS 38.300 Annex A).
Event A3 triggers a measurement report when the neighbour RSRP exceeds the serving RSRP by more than (a3Offset + hysteresis) for a duration of timeToTrigger, as defined in TS 38.331 §5.5.4.4. Increasing a3Offset or hysteresis delays the HO trigger, reducing ping-pong but widening the gap during which the UE remains on a weaker serving cell. The optimum operating point balances L.HO.ExecFail.UE (too-late failures) against re-establishment rate caused by bounce-back HOs (too-early failures). A proven tuning strategy is: (1) derive the mean and standard deviation of the RSRP delta at the point of HO command issuance from measurement reports; (2) set a3Offset such that the 10th percentile RSRP delta at HO command ≥ 0 dB (the target cell is genuinely better); (3) set TTT between 160 ms and 320 ms for macro cells to filter shadow fading transients (coherence time ≈ 100–200 ms at 30 km/h, 2.6 GHz). Separate ping-pong from late-HO by checking whether re-establishments are to the source cell (ping-pong) or to a different cell (late HO).
Both HO variants are defined in TS 38.300 §9.2.3. In Xn-based HO, the source gNB sends a Handover Request directly to the target gNB over the Xn interface; the target pre-allocates resources, returns Handover Request Acknowledge with a transparent container, and the source includes this in the RRCReconfiguration command. The UE executes the HO, accesses the target, and the target then sends a Path Switch Request to the AMF/UPF over N2/N3 to redirect the downlink user-plane path. The critical delay is the path switch latency — in a well-tuned core, this is 10–30 ms, but until path switch completes, downlink data is forwarded from source to target via Xn data forwarding (TS 38.300 §9.2.3.2). N2-based HO (mandatory fallback when no Xn exists) routes all signalling via the AMF: source sends a Handover Required to AMF, which triggers a Handover Request to the target via N2; latency is typically 50–150 ms longer than Xn-based HO, making it unsuitable for time-sensitive mobility scenarios. The path switch timing gap directly determines the length of PDCP buffering required on the target to avoid data loss.
Conditional Handover is defined in TS 38.331 §5.3.4.4 (Rel-16) and solves the fundamental race condition in standard HO: between the gNB issuing a HO command and the UE executing it, the radio channel may have degraded below the execution threshold, causing HO failure. In CHO, the source gNB pre-configures one or more candidate target cells (with full RRCReconfiguration parameters) and associated trigger conditions (typically A3 or A5 events) in a conditionalReconfiguration IE. The UE stores these configurations and autonomously executes the HO to whichever candidate satisfies its trigger condition first, without waiting for a further HO command from the source. This eliminates the round-trip signalling delay (typically 10–30 ms) between report reception at the gNB and command arrival at the UE — a window during which SINR can collapse in high-mobility scenarios. CHO is particularly effective at cell edge in dense deployments and in high-speed rail scenarios where the standard TTT-report-command cycle regularly produces too-late failures.
Dual Active Protocol Stack (DAPS) handover is defined in TS 38.300 §9.2.3.3 and TS 38.331 §5.3.4.3 (Rel-16). In standard HO, the UE stops receiving from the source cell when the HO command is received, creating a data interruption until the target cell is accessed. DAPS eliminates this interruption: the UE maintains PDCP/RLC/MAC/PHY with the source cell during the entire HO preparation and execution phase, only releasing the source after successful synchronisation to and confirmation from the target. The UE transmits and receives on two sets of layers simultaneously — source and target — until the source is released by a DAPS HO release command or the UE's access to the target is confirmed. The RLC requirement is that all bearers subject to DAPS must use RLC-AM (acknowledged mode per TS 38.322), because in-sequence delivery across the HO boundary must be guaranteed by the PDCP re-ordering window; RLC-UM bearers are not supported for DAPS HO because packet loss during the switch cannot be recovered. The UE capability to support DAPS is signalled in daps-r16 under UE-NR-Capability (TS 38.331).
The distinction between preparation and execution failures uses counters defined in TS 28.552 §5.1.1.6. Preparation failure is indicated by L.HO.PrepFail.OutAtt being significantly larger than zero relative to L.HO.PrepSucc.OutAtt — this counter increments when the target gNB rejects the Handover Request (admission control) or when the Xn signalling times out. Execution failure is confirmed when L.HO.ExecFail.UE (UE failed to access target) is the dominant failure counter: L.HO.ExecFail.UE increments when the UE sends a HO failure message back to the source or when the source T304 timer expires without receiving a path switch acknowledgement. Likely causes of execution failure include: (1) the UE's link to the source has degraded before it can access the target (too-late HO — reduce TTT or a3Offset); (2) the target cell PRACH configuration is incompatible or overloaded (dedicated preamble allocation failure); (3) the UE is incapable of tuning to the target frequency within T304 (inter-band HO with slow RF switching UE). Cross-check with L.RRC.ReEstabAtt to confirm that execution failures are generating re-establishment attempts rather than silent drops.
Automatic Neighbour Relation function is defined for 5G NR in TS 38.300 §15 and draws on the SON framework of TS 36.902 (the 5G ANR normative text refers to the LTE ANR framework with NR adaptations). The UE discovers neighbours by decoding SSBs on non-serving cells during gap-less inter-frequency measurements or dedicated measurement gaps, reading the Physical Cell ID and, from the MIB/SIB1, the PLMN-ID and gNB identity. When the UE reports a cell-ID that does not exist in the source gNB neighbour list (NRT), the gNB flags it as a potential missing neighbour and, if the cell-ID can be resolved to a gNB via NG-RAN node identity procedures (TS 38.413), a new NR is created. Modification (e.g., adding X2/Xn interface address) occurs when the resolved target gNB's transport address changes. Deletion is triggered when the HO success rate via a specific NR falls below a configured threshold over a configured observation window, or when the neighbour is not reported by any UE for a configurable period — both are operator-configurable SON parameters rather than hard 3GPP values. The handshake for adding or removing a neighbour uses the Xn Setup or Xn Configuration Update procedures defined in TS 38.423.
The minimum counter set for classification is: L.HO.OutAtt (total outgoing HO attempts), L.HO.PrepSucc.OutAtt (preparation succeeded — Handover Request Acknowledge received), L.HO.PrepFail.OutAtt (preparation failed — no acknowledge or reject), L.HO.ExecSucc (execution succeeded — path switch complete), and L.HO.ExecFail.UE (UE failed to access target), all defined in TS 28.552 §5.1.1.6. The Handover Success Rate KPI per TS 28.554 §6.3 is L.HO.ExecSucc / L.HO.OutAtt. Preparation failure rate = L.HO.PrepFail.OutAtt / L.HO.OutAtt; execution failure rate = L.HO.ExecFail.UE / L.HO.PrepSucc.OutAtt. If preparation failure rate >5% the investigation path is: target cell admission (load, capacity), Xn connectivity (ping X2/Xn reachability), or misconfigured target cell identity in the NRT. If execution failure rate >5% with preparation succeeding, the investigation path is: coverage (T304 expiry due to source deterioration), UE capability (band switching speed), target PRACH configuration, or UE bug.
F.4 Throughput & Capacity
High PRB utilisation with low throughput means the scheduler is busy but inefficient. First check the MCS distribution: if the average DL MCS is below 10 (16QAM, code rate ≈ 0.4), the cell is coverage-limited and PRBs are being used to recover blocks via retransmission rather than to deliver data. Confirm with HARQ retransmission ratio counter L.PDSCH.HarqReTx.Ratio (TS 28.552 §5.1.3); a ratio above 15% indicates link quality is the bottleneck. Second, check rank distribution: if >80% of PDSCH transmissions are rank-1 (L.PDSCH.RankDist.Rank1), MIMO gain is absent — investigate antenna correlation, UE capability, or beam misconfiguration. Third, check whether PRB utilisation is driven by a small number of slow UEs hogging resources: a heavy-tailed UE distribution (a few UEs with sustained low MCS) can saturate PRB utilisation while aggregate throughput remains low — PF (Proportional Fair) scheduler tuning or maximum RB per UE caps resolve this. Finally, confirm DL interference: if SINR median is below 5 dB at 50% CDF, neighbour cell interference (excessive pilot or data power) is reducing the effective MCS ceiling.
Rank adaptation is part of the closed-loop MIMO control loop defined in TS 38.214 §5.2 (DL) and §6.1 (UL). The UE measures the downlink channel matrix H and reports a Rank Indicator (RI) alongside PMI and CQI in the CSI report (TS 38.214 §5.2.1). RI = 2 is reported when the channel's second singular value is strong enough that a dual-layer transmission yields higher mutual information than a single-layer at the estimated SINR — typically requiring SINR > 12–15 dB and low antenna correlation. RI falls to 1 when the channel becomes rank-deficient: either SINR drops below 10 dB (noise-limited), antenna correlation rises above 0.5 (e.g., UE in a pocket or near a reflecting surface), or the UE has only one receive RF chain active (antenna switching mode). The rank distribution counter is L.PDSCH.RankDist.RankN (TS 28.552 §5.1.3) for N = 1 to 8; in a healthy macro cell with mixed indoor/outdoor population, a rank-2 proportion of 40–60% is typical at 2.6 GHz with 2T2R UEs. A rank-1 proportion above 85% in a cell that is coverage-adequate (SS-RSRP > −100 dBm) indicates either a beamforming misconfiguration or an SRS measurement fault driving wrong precoder selection.
In closed-loop MIMO precoding (TS 38.214 §5.2.2.2), the gNB selects a precoder matrix W from the codebook (Type I or Type II, TS 38.214 Tables 5.2.2.2.1-1 through 5.2.2.2.6-1) based on PMI feedback reported by the UE from CSI-RS measurements; the precoder is then applied to the PDSCH layers before transmission. This achieves beam-steering gain aligned to the UE's current channel. In open-loop MIMO precoding, no PMI feedback is used: the gNB applies either a fixed precoder or cycles through a set of precoders (large-delay CDD in LTE; in NR the analogous mode is wideband precoder with no PMI, configured via codebookType = typeI-SinglePanel with ri-Restriction forcing RI = 1). Open-loop is used when the PMI feedback loop is too slow relative to channel variation (high Doppler, e.g., vehicular at 120 km/h) or when the UE's PMI reporting overhead is to be minimised (limited PUCCH resources). The tradeoff is that open-loop provides no beamforming gain in the precoder domain — it relies on transmit diversity (SFBC/FSTD equivalent in NR is TxD using two antenna ports) rather than coherent beam alignment.
Carrier Aggregation (CA) is defined in TS 38.331 §5.7.3 (configuration) and TS 38.321 §5.13 (MAC control for SCell activation/deactivation). Peak throughput scales approximately linearly with the number of component carriers: a UE aggregating a 100 MHz PCC and a 100 MHz SCC achieves up to twice the peak TBS relative to a single-carrier configuration, because the TBS computation per TS 38.214 §5.1.3.2 applies independently per CC and the PDCP layer concatenates the transport blocks. The SCell activation delay is specified in TS 38.321 §5.13.2: after the MAC CE SCell Activation command is received, the UE must complete the SCell activation procedure within sCellDeactivationTimer expiry plus the time for the SCell to acquire downlink synchronisation — the activation time is implementation-dependent but bounded by the UE capability parameter sCellActivationDelay which is reported in UE-NR-Capability. In practice, SCell activation for an FR1 SCell typically requires 20–30 ms from command to first PDSCH reception. Unnecessary SCell deactivation (aggressive deactivation timer settings) wastes this ramp-up time and degrades burst throughput; the deactivation timer should be tuned to the application's burst inter-arrival time distribution.
UL PUSCH power control is defined in TS 38.213 §7.1. The open-loop component sets the UE transmit power as: P_PUSCH = min(P_CMAX, P0 + 10·log10(M_RB) + α·PL + Δ_TF + f(i)), where P0 is a per-UE or per-cell target received power offset (dBm) signalled via RRC, α ∈ {0, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0} is the path loss compensation fraction, PL is the UE-estimated downlink path loss, MRB is the scheduled bandwidth, and Δ_TF accounts for modulation and coding. Setting α = 1.0 is full path loss compensation (all UEs arrive at the gNB with the same received power P0); setting α = 0.8 is fractional compensation — cell-edge UEs transmit at reduced power relative to full compensation, sacrificing SINR at the gNB but reducing interference to neighbouring cells. P0 sets the operating point: higher P0 increases all UE transmit powers, improving UL throughput at the cost of inter-cell interference. The closed-loop component f(i) accumulates TPC commands from the gNB (±1 dB or ±3 dB per TS 38.213 §7.1.1) to fine-tune power beyond what the open-loop can achieve. The optimum (α, P0) pair is network-specific and is tuned by maximising mean UL SINR while keeping the 5th-percentile UL SINR above a target (typically 0 dB for QPSK decodability).
Bandwidth Part (BWP) switching is defined in TS 38.331 §5.14 and TS 38.213 §12. A BWP is a contiguous set of PRBs within the carrier bandwidth; the UE may have up to four DL BWPs and four UL BWPs configured simultaneously but only one active DL BWP and one active UL BWP at a time. Switching is triggered by either a DCI field (DCI format 1_1 or 0_1, the bandwidth part indicator field per TS 38.212 §7.3.1.1.2) or by the bwp-InactivityTimer expiry (UE returns to the default BWP after the timer elapses without a scheduling grant). The primary use case for switching to a narrower BWP is power saving: a 20 MHz BWP requires the UE RF and baseband to monitor the full carrier bandwidth, consuming significantly more UE battery power than a 10 MHz or even 5 MHz BWP. When a UE has no active traffic (idle-like state in RRC_CONNECTED), the gNB allows the inactivity timer to expire, returning the UE to a narrow default BWP; upon new data arrival, a wider BWP is activated via DCI to restore full throughput. A second use case is FR2 beam management: a narrow BWP aligned to the serving beam allows faster PDCCH blind decoding while conserving UE processing resources between beam sweeps.
F.5 Quick Reference Tables
The tables below condense the most frequently tested interview topics. Table F.5-0 lists the critical RRC/MAC timers and parameters most often asked in interview. Table F.5-1 maps interview topics to the primary TS clause and key formula. Table F.5-2 maps counters to diagnostic questions. Table F.5-3 maps symptoms to probable root causes and first-check actions.
Table F.5-0: Critical Timers & Parameters — TS Reference Card
| Parameter / Timer | TS Clause | Typical Value | What it controls and interview tip |
|---|---|---|---|
| T310 | TS 38.331 §5.3.10 | 500 ms – 2 s (macro) | RLF declaration timeout after N310 out-of-sync indications. Too short → false RLF during BFR or deep fades. Too long → UE holds dead context. Key interview link: T310 must exceed BFR duration (typ. 20–50 ms). |
| T304 | TS 38.331 §5.3.5 | 150 ms – 2 s | HO execution timer. Starts when UE receives RRCReconfiguration with mobilityControlInfo. Expiry → HO failure → RRC Re-establishment. Set longer for inter-frequency or inter-band HO where RF retuning adds latency. |
| N310 / N311 | TS 38.331 §5.3.10 | N310 = 6 – 20; N311 = 1 – 10 | N310: consecutive out-of-sync L1 indications to start T310. N311: consecutive in-sync to cancel T310. Higher N310 filters transient fades but delays RLF declaration. Higher N311 requires longer sustained recovery to cancel T310. |
| timeToTrigger | TS 38.331 §5.5.4 / §5.5.2.6 | 160 ms – 320 ms (macro) | Duration a measurement report condition (e.g., A3) must be satisfied before the gNB triggers HO. Increase to filter fast fades (reduces ping-pong); decrease to reduce too-late HO. Shadow fading coherence at 30 km/h ≈ 100–200 ms. |
| ra-ResponseWindow | TS 38.321 §5.1.2 | 10 – 80 ms (values: sl1 to sl80) | RAR (Msg2) monitoring window after preamble transmission. Must exceed gNB Msg2 scheduling latency. Too short → UE misses valid RAR, increments L.RA.Fail.MaxPreamble incorrectly. Extend if gNB scheduling latency exceeds 20 ms. |
| ra-ContentionResolutionTimer | TS 38.321 §5.1.2 | 40 – 64 ms | Contention resolution (Msg4) monitoring window after Msg3 transmission. Expiry before successful Msg4 increments L.RA.Fail.Collision even when there is no real collision — pure scheduling delay. Extend if gNB Msg4 scheduling jitter is high. |
| sCellDeactivationTimer | TS 38.321 §5.13.2 | 160 ms – 2560 ms | Inactivity timer before MAC deactivates an SCell. Short value → frequent CA setup overhead for bursty traffic. Long value → UE unnecessarily monitors an idle SCell, increasing battery drain. Tune to traffic burst inter-arrival time. |
| powerRampingStep | TS 38.321 §5.1.2 | 2 dB (macro), 4 dB (small cell) | Power increase per failed preamble attempt. Set 2 dB for predictable macro path loss; set 4 dB when initial target power is conservative or for cells with high path loss variance. Monitor L.RA.PreambleSent/L.RA.Att ratio as a tuning signal. |
Table F.5-1: Topic → TS Clause → Key Formula
| Interview Topic | Primary TS Clause | Key Formula or Procedure |
|---|---|---|
| PDSCH TBS computation | TS 38.214 §5.1.3.2 | Ninfo = NRE × R × Qm × ν; then quantise to nearest TBS table entry per §5.1.3.2 step 3 |
| PRACH preamble transmit power | TS 38.213 §7.4 (PRACH), TS 38.321 §5.1.2 | PPRACH = min(PCMAX, preambleReceivedTargetPower + PL + DELTA_PREAMBLE + (attempt − 1) × powerRampingStep) |
| PUSCH open-loop power | TS 38.213 §7.1.1 | PPUSCH = min(PCMAX, P0 + 10·log10(MRB) + α·PL + ΔTF + f(i)) |
| A3 Event trigger condition | TS 38.331 §5.5.4.4 | Mn + Ofn + Ocn − Hys > Ms + Ofs + Ocs + Off; maintained for timeToTrigger duration |
| RLF declaration | TS 38.331 §5.3.10 | N310 consecutive out-of-sync → start T310 → if T310 expires before N311 in-sync → RLF → RRC Re-establishment |
| SS-RSRP measurement | TS 38.215 §5.1.1 | Linear average power per RE carrying SS (PSS/SSS) over measurement bandwidth; reported in dBm with 0.5 dB resolution |
| CSI reporting (Type I) | TS 38.214 §5.2.1.4 | UE reports {CRI, RI, PMI (wideband + subband), CQI} per configured CSI report setting; PMI indexes codebook W = W1 × W2 |
| HARQ process timing | TS 38.213 §9.3, TS 38.321 §5.4.2 | K1 (HARQ-ACK offset) and K2 (PUSCH scheduling offset) defined in DCI and configured in PDSCH-Config; minimum RTT = 8 slots at 30 kHz SCS |
| LDPC base graph selection | TS 38.212 §5.2.2 | BG1 if TBS > 3824 bits or code rate > 0.67; BG2 otherwise. Lifting factor Z selected as smallest value ≥ ceil(TBS / 22) from set {2,3,4,…,384} |
| SCell activation delay | TS 38.321 §5.13.2 | After MAC CE SCell Activation reception, UE activates SCell; actual activation time bounded by sCellActivationDelay UE capability (typically 20–30 ms for FR1) |
Table F.5-2: Counter → What It Tells You → First Diagnostic Question
| Counter (TS 28.552) | What It Tells You | First Diagnostic Question |
|---|---|---|
L.RA.Fail.MaxPreamble (§5.1.1.3.4) |
UEs exhausted preamble retransmissions without a valid RAR — persistent UL coverage gap or RACH window misconfiguration | Is this failure correlated with a specific SSB beam index (beam coverage gap) or distributed across all SSBs (cell-wide UL coverage shortage)? |
L.RRC.ConnEstabFail.Others (§5.1.2.4) |
RRC Setup failures not attributable to radio causes — typically gNB-side resource exhaustion or Ng-C congestion | Is the cell at maximum RRC connected UE count (check RRC connected user gauge) or is the N2 signalling link congested? |
L.RRC.ReEstabAtt (§5.1.2.7) |
Re-establishment attempts — primary indicator of RLF events from either too-late HO, coverage holes, or interference spikes | What is the re-establishment target cell — is it the same cell (BFR recovery counted here too) or a neighbour (HO failure)? |
L.HO.ExecFail.UE (§5.1.1.6) |
UE failed to access target cell during HO execution — T304 timer expired at source without receiving path switch complete | Did preparation succeed (check L.HO.PrepSucc.OutAtt)? If yes, execution-specific problem: check target PRACH load and source coverage at time of HO command. |
L.PDCP.SduBitrateDl.QCI (§5.1.4) |
DL throughput at PDCP layer for a given QFI/QCI — gold standard user throughput KPI removing overhead from physical-layer metrics | Is the throughput consistently low (chronic issue — coverage/MIMO) or bursty (scheduling starvation — check PRB utilisation and MCS at the same time)? |
L.PDSCH.HarqReTx.Ratio (§5.1.3) |
Fraction of PDSCH TTIs that are HARQ retransmissions — proxy for link quality mismatch between CQI estimate and actual channel | Is the HARQ retx ratio above 15%? If yes, check whether CQI reporting delay or CQI estimation error is causing the LA to over-shoot MCS. |
L.UL.PDCP.PacketLoss.QCI (§5.2) |
UL PDCP packet loss rate — indicates UL coverage shortage, UL interference, or RLC-AM retransmission budget exhaustion | Is UL RSSI elevated (check UL SINR distribution) suggesting UL interference from adjacent cell or PIM? Or is UL path loss excessive (UE power limited)? |
Table F.5-3: Symptom → Most Likely Cause → First Check
| Observed Symptom | Most Likely Cause | First Check (counter or parameter) |
|---|---|---|
RACH Success Rate < 90% with L.RA.Fail.MaxPreamble dominant |
UL coverage shortage or preambleReceivedTargetPower set too low | Plot SS-RSRP CDF and check 5th percentile against minimum PRACH detection threshold; verify powerRampingStep ≥ 2 dB (TS 38.321 §5.1.2) |
| HO Success Rate < 95% with preparation success > 98% | Too-late HO — source link deteriorates between HO decision and UE execution | Reduce timeToTrigger (TS 38.331) from 320 ms to 160 ms; check A3 trigger threshold is not set too high relative to RSRP delta at execution |
| High PRB utilisation (>90%) with low user throughput | Low MCS due to poor coverage, or high HARQ retransmission rate, or single-user domination | Check MCS distribution and HARQ retx ratio (TS 28.552 §5.1.3); if MCS < 10 dominates, investigate coverage; if retx > 15%, investigate CQI estimation lag |
| Rank-1 proportion > 90% in a coverage-adequate cell | High antenna port correlation or SRS measurement failure preventing correct PMI/RI reporting | Check CSI-RS and SRS configuration (TS 38.214 §5.2 / §6.2); verify antenna cross-polarisation is correctly configured and UE reports RI = 2 capability |
Elevated L.RRC.ReEstabAtt correlated with cell-edge UEs |
Coverage hole causing RLF, or T310 too short allowing premature RLF declaration | Check T310 value (TS 38.331 — should be ≥ 500 ms for macro); verify BFR configuration (TS 38.331 §5.3.14) is active to recover beam failures before RLF |
| VoNR MOS degradation during high load | QoS scheduling starvation — GBR bearer not receiving minimum PRB allocation | Check QoS flow PRB allocation for GBR bearers (QFI 1–4); verify gbrQosFlowInfo is correctly signalled in PDU session establishment (TS 23.501 §5.7) |
| SCell frequently deactivating with sCellDeactivationTimer expiry | Timer too short for application burst inter-arrival time — unnecessary CA setup overhead | Extend sCellDeactivationTimer to 1280–2560 ms (TS 38.321 §5.13.2) for video-streaming traffic profiles; monitor SCell activation rate before and after change |
L.RA.Fail.Collision > 20% of RACH failures |
Insufficient RACH occasions or preamble pool too small for the access load | Review prach-ConfigurationIndex (TS 38.211 Table 6.3.3.2-2) to increase RACH occasion density; verify dedicated preambles for HO do not reduce contention set below 48 (TS 38.321 §5.1.1) |
Senior RF engineer interviews consistently test three competencies simultaneously: (1) spec literacy — can you name the correct TS clause without looking it up; (2) counter fluency — can you map a KPI degradation to the specific PM counter that confirms or refutes a hypothesis; (3) first-principles reasoning — can you derive why a parameter affects performance rather than just reciting a recommended value. The questions in this appendix are designed to require all three. Practise answering out loud with a timer — the ideal answer to each question is 90–120 seconds, which maps to the 3–6 sentence written answers here. Any shorter and you will appear to lack depth; any longer and you will appear unable to prioritise.