← course  ·  MODULE 3 · THEORY + KPI OPTIMIZATION SCENARIOS

The Machine Room

Scheduler & air-interface resource optimization, written as a book chapter: the QoS-aware scheduler, deadline-based triage, speculative grants, the scheduling-request budget, two answers to fading, codeword economics, the inter-cell treaty, and carrier aggregation's collision with voice — closing with six KPI-optimization case studies on real node data.

No fake things. Every FAJ/CXC, MO attribute, threshold, and feature state below is from the Ericsson CPI (LTE RAN 25.Q4.4), the live NYC node kget (25.Q3), the operator golden file, and the LTE PM counter inventory. 3GPP citations name exact specifications.

CH 1The QoS-aware scheduler

Everything before this module was paperwork: QCI tables, E-RAB ladders, admission verdicts. The scheduler (QoS-Aware Scheduling, FAJ 121 0859) is where promises are kept or broken, one transmission-time interval — one millisecond — at a time. Each TTI it ranks every bearer with traffic by a weight built from the QciProfilePredefined row: priority, schedulingAlgorithm, and the resource type (GBR vs non-GBR).

The live node carries the single most consequential scheduler edit on the network: QCI-1's relative priority is flipped to 1 — above the 3GPP TS 23.203 default ordering that places QCI-5 (IMS signalling) highest. The operator's reasoning is sound and documented in the golden file: SIP rides patient TCP-like retransmission on the QCI-5 SRB-like bearer (RLC AM), but a voice frame missing its 80 ms slice is dead. The pdb=80 with pdbOffset=50 means the scheduler's effective per-packet deadline is tighter still — the offset reserves headroom for the transport and core legs of the corridor (Module 7 walks the full 280 ms budget).

Reading the kget

All nine cells share one QciProfilePredefined=qci1 instance under QciTable=default: priority=1, pdb=80, pdbOffset=50, schedulingAlgorithm=PROPORTIONAL_FAIR for data QCIs but deadline-weighted for the GBR voice row. One instance, nine cells — the consistency is itself a finding: no per-cell drift.

CH 2Delay-based scheduling & grant estimation

Delay-Based Scheduling (FAJ 121 1789 / CXC4011064, ACTIVATED here) changes the scheduler's question for voice from “who deserves resources?” to “whose deadline is nearest?” Each QCI-1 packet's age is tracked against pdb − pdbOffset; weight rises steeply as the deadline approaches — triage by deadline. Its companion, uplink grant estimation, is prophecy by rhythm: voice is a 20 ms metronome (Module 1's SDP), so the scheduler can predict the next uplink need without waiting for a scheduling request, sizing grants to the AMR/EVS frame plus headers (Lesson 7-2's arithmetic).

The KPI seam: delay-based scheduling defends the tail of the delay distribution, not the mean. Verification belongs on per-QCI delay percentiles and pmPdcpPktDiscDlPelrQci[1] (in-node discards fall when deadlines are honored), never on average throughput — voice needs almost no throughput.

CH 3Prescheduling — grants on suspicion

Prescheduling (FAJ 121 3085) and its voice-keyed sibling VoLTE Prescheduling (FAJ 121 5470, voltePreschedulingEnabled per cell) issue uplink grants before any scheduling request arrives — spending PUSCH capacity to delete the SR→grant round trip (~10–15 ms) from the latency budget. The node carries a fully tuned PreschedulingProfile: 86 bytes every 5 ms for 200 ms after activity — sized exactly to an AMR-WB 23.85 frame + ROHC headers + MAC/RLC overhead, the voice-tuned variant among the 100/108/200-byte profiles.

Staged, not firing

The profile exists; the switch is off. This is the recurring posture of the whole node: configurations tuned and parked, awaiting the evidence-driven trial of Module 8. The golden file agrees with the off state — no deviation, a deliberate decision. The trial criteria (Lesson 3-3): activate where SR volumes run high and uplink latency percentiles show a tail, measure PUSCH cost against the latency gain.

CH 4Prioritized SR & the PUCCH budget

