Part of the 5G-NR RAN EPIC #254. Phase B.
Goal: a CU owns the facility-wide slot map and coordinates cell-edge resources — the disaggregated-RAN control plane over the F1 backhaul.
5G mapping (terminology corrected from the review)
CU / DU split (the CU half); F1 interface = the DU↔CU control link (Xn is inter-gNB — used here for any direct DU↔DU coordination); coordinated scheduling / dynamic-TDD alignment (5G ICIC successor). This is an NR-inspired centralized facility scheduler, not a faithful 3GPP CU (it owns scheduling, not PDCP/RRC).
Deliverables (tools/ran-controller/ — the CU app; never touches the radio)
Reuses
M1 grant map, FastRetune, SetCcaMode, M4's synced TSF (so a CU-assigned slot index means the same instant at every DU).
Dependencies
M4 (#254 tracks) — coordination is meaningless without a shared clock.
Test — tests/ran_coord.sh
An edge UE hearing both DUs: uncoordinated → collisions on the shared airtime; enable the CU coordination planner → the edge UE's airtime goes clean. Headless selftest: the planner's slot/channel-assignment logic in the selftests aggregate.
Part of the 5G-NR RAN EPIC #254. Phase B.
Goal: a CU owns the facility-wide slot map and coordinates cell-edge resources — the disaggregated-RAN control plane over the F1 backhaul.
5G mapping (terminology corrected from the review)
CU / DU split (the CU half); F1 interface = the DU↔CU control link (Xn is inter-gNB — used here for any direct DU↔DU coordination); coordinated scheduling / dynamic-TDD alignment (5G ICIC successor). This is an NR-inspired centralized facility scheduler, not a faithful 3GPP CU (it owns scheduling, not PDCP/RRC).
Deliverables (
tools/ran-controller/— the CU app; never touches the radio)tools/ran-controller/— collects per-DUUeRegistry+ link quality over the F1 socket (UDP/gRPC over LAN), pushes per-DU grant maps back.FastRetune(slots ≫ retune time); a coarse-sync (USB) DU is restricted to frequency separation, not same-channel time slots (M4 tiers).effective_atnetwork-frame number, a minimum control-plane lead time, DU acknowledgement of a staged schedule, stale-update rejection, and autonomous DU fallback on CU/backhaul outage.Reuses
M1 grant map,
FastRetune,SetCcaMode, M4's synced TSF (so a CU-assigned slot index means the same instant at every DU).Dependencies
M4 (#254 tracks) — coordination is meaningless without a shared clock.
Test —
tests/ran_coord.shAn edge UE hearing both DUs: uncoordinated → collisions on the shared airtime; enable the CU coordination planner → the edge UE's airtime goes clean. Headless selftest: the planner's slot/channel-assignment logic in the
selftestsaggregate.