Every feature below plugs into the same eight-step field workflow. This is the loop a Samsung MOCN engineer runs on a shared cell — configure, prove it, watch it, tune it, fix it, trial it.
Baseline
Snapshot per-PLMN counters (Fam 5241 PRB, 5583/5584 throughput) and save the running config before you touch anything.
save config · export PM (per PLMN)Configure
Set the managed objects: gnb-cu-plmn-info (identity), plmn-N-ue-distribution-ratio (PRB), per-PLMN A3/A5 report config (mobility), per-PLMN CAC caps.
Activate
Enable only the licensed features you need — CC6101 · RS1801 · MC1015 · LC0702/0703 — one at a time.
Verify
Decode SIB1 (all PLMNs + TAC present), check each operator's AMF is up over NG, and confirm PlmnNotServedByTheGnbCu (Fam 5026/5174) = 0.
Monitor (per-PLMN)
Watch PRB utilisation vs portion (5241), throughput/loss/drop (5583), HO success and per-PLMN drop — never the cell average.
DLUsedPrbPlmn ÷ DLAvailablePrbPlmnOptimize (golden params)
Ratio = SLA share (not 100); load-evaluate-mode = resource; raise TTT to kill ping-pong; add CRP floors + hard limits.
Troubleshoot
Match the symptom to the per-feature Solutions table (PLMN-not-served, starvation, ping-pong, CAC block…).
symptom → cause → fixTrial & roll back
Change one parameter → 48 h soak → verify the target moved and no other PLMN regressed → roll back if not.
baseline → 1 change → soak → verify → revertBroadcasts up to 8 PLMNs per cell in SIB1's plmn-IdentityInfoList and routes each UE over NG to the right operator's AMF (by selected PLMN / GUAMI). The foundation MOCN feature — nothing else works without it.
| MO / leaf | Range | Sets |
|---|---|---|
| gnb-cu-plmn-info · plmn-index / mcc / mnc | 0..15 | Per-PLMN identity on the CU |
| plmn-support-info-entries · index | 0..15 | Per-PLMN slice/support entry |
| plmn-translation-table · mcc0–7 / mnc0–7 | 8 PLMNs | Translate received → actual PLMN (FGS-SF0502) |
| trackingAreaCode | per PLMN | TAC in SIB1 per PLMN |
PlmnNotServedByTheGnbCu (Fam 5026/5174) — must be 0.| Symptom | Cause | Fix |
|---|---|---|
| Operator's UEs can't camp | PLMN missing from DU list → not in SIB1 | Add PLMN to DU + CU list; re-decode SIB1 |
PlmnNotServedByTheGnbCu > 0 | CU↔DU PLMN mismatch | Align CU/DU PLMN lists (F1 setup) |
Gives each PLMN a controllable slice of the cell's PRBs via the per-PLMN distribution ratio (0–100 %). Combine with per-PLMN CRP + admission hard limits so the ratio is a floor, not a hint.
| Leaf | Range | Default | Recommended |
|---|---|---|---|
| distribution-ratio-per-plmn-switch | disable/enable | enable | enable |
| plmn-0…7-ue-distribution-ratio | 0…100 | 100 | = contracted share |
DLUsedPrbPlmn ÷ DLAvailablePrbPlmn × 100 per PLMN; target ≤ configured portion.| Symptom | Cause | Fix |
|---|---|---|
| Minority operator starved | Ratio too low / left at 100 for all | Raise its plmn-N-ue-distribution-ratio; verify Fam 5241 |
| Idle share wasted | Hard portion on a quiet operator | Use CRP floor + adaptive share |
Applies per-PLMN PRB portion control on a carrier that also runs LTE-NR Dynamic Spectrum Sharing — so MOCN and DSS coexist on the same spectrum.
DssNrDLPrbUsed / DssNrDLPrbAvailable / DssNrDLPrbRatioUsedPerAvailable: the NR share of the shared carrier.| Symptom | Cause | Fix |
|---|---|---|
| NR PRB starved on shared carrier | LTE consuming too much DSS share | Re-balance DSS split; enable SS/PBCH rate-matching |
Holds the measurement / report configuration per PLMN, so each operator's UEs hand over and reselect using that operator's thresholds, neighbours and frequency priorities on the same shared cell (new in SVR25A; supports per-PLMN dedicated CRP).
| Leaf | Range | Default | Role |
|---|---|---|---|
| intra-nr-handover-event-type | a3 / a5 | event-a5 | Samsung default HO trigger = A5 |
| a3-offset-rsrp | −30…30 | 4 | Neighbour-better offset |
| a5-threshold1/2-rsrp | 0…127 | 51 | Serving-poor / neighbour-good (≈−105 dBm) |
| time-to-trigger | ms0…ms1024 | ms40 | Debounce |
| sa-frequency-priority | 0…31 | 0 | Per-PLMN target-freq priority |
sa-frequency-priority; raise TTT (ms160–320) to kill ping-pong; keep A5 unless a plan needs A3.| Symptom | Cause | Fix |
|---|---|---|
| One-operator-only HO failure | Shared cfg sends UE to a cell not broadcasting its PLMN | Set per-PLMN neighbour/frequency plan (MC1015) |
| Ping-pong on shared cell | TTT / hysteresis too low | Raise TTT to ms160–320; add A3/A5 hysteresis |
Biases where idle UEs of a PLMN camp via cell-reselection — free load control with no signalling. Manual (fixed ratios) or auto (weight by load), evaluated every few minutes above a trigger.
| Leaf | Range | Default | Recommended |
|---|---|---|---|
| idle-mobility-control-switch | disable/enable | enable | enable |
| operation-mode-for-idle-load-balancing | manual/auto | auto | manual (strict SLA) |
| period-for-idle-load-balancing | 1…60 min | 3 min | 3–5 min |
| trigger-threshold-for-idle-load-balancing | 0…100 % | 0 | 60–70 % |
| plmn-0…7-ue-distribution-ratio | 0…100 | 100 | per plan |
| Symptom | Fix |
|---|---|
| One frequency runs hot in idle | Tune the per-PLMN distribution ratio + reselection thresholds (MC1006); set trigger 60–70% |
Moves load off a hot cell with a load-based handover. Neighbour load is exchanged via resource-status reporting over F1/Xn; when the serving cell saturates it hands selected UEs to a lighter neighbour.
| Leaf | Range | Default | Recommended |
|---|---|---|---|
| fr1-load-balancing-switch | disable/enable | enable | enable |
| load-evaluate-mode | resource / ue | ue | resource |
| mr-wait-timer | 1000…10000 ms | 2000 | 2000–3000 |
| reporting-period-f1 / -xn | 500…10240 ms | 1000 | 1000 |
| number-of-reporting-neighbors-per-carrier | 0…32 | 16 | = real neighbours |
| filter-coefficient-rrc-ue | 0.0…1.0 | 0.2 | 0.2–0.3 |
load-evaluate-mode = resource (share is about PRBs, not UE count); smooth the metric with filter-coefficient; raise mr-wait-timer to stop ping-pong.mr-wait-timer and filter-coefficient-rrc-ue; verify neighbour resource-status is flowing (F1/Xn).Six features, one shared 5G cell — identity → PRB → DSS → mobility → load.
CC6101 broadcasts & routes, RS1801 splits PRBs, RS1201 coexists with DSS, MC1015 keeps HO per-operator, LC0702/LC0703 balance idle & connected load. Every value here is real; trial each per Day 6.