The design insight of Families 5390/5391: nearly every release counter has a _WithNormalCause twin. So the abnormal mass needs no cause guessing — subtract the twin from its counter and sum. The deck's KPI list and case-study thresholds complete the picture:
| KPI / evidence counter | Formula / meaning | Threshold (deck) |
|---|---|---|
| Abnormal DRB Release Rate (family design) | Σ(Rel-counter − its _WithNormalCause twin) ÷ DrbRelTotal × 100 over Family 5390 | trend per cell |
| Abnormal UE Context Release Rate | Same subtraction over Family 5391 ÷ UeContextRelTotal | trend per cell |
| Call Drop Rate (CDR) | "Percentage of total calls that end abnormally before completion" (deck KPI list) | — |
| RLF Rate · RlfCount | "Number of Radio Link Failures recorded" | <100 / hour |
| OutOfSyncCount | "Number of Out-of-Sync occurrences before RLF" | <20 / hour |
| BLERof1stTxTrial_DL | BLER of the first DL HARQ transmission — link-quality evidence | <10% (5–10% warn) |
| NrofResidualError_DL | "HARQ transmission failures after max attempts" — the packet-loss endgame | trend |
| Rescue quality (5203) | ReEstabRreSucc ÷ ReEstabAtt (context kept) vs ReEstabRrcSetupSucc ÷ ReEstabAtt (fallback) | maximize RRE share |
DrbRelbyAmf_UeContextRelCmd counts all AMF-commanded context releases; its _WithNormalCause twin counts the polite ones. The difference is the AMF ending sessions abnormally — a number no single 3GPP counter gives you. Same for byGnb, for the HO variants (_IntraNrHo/_InterRatHo), for PDU-session releases. Learn the subtraction once, apply it 20 times.The link degrades → RLF (RlfCount, T310/N310 machine) → the UE attempts re-establishment. Family 5203 splits the rescue in two: RRE (the gNB finds the UE context — session continues untouched) or fallback to RRC Setup (context not found/verified — the RRC connection is saved but the session is rebuilt). Only when both fail does the release book into 5390/5391 with its 5100 cause.
Three grammars cover all four families:
| Pattern | Meaning | First place to look |
|---|---|---|
<Drb|Ue>Relby<Initiator>_<Procedure> (5390/5391) | Who ended it and with which message: byAmf_UeContextRelCmd / PduSessionRelCmd / NgReset · byGnb_UeContextRelReq / NgcLinkFail · byIntraGnbHandover / InterGnbXnHandover · byIntraGnbRRE / InterGnbRRE · by*Redirection · byPreemption · byOnDemandForcedMobility_* | The initiator names the team: AMF=core, Gnb=RAN, HO/RRE/Redirection=mobility bookkeeping, Preemption=policy |
…_WithNormalCause | The polite twin — subtract to get the abnormal mass | abnormal = counter − twin |
<Intra|Inter>GnbReEstab<Rre|RrcSetup><Att|Succ> + Fail_<E1|F1|Ng|Cp><Timeout|Fail> (5203) | The two-path rescue with per-interface failure causes; Fail_Ignore = request ignored | The failing interface names the fix: E1=CU-UP, F1=DU, Ng=AMF, Cp=CU-CP internal |
CauseInternal* / CauseF1ap<Radio|Transport|Protocol|Misc>* / CauseNgap* / CauseX2ap* (5100) | The CSL cause ledger: internal timeouts (TmOutF1UeContextSetup, TmOutE1BearerSetup…), SCTP out-of-service per interface, CAC (CacCallCountOver), ops (OMIntervention, VmScaleIn, CellRelease), plus every protocol cause verbatim (e.g. CauseF1apRadioRLFailure = "RL failure caused by, for example, exceeding the maximum number of ARQ retransmissions") | The cause prefix names the interface; the suffix names the layer |
UeRelbyGnb_UeContextRelReq), 5390 says how many bearers died with it, 5100 says the exact cause (e.g. CauseInternalTmOutF1UeContextModification). Join the three and "drops are up" becomes "the DU stopped answering Context Modification on cell X".The family (verbatim): "statistics for the release of DRBs that have been set up." Grouped by initiator; the abnormal-focus rows in bold intent:
| Group | Counters | Read it as |
|---|---|---|
| Total | DrbRelTotal | The denominator of every DRB-release ratio |
| By AMF | DrbRelbyAmf_PduSessionModifyReq / _PduSessionRelCmd / _UeContextRelCmd (+ _WithNormalCause twins) · _UeContextRelCmd_IntraNrHo / _InterRatHo (+ twins) · _PathSwitch / _NgReset | Core-commanded releases — subtract the twins for the abnormal AMF mass; NgReset = a core event, mass releases at once |
| By gNB | DrbRelbyGnb_UeContextRelReq (+ twin) · _NgReset / _NgcLinkFail | RAN-requested — the abnormal part is the radio-drop mass; NgcLinkFail = NG link died, transport story |
| Mobility bookkeeping | DrbRelbyIntraGnbHandover / InterGnbXnHandover / IntraGnbRRE / InterGnbRRE / IntraRatRedirection / InterRatRedirection | Releases that are part of a move — usually healthy; count them out of the drop mass but watch redirections (a redirection is a downgrade) |
| Policy | DrbRelbyPreemption | ARP preemption — DU twins: Families 5149/5150 (released call/DRB count for preemption) |
| Forced mobility | DrbRelbyOnDemandForcedMobility_<IntraGnbHandover|InterGnbXnHandover|InterGnbNgHandover|InterRatHandoverToEutran|IntraRatRedirection|InterRatRedirection|CallRelease> | The network pushed the UE (load/steering) — 7 variants; _CallRelease is the harshest outcome of a steer |
CauseF1apRadioRLFailure + RLF evidence. byAmf-abnormal high = core-initiated → NGAP causes with the 5GC team. Redirection growing = coverage forcing downgrades — an RF roadmap item. OnDemandForcedMobility_CallRelease > 0 = your steering policy is killing sessions: revisit the steer thresholds before anything else.Same grammar, one level up: the whole UE goes, not just a bearer. UeContextRelTotal, the by-AMF / by-gNB splits with twins, the mobility set, preemption and the 7 forced-mobility variants. The DRB:UE-context ratio is itself diagnostic — many DRB releases per UE release = sessions dying while UEs stay (PDU-session problem); 1:1 tracking = whole-UE losses (radio/context problem).
| Counter | Initiator | Abnormal meaning after twin-subtraction |
|---|---|---|
| UeRelbyGnb_UeContextRelReq − …_WithNormalCause | gNB | The RAN asked the AMF to release abnormally — radio loss, internal failure (cause in 5100) |
| UeRelbyAmf_UeContextRelCmd − …_WithNormalCause | AMF | The core commanded an abnormal release — NGAP cause decode with the 5GC team |
| UeRelbyGnb_NgcLinkFail / _NgReset · UeRelbyAmf_NgReset | transport/core | NG link/reset events — mass, timestamp-correlated, not per-UE radio |
| UeRelbyPreemption | policy | ARP preemption at UE level — check victim selection policy |
| UeRelbyOnDemandForcedMobility_CallRelease | steering | A steer that ended in release — policy misfire |
The family (verbatim): "statistics for the number of RRC connection re-establishments with the UE in RRC connected state (3GPP TS 38.331)" — split Intra-gNB vs Inter-gNB, and inside each: the RRE path (context found — the session continues) vs the RRC-Setup fallback (context not usable — RRC saved, session rebuilt), plus per-interface failure causes.
| Counter set | Path | Meaning |
|---|---|---|
| IntraGnbReEstabAtt / InterGnbReEstabAtt | entry | Re-establishment requests, split by whether the UE returned to the same gNB |
| …ReEstabRreAtt / …ReEstabRreSucc | RRE | True re-establishment — UE context found & verified, session survives untouched |
| …ReEstabRrcSetupAtt / …ReEstabRrcSetupSucc | fallback | Fallback to RRC Setup — the RRC connection is saved but the session is rebuilt (PDU re-setup) |
| …ReEstabFail_E1Timeout / _E1Fail | fail | Timeout/failure waiting for an E1 message from the CU-UP (deck-verbatim) |
| …ReEstabFail_F1Timeout / _F1Fail | fail | Timeout/failure waiting for an F1 message from the DU |
| …ReEstabFail_NgFail | fail | UE CONTEXT RELEASE COMMAND from the AMF killed the rescue (deck-verbatim) |
| …ReEstabFail_CpFail | fail | Internal processing error, e.g. Cell Release (deck-verbatim) |
| …ReEstabFail_RreTimeout / _RrcSetupTimeout | fail | The UE never completed the chosen path — RRCSetupComplete/ReestablishmentComplete timeout |
| …ReEstabFail_Ignore | fail | The request was ignored — deck case study 4's headline counter |
| Symptom | Diagnosis | Deck recommendation |
|---|---|---|
| High fallback share (RrcSetup ≫ RRE) | Contexts not found/verified at the target | xn-status-transfer-enhancement-on-off = On ("faster transfer of UE context between gNBs", verbatim); "maintain context for min. 5 s after link failure"; context retrieval via NGAP or XnAP |
Fail_RrcSetupTimeout | UE failing to complete — weak signal / missing messages | rrc-reestablish timer 500 → 750 ms for urban (deck-verbatim); check N310/N311 expiry pattern |
Fail_E1Timeout / Fail_F1Timeout | E1/F1 interface connectivity | Check E1 routing (CU-CP↔CU-UP) / F1 midhaul; deck: t1-DUSetupWait 3 s, t1-UEContextRelease 2 s — increase if necessary |
Fail_Ignore high + T311 expiries | UE can't find a suitable cell in time | Case 4 tuning: T301 50→100 ms · T311 3000→5000 ms · rrc-reestablish attempts 3→5; enable-fast-recovery-rre (recovery timer 150 ms, max 3 attempts — deck values) |
Every call release gets exactly one cause in the CU-CP Call Summary Log family. The internal set covers the gNB's own timeouts and platform events; four protocol sets (CauseF1ap*/CauseNgap*/CauseX2ap*/CauseE1ap*) mirror the 3GPP cause values verbatim. Extraction (deck): retrieve-ue-count-information, then Performance Statistics → Call Summary Log; high abnormal CRR → investigate RLF or congestion.
| Counter | Domain | Verbatim meaning |
|---|---|---|
| CauseInternalTmOutRrcConnectionReconfig | Air · UE | No response from the UE for an RRC Connection Reconfiguration — the SA twin of LTE's biggest mobility drop |
| CauseInternalTmOutF1UeContextSetup / …Modification / …Release | DU · F1 | No response for the F1AP UE Context procedure — the DU went quiet |
| CauseInternalTmOutE1BearerSetup / …ContextModification | CU-UP · E1 | No response for the E1AP bearer procedure |
| CauseInternalF1SctpOutOfService / E1… / X2… | transport | The interface's SCTP association left service — mass releases, one timestamp |
| CauseInternalCacCallCountOver | admission | Released because of the CAC call limit |
| CauseInternalResourceAllocFail / CallAllocationFail / UpAllocationFail | CU-CP | Resource / call / CU-UP allocation failure inside the gNB |
| CauseInternalOMIntervention / VmScaleIn / CellRelease | ops | Lock/reset, VM scale-in, cell release — deliberate platform events, exclude from tuning baselines |
| CauseInternalUserInactivity | policy | UserInactivitySignaling timer expiry — the healthy end |
| CauseF1apRadioRLFailure | Air · DU | "RL failure caused by, for example, exceeding the maximum number of ARQ retransmissions" — the radio-drop cause on F1 |
RlfCount/OutOfSyncCount (RLF), BLERof1st/2nd/3rdTxTrial_DL/UL + NrofResidualError_DL/UL (HARQ endgame), CacFail_AcpfCallCount/GnbCallCount/CellCallCount/QosBasedCount (admission pressure), PRB utilization (congestion). Deck bands: BLER normal <5% · warn 5–10% · critical >10%.The deck closes with four worked cases. Pick one: the observed counters, the thresholds they broke, the exact parameter moves and the verification messages — all deck-verbatim, all in one card.
Enter the busy-hour counters; the studio runs the twin-subtraction, splits the rescue by path, grades the evidence set against the deck thresholds and routes you to the dominant loss.
Every release/rescue counter routed from its root-cause domain to the family where it books. Click a domain, a ledger, a scenario, or any counter chip for its optimization card.
The deck's feature classification, ordered by role. Click any node for its card.
Every table from the deck's optimization chapters, consolidated. Recommended values are the deck's own; RTRV the live MO before moving anything.
| Parameter | Recommended (deck) | Function (verbatim) | Impact on drop rate (verbatim) |
|---|---|---|---|
| t310 | 2000 ms | Time duration before RLF is declared | Extends time before connection fails |
| n310 | 2 | Counter for out-of-sync detection | Adds tolerance for temporary signal loss |
| n311 | 2 | Counter for in-sync detection | Helps recovery from signal issues |
| t304 | 2000 ms | Handover timeout timer | Gives more time for successful handovers |
| t311 | 30000 ms | RLF recovery timer | More time for UE to reestablish connection |
| pusch-no-ack-count-threshold / pusch-ack-count-threshold | release default | Consecutive PUSCH No-ACK / ACK thresholds for declaring RLF / in-sync (deck RLF counter table) | UL-side RLF sensitivity |
| Parameter | Recommended | Function (verbatim) |
|---|---|---|
| dl-target-bler | 8% | Adjusts DL BLER threshold to maintain <10% |
| ul-target-bler | 10% | Adjusts UL BLER threshold for better link adaptation |
| max-num-harq-transmission-dl | 4 (→6 cell-edge) | Limits HARQ retransmissions; cell-edge scenario raises to 6 (both DL and UL) |
| num-dl-harq-process | 16 | Configures number of HARQ processes per cell |
| dl-harq-symbol-adjust-switch-on-dtx | TRUE | Reduces residual BLER from DCI missing |
| max-mcs-dl / max-mcs-ul | 28→25–27 / 26→23–25 | Reduce MCS order when BLER is high (deck HARQ troubleshooting) |
| Parameter | Recommended | Function |
|---|---|---|
| gnb-timer-poll-retransmit / ue-timer-poll-retransmit | 90 ms / 90 ms | Poll retransmission timers |
| adaptive-rlc-poll-retx-dl-enable + adaptive-first/second/last-rlc-poll-timer | ON · 90/180/350 ms | Adaptive poll retransmission ladder |
| gnb-t-reassembly / ue-t-reassembly | 80 ms / 80 ms | RLC PDU reassembly timers |
| gnb-timer-status-prohibit / ue-timer-status-prohibit | 100 ms / 100 ms | Prevents STATUS PDU flooding |
| gnb-max-retransmission-threshold / ue-max-retransmission-threshold | 8 / 8 | Maximum retransmissions |
| gnb-poll-pdu / gnb-poll-byte (+ ue twins) | 32 / 50,000 | Polling triggers (PDUs / bytes) |
| Scenario | The deck's parameter moves |
|---|---|
| Urban high-density congestion | max-call-count +15% · reserved-call-count 15–20% of max · threshold-for-normal-call 85→75% · slice-cac-usage Enabled · slice-group-0-portion 40% (voice) · max-drb-count +10% · priority-level-for-5qi = 1 for VoNR |
| Cell-edge coverage | t310 1000→2000 ms · n310/n311 1→2 · p0-nominal-with-grant −76→−70 dBm · alpha-pusch 0.8→1.0 · power-ramping-step 2→4 dB · max-num-harq-transmission-dl/ul 4→6 · p-max-usage Enabled |
| High-speed mobility | t304 →2000 ms · en-dc-ul-radio-link-outage-* (NSA page) · time-alignment-timer +50% · time-to-trigger 480→160 ms · handover-margin-nr 3→1–2 dB (dense) |
| VoNR quality | slot-aggregation-for-vonr Enabled · slot-aggregation-max-retx 1→3 · priority-level-for-5qi 1 for voice · packet-delay-budget-for-5qi 100 ms · vonr-codec-adaptation-enable Enabled · ul-vonr-target-bler 10→5% |
| Indoor penetration | preamble-receiver-target-power →−90 dBm · preamble-trans-max 7→10 · power-ramping-step 2→4 dB · t310 →2000 ms · ssb-power-boosting-level → max · review emf-control-enable |
| PRB congestion | max-rb-restriction-dl 75% · congestion-based-mcs-decision-mode ON · dl-heavy-bo-ue-preoccupation-enable ON · pdsch-time-domain-resource-allocation-list-reduction ON · dynamic PRB allocation |
Baseline — pull the four families + evidence
Busy hour: 5390/5391 (with twins), 5203 (both paths), 5100 causes, plus RlfCount, OutOfSyncCount, BLER/HARQ set, CacFail_*. Deck extraction: retrieve-ue-count-information + Call Summary Log.
Run the twin-subtraction
Abnormal = counter − _WithNormalCause twin, per initiator. Mobility bookkeeping (byHandover/byRRE) and ops causes (OMIntervention/VmScaleIn/CellRelease) leave the drop mass.
Split by initiator — gNB vs AMF vs policy
byGnb-abnormal = radio/DU (go to 5100's F1ap-radio + RLF evidence) · byAmf-abnormal = core (NGAP causes, 5GC team) · Preemption/ForcedMobility = policy review.
initiator = team If wrong: RAN tunes timers for an AMF-side release wave.Grade the rescue — RRE share first
RRE÷Att (context kept), fallback÷Att (session rebuilt), fail split by interface. High fallback = Xn/context problem (xn-status-transfer-enhancement); fails name their interface (E1/F1/Ng/Cp).
Pair cause with physics
5100 cause × evidence: RLFailure+BLER>10% = link adaptation/coverage · TmOut*+clean BLER = interface/processing · CacCallCountOver+PRB>85% = congestion pack · SCTP-OOS = transport timestamp event.
Apply ONE scenario pack lever
Pick from the deck packs (cell-edge, congestion, high-speed, VoNR, indoor, PRB) — the one matching the diagnosis — and move its levers one soak at a time.
deck scenario packs, one lever per soak If wrong: pack-mixing = unattributable results.Verify — 3GPP messages + guards
Deck verification set: RRCConnectionReconfiguration (HO triggering), UEContextReleaseRequest (cause: Radio Link Failure — T310 expiry?), RRCConnectionReestablishmentRequest (correct cause), UEContextModificationRequest. Guards: RRE share, accessibility chain, 5149/5150 preemption.
SA retainability is a subtraction, a two-path rescue, and a cause ledger.
Abnormal = total − normal twins. Rescue = RRE before fallback. Cause = the 5100 ledger naming interface and layer. Master the three moves and every SA drop investigation is mechanical. Compare with LTE's three ledgers and NSA's dual ledger to complete Day 2.3.
Sources: Samsung 5G NR Counter Description (CU-CP ACPF + DU — Families 5390 SETUP_DRB_RELEASE, 5391 SETUP_UECONTEXT_RELEASE, 5203 RRC_REESTAB, 5216 RRC_RELEASE, 5100 CUCPCSL_PER_GNB, 5149/5150 preemption, 5220 — counter names and descriptions verbatim, via the operator NR KPI workbook) · 5G NR Retainability Optimization SA deck (KPI list, RLF/HARQ/BLER/CAC counter tables, RRC re-establishment troubleshooting, RLC/BLER/scenario parameter tables, the four case studies — all values verbatim) · 5G RAN Feature Description SVR25B (FGR feature codes). Procedures per 3GPP TS 38.331 / 38.413 / 38.473. Deck thresholds are the deck's own recommendations; counters and families are vendor-exact.