Radio energy saving
Use case
Turkcell and P.I. Works run a system in production that switches idle radio cells off to save power. They wrote it up in the GSMA Foundry use-case library. In production that cut energy use by up to 10% in off-peak hours, with no reported drop in service
The eval rebuilds that decision as a set of graded tasks. The agent is handed each cell’s recent traffic and call-failure numbers and the operator’s switch-off policy, then has to answer one question: which cells can be switched off without dropping calls?
Agent
Each of the six capabilities below is graded by a task in the suite:
Environment
- To read and cluster the network, the radio controller (the Near-RT RIC) streams per-cell counters, traffic, accessibility, and drop rate, seeded so every trial starts from the same state, with the operator policy supplying the thresholds selection runs against
- To act on it, srsRAN, the radio software, runs each cell as its own container the agent can switch off and back on, on an Open5GS core that keeps the rest of the network live
- To prove the result, Kamailio places the voice calls (VoLTE) whose outcomes test the voice guardrail, and Kepler meters each container’s energy in joules
Suite
- What’s the network doing? Read each cell’s traffic, drop-rate, and accessibility counters (t1 to t3)
- Which cells look alike? Cluster them by how their performance numbers behave (t4)
- Which can switch off? Pick the low-load cells the policy allows (t5)
- Did switching them off hurt voice? Cut the power, then judge the voice calls against the guardrail (t6)
- Keep the saving or undo it? Hold while the guardrail is clear, roll back on a breach (t7)
- What did it save? Compute the before/after energy saving (t8)
| ID | Task | What it tests | Grader |
|---|---|---|---|
| t1 | Report each cell’s traffic counter | reading network state | numeric tolerance |
| t2 | Report each cell’s VoLTE drop-rate KPI | reading quality KPIs | numeric tolerance |
| t3 | Report each cell’s accessibility counter | reading accessibility | numeric tolerance |
| t4 | Cluster cells by their KPI profile | KPI-similarity clustering | custom |
| t5 | Select low-load capacity cells as switch-off candidates | policy-bounded selection | set match |
| t6 | Judge post-switch-off VoLTE against the guardrail | guardrail judgment | composite |
| t7 | Decide to keep the cell off when the guardrail is clear | actuation decision | outcome check (probe) |
| t8 | Compute the before/after energy-efficiency delta | energy accounting | numeric tolerance |
Tools
Each task in the suite needs one tool. The reading tasks (t1 to t3) need the network’s own counters, so three read tools: one for the counters the RIC streams, one for the energy Kepler meters, one for the voice-call outcomes Kamailio places. The acting tasks (t5, t7) switch a cell off and back on, two tools against the srsRAN containers. Selection needs to see what’s running, so one more to list the live cells
Notes
| Impractical task | Problem | Practical alternative |
|---|---|---|
| Switch off live base stations and meter the site power | Requires production RAN hardware and power metering at cell sites | Run a multi-cell srsRAN network in Docker and meter each cell’s container with Kepler |
| Watch real subscriber VoLTE quality during the saving window | Real subscriber traffic can’t be replayed or ethically risked | Drive seeded VoLTE calls through Kamailio IMS and read call outcomes |
| Tune against the operator’s production SON policy engine | Proprietary, vendor-locked, and different per operator | Seed the policy thresholds as fixtures with their origin stated in the task evidence |
| Inconsistency | Problem | Better |
|---|---|---|
| Score energy from live wattage at the moment of reading | Instantaneous draw varies with host load between runs | Score the energy-efficiency ratio from seeded counters over a fixed window |
| Judge the guardrail from a single VoLTE call | One call can drop for incidental container reasons | Drive a fixed batch of seeded calls and judge the outcome rate |
| Treat cell on/off as an undocumented container side effect | Stop/start semantics drift and break actuation tasks | Document container stop/start as the first-class cell on/off control of the environment |