| KPI | Formula (Samsung counters) | Read it as |
|---|---|---|
| Intra-SN PSCell Change SR | EndcIntraChgSucc ÷ EndcIntraChgAtt × 100 (Fam 5109) | NR-leg moves inside one SgNB — beam/cell change, no X2 SgNB change |
| Inter-SN PSCell Change SR | EndcInterChgSrcSucc ÷ EndcInterChgSrcAtt × 100 (Fam 5110, source view) | The NR leg moves to a different SgNB — the heavy procedure |
| Anchor EN-DC HO SR | (IntraEnbSucc + InterX2OutSucc + InterS1OutSucc) ÷ (…Att) over Fams 748/749/750 | The LTE composite, recounted for EN-DC-capable UEs only |
| SgNB survival at anchor HO | EndcRelByMenbMcgMobUeCtxInd (5092) ÷ EndcRelByMenbMcgMob (5113) | How often the NR context survives the anchor move (context-kept path) |
| Add-back SR after MCG HO | EndcAddLteHoNoSgnbChgSucc ÷ …Att (5090) · EndcAddMnHoIntra/InterEnbSucc ÷ …Att (5095/5096) | The leg returning after the anchor moved |
| Refusal pressure | FRChgRefuse_VolteConf + FRChgRefuse_RLO (Fam 906) vs change attempts | PSCell changes the policy refused — deliberate, but count them |
_MenbFail).| Token | Meaning | First place to look |
|---|---|---|
EndcIntraChg* / EndcInterChgSrc* | PSCell change inside one SgNB / across SgNBs (source view) | Intra healthy + inter failing = the X2/SgNB-to-SgNB path, not radio |
…PrepFail_ / …Fail_ | The same prep/exec split as every Samsung HO family | Prep = target resources/anchor · Exec = UE/air/guard timer |
_MenbFail | The anchor failed the procedure — unique to NSA | The LTE ledger (748-753, X2 health) — an NR symptom with an LTE cause |
_UpTimeout/_UpFail · _DuTimeout/_DuFail | CU-UP / DU didn't deliver during the change | Same E1/F1 treatment as the SA pages |
_Tdcoverall | The EN-DC overall guard timer expired mid-procedure | X2 latency; raise Tdcoverall only on counted evidence |
_RrcTo | The UE never confirmed on the NR side | New PSCell coverage/beam — trigger placement |
FRChgRefuse_* / FRChgRelease_* (906) | PSCell change refused (kept old) / released (leg dropped) by policy: VolteConf (voice active) or RLO (UL radio-link outage) | Policy intent + the retainability page's UL-outage levers |
EndcAdd<path>* (5090/5095/5096) | SgNB addition because of an LTE HO — no-SgNB-change / intra-eNB / inter-eNB paths | Add-back failing = EN-DC users lose 5G at every anchor move |
_MenbFail appearing in the NR families is the cross-ledger arrow: the SgNB says "the anchor broke it". Correlate with the LTE ENDC-HO twins (748-753) and X2 health (943/944 link-time families) — a PSCell-change "problem" is frequently an anchor-HO or X2 story.The NR leg's own mobility. Intra-SN (5109) is the light procedure — same SgNB, new PSCell. Inter-SN (5110) rebuilds the leg at another SgNB — every interface can fail it. Family 906 counts the changes policy refused: verbatim FRChgRefuse_VolteConf (voice call active on the anchor — don't disturb), FRChgRefuse_RLO (UL outage — don't move a leg that's already suspended), and their FRChgRelease_* twins when the refusal ends in release.
| Symptom | Diagnosis | Lever |
|---|---|---|
…Fail_RrcTo dominant | New PSCell not reachable — trigger too late or weak target beam | NR A3/A5 trigger for PSCell change; handover-margin-nr 3→1–2 dB dense (deck); per-beam RACH at the target (5243) |
…PrepFail_MenbFail / Fail_MenbFail | The anchor failed the X2 leg of the change | LTE ledger: 748-753 health, X2 SCTP (943/944); this is LTE work |
…Fail_Tdcoverall | Guard expiry — slow X2 or peer | X2 latency first; Tdcoverall raise only on counted evidence (same rule as retainability page) |
| Inter-SN ≪ intra-SN SR | The SgNB-to-SgNB path (X2 + target SgNB resources) | Target SgNB CAC/capacity; X2 between SgNBs; check 5110 target-side twin if licensed |
FRChgRefuse_RLO climbing | Changes blocked because the leg is in UL outage | Fix the outage first (retainability page's en-dc-ul-radio-link-outage-* set) — the refusal is a symptom |
FRChgRefuse_VolteConf high | Voice-first policy blocking NR moves | Verify intent; if VoLTE sessions are long, the NR leg may stay pinned to a weakening PSCell — consider release-vs-keep policy per market |
Family 5109 names the culprit inside the counter. Read it in two gates: Prep SR = EndcIntraChgPrepSucc / EndcIntraChgAtt (nothing sent to the UE yet — failures are node/transport), then Exec SR = EndcIntraChgSucc / EndcIntraChgPrepSucc (UE is reconfiguring — failures are air-interface or MeNB). The interface is encoded in the peg: Up = CU-UP / E1 · Du = gNB-DU / F1 · Menb = X2 / MeNB · Cp = gNB-CU-CP. And the suffix style tells the mechanism: *Timeout = the answer never came (latency / overload) · *Fail = an explicit failure or reject (fault / alarm / resource) — timeouts want capacity+transport work, fails want the alarm cleared first.
| Counter (5109) | Verbatim root cause | Check | Fix |
|---|---|---|---|
EndcIntraChgPrepFail_UpTimeout | E1 message timeout in prep | CU-UP CPU/load · E1 SCTP latency/drops | Relieve CU-UP, fix E1 transport — capacity/transport, not a radio knob |
EndcIntraChgPrepFail_DuTimeout | F1 message timeout in prep | DU CPU/PRB/admission · F1 SCTP · cell not in energy-saving | Relieve DU, fix F1 |
EndcIntraChgPrepFail_MenbFail | X2 link failure in prep | end-point-x2 … sctp-state · x2-sctp-stop=false · x2-failover-timer | Heal X2 — read the anchor's term-point-to-enb/sctp-state suffix for the reason (comm-lost vs setup-timeout vs sctp-oos) |
EndcIntraChgPrepFail_CpFail | gNB-CU-CP block failure in prep | CU-CP CSL (5100) · admission (5148) · license/RPC headroom | Relieve CU-CP; SW fault → escalate with evidence |
EndcIntraChgPrepFail_UpFail | CU-UP or E1 explicit failure in prep | AUPF alarms · E1 association · resource pool (7004) | Clear the CU-UP/E1 alarm first |
EndcIntraChgPrepFail_DuFail | gNB-DU or F1 explicit failure in prep | DU cell fault · F1 down · target PRB/RACH/CCE admission | Restore DU/F1, relieve target admission |
| Counter (5109) | Verbatim root cause | Check | Fix (verbatim knobs) |
|---|---|---|---|
EndcIntraChgFail_RrcTo ⭐ | No RRCReconfigurationComplete — UE failed random-access to the new PSCell (air interface) | Target RSRP/SINR at the change point · target PRACH/beams · did A3 fire too late? | Trigger earlier: a3-pscell-change-offset-delta (0, −30..30) + hysteresis/TTT; give RA time: ue-timer-const-info/t304 ms1000→ms2000 only if RA is slow-but-succeeds — t304-first on a weak target just delays the drop |
EndcIntraChgFail_Tdcoverall ⭐ | Tdcoverall expiry — no X2 SGNB MODIFICATION CONFIRM from the MeNB | X2 RTT · MeNB load · LTE-anchor RLF | timer-info/x2-dc-overall (3000, 100..65535) → 4000–5000 only if X2 latency is genuinely high; raising the timer masks, it doesn't cure |
EndcIntraChgFail_MenbFail ⭐ | X2 SGNB MODIFICATION REFUSE / SGNB RELEASE REQUEST from the MeNB, or X2 down | LTE anchor RLF/coverage · MeNB CAC/load · X2 health | The root lives on the LTE side — fix anchor coverage / MeNB admission, not NR knobs |
EndcIntraChgFail_UpTimeout / _DuTimeout / _CpFail / _UpFail / _DuFail | E1/F1 timeouts and explicit CU-CP/CU-UP/DU failures during execution | Same buckets as prep, at exec timestamps | Identical runbooks to the prep twins — group by interface and sum both phases per interface |
RrcTo → air · Tdcoverall → X2/MeNB latency · MenbFail → LTE anchor · ④ prove the fix on Succ/Att plus no new drops in 5085/5105/5106, and watch the change-time ledger — Family 5228 splits it into IntraSNSPcellChgSRB3Tot/Cnt (NR air via SRB3), IntraSNSPcellChgMCGSRBTot/Cnt (X2 + LTE SRB), InterSNSPcellChgTot/Cnt (SGNB CHANGE REQUIRED→CONFIRM) — whichever average creeps names the slow leg. Inter-SN twin: family 5110 repeats the whole taxonomy as EndcInterChgSrc* and adds EndcInterChgSrcPrepFail_X2LinkFail.The classic coverage move: the UE keeps its LTE 1800 anchor and swaps the NR leg from n78 to the low band. In Samsung terms that is an inter-frequency EN-DC PSCell change — counted in 5109 if the same gNB serves both bands, 5110 if a different gNB serves 800 ("intra/inter-SN" is about the node, never the frequency). The trap: every enable in this chain ships OFF — until you flip them, EndcIntraChgAtt stays at zero and the UE rides n78 into the ground.
| Step | Knob (verbatim MO leaf) | Default → set | Feature |
|---|---|---|---|
| Master enable (SPID) | mobility-config-gnb/spid-based-inter-frequency-pscell-change-enabled | disable → enable | FGR-CC5001 |
| Master enable (freq-priority) | mobility-config-gnb/fp-based-inter-frequency-pscell-change-enabled | disable → enable | FGR-CC5001 |
| Target-band report A4 | long-periodic-measurement/en-dc-spid-inter-frequency-nr-pscell-change-purpose-a4-enabled | disable → enable | FGR-MC1014 |
| …or safer A5 (serving-below + target-above) | …-a5-enabled | disable → enable | FGR-MC1014 |
| "n78 weak → measure 800" | a2-report-config/a2-purpose = en-dc-activate-inter-frequency-purpose(0) | configure on the high band | FGR-CC5010 |
| "n78 recovered → stop" | a1-report-config/a1-purpose = en-dc-deactivate-inter-frequency-purpose(0) | configure | FGR-CC5010 |
| Bias toward 800 | …/a3-spid-inter-frequency-pscell-change-offset-delta | 0 (−30..30) | FGR-CC5001 |
5109/5110; success-rate KPI Succ/Att, speed KPI from 5228. Note this is the connected-mode MR-based path; the SCG-band steering at addition time (scg-band-selection-mode, FGR-LC0704) solves the same problem earlier — right band from the start beats changing later.Every LTE leg from the LTE mobility page exists again for EN-DC-capable UEs — same grammar (IntraEnbAtt…), separate families. Why: an EN-DC anchor HO carries extra freight (SgNB context, X2 forwarding), so its SR deserves its own ledger. Family 802 counts inter-frequency HOs made for EN-DC — the anchor moved to a better EN-DC band on purpose. Family 742 IRAT_NR_MR_CLASSIFICATION classifies the B1 measurement evidence steering it all.
802 attempts without SgNB additions following = the steering moved anchors but the B1 layer never fired — check the B1 thresholds (accessibility page) and scg-band-selection-mode. Idle twin: Family 793 EN_DC_IDLE_LB (EnDc_IdleLbCnt/UECount/TargetEarfcnDL) steers idle EN-DC-capable UEs to anchor-friendly carriers before they even connect — with the anchor-selection-enable threshold set (LTE LB deck, verbatim: high-load-threshold, delta-anchor-threshold-cell-load, anchor-area-option-for-Idle-endc, nr-priority-option-for-idle-endc).When the anchor moves, the SgNB must be kept, modified or re-added — and Samsung counts each path from both sides:
| Family | Path | Counters (grammar verbatim) |
|---|---|---|
5090 (NR) | Intra-LTE HO, SgNB unchanged — the cheapest path | EndcAddLteHoNoSgnbChgAtt/PrepSucc/Succ + PrepFail/Fail_<Up|Du|Menb|Cp|Tdcoverall> |
5095/5096 (NR) | SgNB addition because of intra/inter-eNB anchor HO | EndcAddMnHoIntraEnb* / EndcAddMnHoInterEnb* — the add-back after a move |
5112 (NR) | SgNB modification with MCG mobility — leg adjusted, not dropped | EndcModByMenbMcgMobAtt/PrepSucc/Succ + fails |
706 (LTE) | SgNB change (SCG mobility) — the LTE view | SgnbChange_AddAtt/PrepSucc/Succ · Sgnb_AddPrepFail_DcPrepTO/_Reject · Sgnb_AddFail_RrcReconfigTO/_InternalFail/_Rre/_UeCtxtRel |
708/709/710 (LTE) | SgNB add/mod/release due to MCG mobility — per anchor path | IntraEnbToMenb_Add* · InterEnbToMenb_Add* · IntraMenbToMenbSgnbChg_Add* |
anchor HO SR × (keep-share + add-back SR × (1−keep-share)). Maximize the keep path first (5090 + context-kept 5092 — no interruption at all), then the add-back SR. An excellent add-back SR with a low keep-share still means a 5G blip at every anchor move — the choreography targets, in order: keep > modify > re-add > release.Pick the move and the conditions; see which of the three paths fires, what books on each ledger, and the 5G-continuity verdict.
| Parameter | Default / typical | Deck guidance (verbatim where quoted) |
|---|---|---|
| handover-margin-nr | 3 dB | "1–2 dB (lower value) — less aggressive handovers in dense areas" → steadier PSCell choice |
| time-to-trigger (NR events) | 480 ms | "160 ms — faster handovers in high mobility scenarios" |
| B1 (add) vs A2 (release/change) thresholds | plan | Keep a clear gap — add/change ping-pong manufactures PSCell churn (Fam 742 classifies the MR evidence) |
| anchor-selection-enable + high-load-threshold / delta-anchor-threshold-cell-load | enable in EN-DC | Idle anchor steering (Fam 793) — "steer EN-DC capable idle UEs to less loaded, suitable anchor carriers" (LB deck verbatim); pair with anchor-area-option-for-Idle-endc, nr-priority-option-for-idle-endc, load-balancing-idle-mode-anchor-prefer-earfcn-list |
| scg-band-selection-mode + scg-band-threshold-capacity / -num-ue | scg-band-select-capacity · 70–80% | "Avoid adding an SCG leg that will perform poorly due to NR congestion" (LB deck verbatim) |
| Tdcoverall | release default | The guard behind every _Tdcoverall fail — X2 latency first, raise only on evidence |
| en-dc-ul-radio-link-outage-* | — | Owns the FRChgRefuse_RLO story — full set on the NSA retainability page (cross-ref, not duplicated) |
Baseline all three planes
5109/5110 PSCell changes, 748-750 anchor twins, 5090/5095/5096 add-back, 5112 mods, 5113/5092 releases, 906 refusals. Compute the continuity product.
both ledgers, three planes Skip this and one plane's problem masquerades as another's.Find the losing plane
PSCell SR low = NR-leg mobility. Anchor twins below the general LTE composite = EN-DC freight. Keep-share low = choreography. Refusals high = policy/outage.
the continuity product's weakest factor If wrong: NR trigger tuning for an X2 problem.Decode the cross-ledger arrows
_MenbFail on NR families → the anchor/X2. _Tdcoverall → guard/latency. _RrcTo → new-PSCell radio. FRChgRefuse_RLO → the UL-outage machinery (retainability page).
Apply ONE lever on the owning plane
NR trigger: handover-margin-nr / TTT / B1-A2 gap. Choreography: prefer keep>modify>re-add (5090 path health, context-kept share). Steering: anchor-selection + scg-band thresholds.
one lever per soak If wrong: unattributable results.Verify the product + guards
Continuity product up; SgNB addition SR (5103, accessibility) held; NSA drop formula (retainability page) held; LTE composite (17/18/20) untouched.
guards across all three Day-2/Day-3 pages If wrong: mobility "fixed" by adding fewer legs.NSA mobility is a choreography — keep > modify > re-add > release.
Three planes, two ledgers, one continuity product. The anchor choreographs; the counters name which side dropped the beat.
Sources: Samsung 5G NR Counter Description (CU-CP ACPF — Families 5109 INTRA_SN_PSCELL_CHANGE, 5110 INTER_SN_PSCELL_CHANGE_SRC, 5090/5095/5096 SgNB-addition-by-HO, 5112 MENB_INIT_SGNB_MOD_MCGMOB, 5113/5092 — counters verbatim) · Samsung LTE eNB Counter Description (Families 748/749/750/752/753 ENDC_HO, 802 INTER_FREQ_HO_FOR_EN_DC, 793 EN_DC_IDLE_LB, 906 NOT_ALLOWED_PSCELL_CHANGE, 742 IRAT_NR_MR_CLASSIFICATION, 706/708/709/710 SCG/MCG mobility SgNB families, 943/944 X2 link time — verbatim) · 5G NR Mobility/Retainability Optimization SA decks (handover-margin-nr, TTT high-mobility values) · LTE Throughput Optimization deck LB chapter (anchor-selection & scg-band-selection parameters, verbatim). EN-DC per 3GPP TS 37.340. The B1 addition trigger is covered on the accessibility NSA page; the UL-outage and drop machinery on the retainability NSA page — cross-referenced, not duplicated.