When prescheduling is parked, every uplink voice burst starts with a scheduling request on PUCCH. Prioritized SR Scheduling (FAJ 121 4300, ACTIVATED) makes the eNodeB answer voice SRs ahead of data SRs in the grant queue — the cheap half of the latency fix, no PUSCH spend. The PUCCH dimensioning on all nine cells: SR period 10 ms, noOfPucchSrUsers=320, noOfPucchCqiUsers=320, pucchOverdimensioning=50. The 10 ms SR period bounds the worst-case wait for a grant request slot at half the voice frame period — any longer and SR latency alone could eat the radio leg's budget.

The budget view: PUCCH resources are subtracted from PUSCH. 320+320 users at these periods is a capacity statement about expected connected-mode population; the overdimensioning margin absorbs handover surges. Audit rule: SR period × users must cover busy-hour connected UEs, or SR blocking shows up as setup latency that no downstream feature can recover.

CH 5Two answers to fading

A fading channel can be fought two ways. Uplink frequency-selective scheduling (FSS) measures per-PRB channel quality (sounding) and places each UE on its best PRBs — precision. Uplink frequency hopping (FAJ 121 4224) scatters a UE's transmission across the band within and between subframes — diversity, the statistical answer when sounding is stale or the UE moves fast. They are mutually exclusive per cell; hopping also collides with TTI bundling's resource patterns (Module 4's seam).

On this node hopping is a restricted feature and dark: FeatureState absent from the writable set, the vendor conversation of Lesson 3-5 required before any trial. The practical guidance stands regardless: dense urban grids with slow-moving users favor FSS precision; high-mobility corridors favor hopping's diversity.

CH 6Single-codeword selection

MIMO spatial multiplexing sends two codewords when the channel's rank supports it. For a 30-byte voice frame, the second codeword buys nothing — the payload fits trivially in one — and costs link budget: power split across layers, two CRCs at risk instead of one. Single Codeword Selection for VoLTE (FAJ 121 5874, unlicensed) forces rank-1 transmission for QCI-1, trading useless capacity for transmission robustness. Here it sits false — parked, because the dense grid's SINR rarely makes the second codeword fragile. The feature is a rural/edge tool: where rank-2 BLER on voice runs visibly above rank-1, the flip is nearly free.

CH 7Zero interference — the treaty

Zero Interference VoLTE Operation (FAJ 121 5235) coordinates neighbor cells to keep the PRBs carrying voice clean — an inter-cell treaty that reserves matching resources so a voice transmission near the cell border doesn't duel a neighbor's full-power data burst. The price is capacity on both sides of every border; the gain is edge-of-cell voice SINR. Parked here (DEACTIVATED, golden-compliant): a metro grid with strong dominance has few contested borders. The reopening evidence would be edge-concentrated voice loss (Lesson 7-4's surfaces) on border PRBs specifically.

CH 8Carrier aggregation vs the voice call

CA multiplies data throughput by adding SCells — and every SCell adds RF chains the UE must power, measurement load, and a control-plane surface that can wobble exactly when a voice call needs stillness. CA-Aware VoLTE Handling (FAJ 121 4884 / CXC4012259, ACTIVATED · ENABLED · OPERABLE) resolves the collision with a philosophy statement carried identically on all nine cells: sCellHandlingAtVolteCall=DECONF_UL_SUPPRESS_DL_SCELLS — when QCI-1 establishes, deconfigure uplink SCells entirely, suppress downlink SCell activation. Voice gets a single-carrier, low-churn radio; data resumes its aggregation when the call ends.

Why this matters for KPIs

The drop-rate effect is second-order but real: SCell (de)activation storms during calls create RRC reconfiguration churn, and every reconfiguration is a small drop risk. The ×9 consistency means population comparisons (Lesson 3-8) are clean — any cell deviating would contaminate drop-rate comparisons between cells.

CH 9Six KPI-optimization case studies

Each follows the loop: KPI symptom → counter evidence → root cause → parameter/feature action (exact MO.attribute) → verification → rollback.

CASE 1

Uplink voice latency tail on high-rise cells

KPI symptom
95th-percentile UL voice delay breaches the 80 ms PDB on three cells; mean is healthy. Complaints: “robotic” audio in bursts.
Evidence
SR volumes per UE run high; SR-to-grant time dominates the tail; pmPdcpPktLostUlQci[1] normal — frames are late, not lost.
Root cause
SR round-trip is the tail. Prioritized SR (active) already orders the queue; the remaining cost is the SR cycle itself.
Action
Trial EUtranCellFDD.voltePreschedulingEnabled=true (FAJ 121 5470) on the three cells — the 86 B/5 ms/200 ms profile is already staged. Control cells matched by load.
Verification
UL delay percentiles and SR volume fall on trial cells; PUSCH PRB utilization rise stays under the agreed ceiling; DRX interaction watched (Module 5 — prescheduling grants can defeat sleep).
Rollback
One boolean per cell.
CASE 2

Voice drops climb after a capacity “win”

KPI symptom
A neighboring market raised QCI-9 priority to favor a throughput KPI; voice drop rate crept up market-wide within a week.
Evidence
Per-QCI scheduling latency for QCI-1 doubled at busy hour; pmPdcpPktDiscDlPelrQci[1] (in-node discard) stepping — the AQM defender (Module 7) dropping frames that aged out in queue.
Root cause
Priority table edit broke the deadline ordering: voice no longer outranks bulk data at congestion.
Action
Restore QciProfilePredefined.priority ordering (voice=1). The lesson, not the parameter, is the deliverable: priority edits are network-wide policy, never a per-KPI lever.
Verification
Discards return to baseline within hours; drop rate follows within days.
Rollback
The action is the rollback.
CASE 3

SR blocking masquerading as an accessibility problem

KPI symptom
Setup time creeps on two stadium-adjacent cells at events; establishment SR itself holds.
Evidence
Connected-UE counts at events exceed noOfPucchSrUsers=320; SR opportunities saturate; grant latency spikes for all services.
Root cause
PUCCH dimensioning, not admission: the SR budget was sized for residential load.
Action
Event-window config: raise noOfPucchSrUsers and accept the PUSCH subtraction, or shorten SR period on event cells. Capacity decision (Module 2's corridor logic), taken with the capacity team.
Verification
SR blocking counters flat through the next event; PUSCH utilization delta documented.
Rollback
Restore dimensioning post-season.
CASE 4

The second codeword that wasn't free

KPI symptom
A rural sister market shows voice BLER and drop rate elevated at cell edge despite healthy coverage maps.
Evidence
Traces: QCI-1 transmissions at rank 2 with marginal SINR; initial-transmission BLER far above the 10% working point; HARQ ladder depth (Module 4) climbing at edge.
Root cause
Spatial multiplexing applied to a service that cannot use it, at SINRs that cannot afford it.
Action
Trial Single Codeword Selection for VoLTE (FAJ 121 5874) — force rank-1 for QCI-1 on edge-heavy cells.
Verification
Mean HARQ transmissions per voice TB fall; edge loss surface (…PelrUuQci[1]) improves; data KPIs untouched (the feature keys to QCI-1).
Rollback
Single feature flag.
CASE 5

CA churn during calls — the ×9 audit catch

KPI symptom
One cell's voice drop rate sits 0.3 pp above its eight siblings; RF and load are indistinguishable.
Evidence
Config diff: that cell's sCellHandlingAtVolteCall reverted to default by a template misapply — SCells stay configured during calls. Traces show RRC reconfigurations mid-call clustering before drops.
Root cause
Parameter drift breaking the nine-cell philosophy (FAJ 121 4884's posture).
Action
Restore DECONF_UL_SUPPRESS_DL_SCELLS; file the drift with the golden audit (Module 8) so the next monthly run catches the class.
Verification
Reconfiguration-adjacent drops disappear; the cell rejoins the population.
Rollback
n/a — the fix restores policy.
CASE 6

The hopping question, answered without activating anything

KPI symptom
A highway corridor shows uplink voice quality dipping at speed; FSS gains look theoretical for fast movers.
Evidence
Sounding-based scheduling decisions stale within the channel coherence time at 110 km/h; per-PRB placement no better than random for these users.
Root cause
Precision tool (FSS) applied where only diversity works.
Action
FAJ 121 4224 is restricted — open the vendor engagement first (licensing + dependency review vs TTI bundling), then corridor-cell trial. The discipline is the case: restricted features get conversations, not switches.
Verification
If trialed: UL BLER vs speed bins from drive data; voice loss surface on corridor cells.
Rollback
Per-cell feature flag, vendor-coordinated.

References