K
KorognaiSMO
Reference · Non-RT RIC
Service Management & Orchestration — reference implementation

SMO: End-to-End Assurance, Automation & Intelligence in RAN

FCAPS monitoring, multi-vendor RAN integration, cloud & lifecycle automation, closed-loop rApp orchestration on the Non-RT RIC, intent-based slice assurance, and security by evidence — all driven by synthetic telemetry.
SIMULATION — SYNTHETIC DATA
Want to see into the future?
Check the Cross-Domain SMO concept
Cross-Domain SMO — future-looking concept preview
K
About the author
Janos Korognai — 21 years in telecom pre-sales and solution architecture (OSS, network management, SMO, Non-RT RIC, rApps, O-RAN) for Tier-1 operators. This demo is an independent, hands-on project, not affiliated with any vendor.
Connect on LinkedIn
Overview
RAN Architecture
FCAPS Monitor
Closed Loop
Near-RT RIC
rApp Catalog
Import rApp
Slice Lifecycle
Conflict Log
Data & Openness
Cloud & NF Lifecycle
Zero-Touch Rollout
Security & Trust
Openness Scorecard
Documentation
50 Design Questions

In plain terms

This is a working model of the "control room" that runs a modern mobile network — spotting problems before customers notice, fixing many of them automatically, cutting energy costs, and giving operations teams one screen instead of a dozen disconnected tools. The technical detail below is real industry-standard practice; the numbers are illustrative, generated live for this demo.

Issues Resolved Automatically

--today
No engineer paged

Est. Annual OPEX Saved

$2.4M
Energy + automation, illustrative

Avg. Time to Detect & Resolve

4.2min
vs. hours, manual process

Active Alarms

--open
Fault Management — click to view

Network Availability

--%
Rolling 24h, all domains — click to view

rApps in Closed Loop

--active
Non-RT RIC — click to view

What this SMO covers

Grouped by function — RAN architecture, interfaces, FCAPS assurance, cloud & automation, intelligence (Non-RT RIC / Near-RT RIC / rApps / AI-ML), slicing & conflict, and security. Click a cluster to jump straight to it.

End-to-end architecture — where SMO and RIC actually sit

The RAN is split into three functional pieces — RU, DU, CU — connected by fronthaul, midhaul and backhaul. SMO (hosting the Non-RT RIC) manages everything from above via O1/O2/A1; the Near-RT RIC sits closer to the radio and controls it in real time via E2. Hover an interface below, or in the table, to see it highlighted in both places at once.

Interface reference

Fault Management — active alarms

Performance Management — live KPIs (hover a KPI for its trend)

Configuration Management — recent changes

Trace sessions (hover a completed session for its snapshot)

Topology & inventory summary

--sites
Multi-vendor, tRAN + O-RAN
--O-RU/DU/CU functions
Auto-synced on CRUD
--RAN vendors
Common data model

Cell Ring — Multi-Vendor RAN Topology

12 cells from 3 different RAN vendors, arranged around the Non-RT RIC hub. Each dot is one cell — color shows its current state, and a cyan line lights up from the hub whenever an rApp is actively remediating that cell. Hover a cell for details.
Nominal Congested Alarm rApp action applied
Outer ring = vendor: Vendor-A Vendor-B Vendor-C

R1 Interface Event Feed

Raw interface events, or a plain-language explanation of what the network just decided and why.

Avg PRB Utilization

--%

Handover Failure Rate

--%

Cells in Active Remediation

0/ 12 cells
rApp closed-loop actions in flight

Trigger a scenario (one per rApp — each condition only the matching rApp will fix)

Two RICs, two timescales

Everything on the Closed Loop tab is the Non-RT RIC: it runs rApps on a >1 second (often minutes+) timescale, hosted inside the SMO. This tab is the Near-RT RIC: a separate platform sitting closer to the radio, running xApps on a 10ms–1s timescale over the E2 interface — real-time control that's simply too fast for the Non-RT RIC's rApps to handle. The Non-RT RIC still steers it, but only by sending slower, higher-level A1 policy guidance down — it doesn't micromanage every millisecond.

E2 Control Actions

0/ sec
vs. rApps: ~1 action / few sec

Control Loop Timescale

10ms–1s
Near-RT RIC (this tab)

xApps Active

--of 4
Running over E2

xApp catalog

E2 interface — real-time control channel

How this works

Each rApp below subscribes to normalized CM/PM/FM data via a common R1-style data layer and can run in open-loop (recommend only) or closed-loop (auto-provision) mode. Toggle an rApp on to wire it into the live closed-loop simulation on the Closed Loop tab.

Import an rApp descriptor

rApp descriptor (JSON)

Descriptor schema reference

Modeled on Non-RT RIC rApp Manager conventions: rApp packages ship as a descriptor plus a container artifact, declaring which R1 services they consume (SME / DME / RAN NF OAM) and which policy type they register.

Required fields
rAppId, name, version, requiredServices[], exposedServices[], policyType, logic.algorithm, logic.params

Supported logic.algorithm values (run genuine reference logic — anything else onboards as a monitoring-only stub):
cell-sleep-energy-saving · mobility-robustness-optimization · load-balancing-offload · cell-outage-compensation

Network Slice Subnet Instance (NSSI) lifecycle

A slice is a living, managed entity across its whole life — not a one-time configuration. Step through the lifecycle stages below; each stage is reported back to the orchestration layer.

Where this stage's inputs come from

Express a business intent

Intent
Translated policy

Slice performance vs. SLA

rApp–rApp conflict resolution

When two rApps propose different configurations for the same RAN control parameter within a configurable window, the SMO applies the operator's configured resolution strategy.
Active strategy:

Data coverage matrix — exposed vs. retained

Per domain, per underlying vendor: is the raw data exposed through an open interface, or held internally only?

Decoupled data layer — resilience under disconnection

Simulate the external data platform going unreachable. A well-decoupled SMO buffers locally and keeps closed loops stable through the outage.
CONNECTED
Local buffer: 0 / 500 events

Self-serve data routing configuration

Data domain
Destination endpoint

Network function lifecycle automation

Full LCM, not just deployment — instantiate, heal, scale, upgrade, terminate — each with exposed per-operation status.
Where an Instantiate request comes from: a Zero-Touch Rollout pipeline run (new site), a Slice Lifecycle capacity change that needs more RAN resources, or a manual trigger here. When it fires, the new function is registered with the SMO's inventory and shows up immediately, live, in the Infrastructure & deployment visibility panel to the right — this demo triggers that same registration when you click Instantiate below.
Selected object
None selected — pick a row in the table to the right, or Instantiate a new one.

Infrastructure & deployment visibility

Click a row to select it for Instantiate/Heal/Scale/Upgrade/Terminate. Status updates live — occasionally an object degrades on its own, the way real infrastructure does.
Populated by Instantiate actions here, the O2-DMS zero-touch pipeline, and periodic O-Cloud inventory reconciliation · updated live · open interface

Zero-touch site integration pipeline

Generation, validation and execution as one governed pipeline — from software onboarding and hardware detection through deployment, commissioning, and post-launch KPI validation, with automatic rollback on failure. Based on the generic O-RAN/3GPP CNF lifecycle (onboard → discover → deploy → commission → validate), not any single vendor's specific tooling.
Where the data for a new integration comes from: the software package and its signature come from the operator's container/artifact registry; the site's physical hardware (RU/DU/CU) is auto-discovered over the O1 interface once it's powered on-site (Plug-and-Play), rather than typed in by hand; the site configuration itself is generated from planning-tool design inputs (radio parameters, cell IDs, neighbor lists) via one common templating engine for every architecture; and the post-launch KPI validation window reads live PM counters from this same SMO, the same feed shown on the FCAPS Monitor tab. Clicking "Run new site integration" below simulates that whole chain running end-to-end for one illustrative site.

Evidence-based security posture

Toggle each control to see what "evidenced" vs. "asserted" looks like.

Supply-chain integrity

Every deployed artifact carries verifiable provenance.
What this does: checks one deployed artifact (an rApp package, Helm chart, container image, or SBOM manifest) against its build-time cryptographic signature and checksum — proving it's exactly what was built and approved, not tampered with. How it's selected: not random — it's the next artifact in this SMO's deployment queue, cycled round-robin so every artifact type gets verified in turn.

Six principles for evaluating an SMO platform

Openness & data ownership · Decoupled architecture · Trustworthy automation · Security by evidence · Safe autonomy · Freedom from lock-in. Each slider starts from something actually measurable elsewhere in this demo — the source is noted under each one — because there's no live sensor for "how open is this architecture."
What moves each score, if you want to see it change: toggle rows in the Data & Openness coverage matrix (Openness & data ownership); disconnect/reconnect the external data platform on that same tab (Decoupled architecture); enable or disable rApps on the Closed Loop or Catalog tabs (Trustworthy automation — genuine-logic rApps count in your favor, imported stubs don't); toggle controls on this tab's checklist (Security by evidence); change the conflict-resolution strategy on the Conflict Log tab (Safe autonomy); or apply a self-serve data route on the Data & Openness tab (Freedom from lock-in). Hit "Recalculate from live demo state" any time to pull fresh numbers from whatever you've actually done.

What dragging a slider does: it overrides that one dimension with your own manual judgment — useful if you're scoring a real vendor rather than this demo — and immediately recalculates the composite score below from that override. It does not change anything else in the demo, and your manual value stays in place until you either drag it again or press Recalculate, which discards manual overrides and pulls every dimension back from live demo state.
--/ 100 composite openness score

About this documentation

A full written explanation of every tab, every term, and every simulated scenario in this demo — for anyone who wants to understand what they're looking at without someone walking them through it live. Everything here is synthetic demonstration; there is no live network behind it, and no vendor's proprietary material is used anywhere in it.

Jump to a section

🎓 For Dummies — start here if none of this makes sense yet

This section explains the entire demo using one simple, made-up story — no telecom background required. If a word still confuses you after reading this, it's probably in the Glossary section below, or you can just hover it anywhere in the app.

The one-sentence version

This app is a video-game-like simulation of the "control room" that keeps your phone's calls, texts, and internet working — showing, live, how a phone company actually spots problems and fixes a lot of them automatically, without a human doing anything.

The big analogy: your phone network is a citywide pizza delivery company

Forget "network" for a second. Imagine one giant pizza delivery company that has to deliver to every single phone, in every neighborhood of a whole city, every second of every day. That company needs: delivery hubs scattered around the city, drivers who make split-second decisions, a head office that plans routes and watches for problems, and rules for who gets a pizza first when it's a busy Friday night. Every tab in this app is one piece of that company. Keep this picture in your head — everything below maps back to it.

The cell tower, taken apart (RU / DU / CU)

A cell tower isn't one box — it's three, each doing a different job, like one delivery hub split into three departments:
  • RU (the loading dock): the antenna itself — physically sends and receives the "packages" (radio signals) to and from your phone. It never thinks, it just sends/receives.
  • DU (the local dispatcher): standing right at the hub, making split-second decisions — which package goes out this exact instant. Has to be close by because there's no time to call someone far away.
  • CU (the regional office): a bit further away, handling less urgent decisions for many hubs at once — like deciding delivery routes for the whole neighborhood rather than one truck.
  • Core network (the highway system): the big roads connecting every regional office to each other and to the rest of the world (the internet).
See it in the app: the RAN Architecture tab draws exactly this, as boxes connected by lines.

The head office (SMO)

SMO is the head office for the entire delivery company — it doesn't deliver a single pizza itself, but it watches every hub, notices when one breaks down, changes the rules when needed, and makes sure hubs from different regional franchises can all still work together. That's the whole app you're looking at: it's a model of that head office's control room.

Two kinds of brains: slow planners vs. fast reflexes (Non-RT RIC vs. Near-RT RIC)

The head office actually has two different decision-making teams, working on completely different timescales:
  • Non-RT RIC — the strategy department: sits inside the head office (the SMO), thinks in minutes-to-hours, and runs specialist advisors called rApps — one advisor studies energy costs and turns off quiet hubs at night, another watches for hubs that are overloaded and reroutes deliveries around them. Slow, but smart and thorough.
  • Near-RT RIC — the regional dispatcher: a separate, faster team physically closer to the hubs, making calls in a fraction of a second — the kind of call a human (or even the slow strategy department) simply can't make in time. It runs specialist quick-reaction rules called xApps — e.g. instantly juggling which delivery lane a driver uses right now.
See it in the app: Closed Loop is the slow strategy department in action; Near-RT RIC is the fast dispatcher, with a live counter proving how much faster it reacts.

The five things the head office always keeps an eye on (FCAPS)

Any company running a citywide delivery operation needs the same five kinds of tracking. Telecom people gave them a somewhat clunky acronym, FCAPS, but the ideas are simple:
  • Fault: which hubs or trucks are broken right now (this app's "active alarms" list).
  • Configuration: a record of every setting and every change made to any hub, and who made it.
  • Accounting: counting how many pizzas actually got delivered, for billing and planning.
  • Performance: how fast and reliably deliveries are actually happening right now (this app's "live KPIs").
  • Security: making sure nobody unauthorized can mess with a hub or steal a delivery.
See it in the app: this is the whole FCAPS Monitor tab.

A closed loop is just a smart thermostat

You already understand this idea from home: a smart thermostat notices the room got cold, decides to turn on the heat, acts on it, then checks the room actually warmed up — with no human touching a dial. A "closed loop" in this app is exactly that pattern, applied to network problems: a rApp notices a hub is overloaded or quiet or broken, decides what to do, does it, and checks it worked. No engineer got paged for any of it.
See it in the app: the Closed Loop tab. Click any "Simulate..." button to break something on purpose and watch a specialist advisor (rApp) fix it live — the affected hub glows cyan while it's being fixed.

Network slicing is a reserved express lane

Picture a highway during rush hour with one lane painted off and reserved only for ambulances — everyone else can still use their regular lanes, but that one lane guarantees an ambulance never gets stuck in traffic. A "network slice" is the same idea applied to phone data: a company can rent a guaranteed, protected "lane" of network capacity for something important (an enterprise customer's video calls, a factory's robots), separate from everyone else's regular phone traffic on the very same towers.
See it in the app: the Slice Lifecycle tab — you can create one of these express lanes, change it, watch it get monitored, and shut it down.

Conflict management is two bosses giving one worker opposite orders

Imagine two different managers at the head office both radio the same driver at the same moment — one says "speed up," the other says "slow down." Something has to decide whose order actually wins, or the poor driver just flip-flops forever. That's a "conflict" between two automated rApps trying to do opposite things to the same hub at the same time, and this app shows three different company policies for resolving it: let both happen and see what happens (Allow), first order given wins (First-Come-First-Served), or the more senior manager's order always wins (Priority-Based Override).
See it in the app: the Conflict Log tab — and it now also catches real conflicts happening live on the Closed Loop tab, not just a scripted example.

Cloud & NF Lifecycle is renting warehouse space instead of owning buildings

Older phone networks used dedicated, single-purpose hardware boxes for everything — like owning a building you can only ever use as a pizza oven. Modern networks instead run most of that software on rented, general-purpose computer warehouse space (the "cloud") that can be resized or moved around as needed. This tab lets you pick one of those virtual "warehouses" and instantiate (build a new one), heal (fix one that broke down on its own), scale (make it bigger or smaller), upgrade (renovate it without closing), or terminate (shut it down) it — and warehouses really can spontaneously break down here, the way real ones do, giving you something genuine to go fix.
See it in the app: click any row in the Cloud & NF Lifecycle table to select a "warehouse," then use the buttons on the left.

Zero-Touch Rollout is a store that opens itself

Imagine a new store location where the shelves stock themselves, the cash registers configure themselves, and the lights turn on automatically the moment the building has power — with no manager ever having to personally visit and set it up by hand. That's what "zero-touch" means for a new cell site: it's not that nobody's watching, it's that the whole setup process — thirteen careful, auditable steps in this demo — happens automatically instead of needing an engineer to fly out and configure it manually.
See it in the app: the Zero-Touch Rollout tab — press play and watch all thirteen steps run in order.

Security & Trust is ID badges and tamper seals

Think of a secure warehouse: everyone entering needs to badge in every single time, even if they were just inside five minutes ago (that's "zero-trust" — nobody gets automatically trusted just because they're already inside). Every delivery truck's cargo has a tamper-proof seal checked before it's allowed to leave (that's "supply-chain integrity" — proving nothing was swapped or altered along the way). This tab shows both ideas as things you can actually turn on and watch produce real evidence, not just a checkbox that claims to be secure.
See it in the app: the Security & Trust tab.

The Openness Scorecard is a report card for "could we switch delivery companies easily?"

If a city ever wanted to fire this delivery company and hire a different one, how painful would that be? A genuinely "open" platform uses standard boxes, standard labels, and standard paperwork that any competitor could pick up and understand — versus a "closed" one that only works with that one company's proprietary trucks and secret route maps forever. This tab grades the demo's own platform, honestly, on six such report-card categories.
See it in the app: the Openness Scorecard tab.

A suggested first walkthrough

  1. Open RAN Architecture and just look at the diagram — that's the delivery hub taken apart.
  2. Open Closed Loop, click "Simulate sleeping cell (ESM)," and watch a hub go quiet, glow cyan, and get fixed automatically within a few seconds — no clicking required after that first button.
  3. Try "Simulate cell outage (COC)" on the same tab and watch a completely different kind of automatic fix happen.
  4. Open FCAPS Monitor and hover over any live KPI number — a little chart pops up showing its trend.
  5. Open Overview last — now that you know the pieces, the executive summary should actually make sense.
Everything else in this Documentation tab — the Glossary, the tab-by-tab guide, and the scenario reasoning below — goes into much more technical depth once this section starts feeling familiar.

Glossary — core concepts

The physical radio network

TermMeaning
RURadio Unit — the physical hardware at the antenna. Converts digital signals into radio waves and back.
DUDistributed Unit — handles time-critical, millisecond-scale processing, usually close to the tower.
CUCentralized Unit — handles less time-critical processing, can serve many towers from one place.
Fronthaul / Midhaul / BackhaulThe three transport links: RU↔DU, DU↔CU, CU↔Core — each with progressively looser timing requirements.

Management & intelligence layers

SMOService Management & Orchestration — the top-level management layer overseeing the whole radio network.
Non-RT RICThe slower (>1s) intelligence layer inside the SMO. Hosts rApps. Longer-term optimization and AI/ML training.
Near-RT RICA separate platform, closer to the radio, making real-time decisions (10ms–1s). Hosts xApps.
rApp / xAppAn automated behavior on the Non-RT RIC (rApp, slower/more sophisticated) or Near-RT RIC (xApp, faster/simpler).

Interfaces

InterfaceConnectsPurpose
O-FHRU ↔ DUStandardized fronthaul (split 7.2x) — enables multi-vendor RU/DU.
F1DU ↔ CUMidhaul, split into F1-C (control) and F1-U (user plane).
E1CU-CP ↔ CU-UPSeparates control and user plane within the CU.
E2Near-RT RIC ↔ RU/DU/CUReal-time data up, control down — the xApp channel.
A1Non-RT RIC ↔ Near-RT RICAI/ML-informed policy and enrichment data, passed down.
O1SMO ↔ all RAN elementsFCAPS — fault, config, accounting, performance, security.
O2SMO ↔ O-CloudCloud infrastructure and workload orchestration.
R1rApps ↔ Non-RT RICHow an rApp registers and receives the data it needs.

Radio & performance terms

PRBPhysical Resource Block — the basic unit of radio capacity a tower allocates. High utilization = a busy/crowded tower.
Handover (HO)A phone switching from one tower's coverage to another's while moving. A failure often means a dropped call or lag.
Network AvailabilityPercentage of time the network is up and reachable — cannot exceed 100%, since it's a percentage of uptime.

5G traffic types, radio & QoS terms

TermMeaning
UEUser Equipment — the device connecting to the network (phone, sensor, industrial modem, etc.).
eMBBEnhanced Mobile Broadband — the 5G use case optimized for raw speed and capacity (video, browsing), as opposed to latency or device density.
URLLCUltra-Reliable Low-Latency Communication — the 5G use case optimized for guaranteed, near-instant delivery (industrial control, remote surgery), even at the cost of raw throughput.
mMTCMassive Machine-Type Communication — the third 5G use case pillar, for huge numbers of low-power sensors/devices at once. Not separately simulated in this demo, but named here for completeness alongside eMBB/URLLC.
GBRGuaranteed Bit Rate — a QoS class where the network reserves dedicated capacity for a flow, rather than best-effort sharing.
PDBPacket Delay Budget — the maximum acceptable one-way delay (in ms) for a packet before it's considered a QoS violation.
PERPacket Error Rate — the fraction of packets lost or corrupted in transit; URLLC targets an extremely low PER.
CACarrier Aggregation — combining multiple frequency channels into one connection to boost peak throughput.
DL / ULDownlink (network → device) and Uplink (device → network) — the two directions of radio traffic.
RF / PHYRF: Radio Frequency, the physical airwave signal. PHY: the Physical layer — the lowest processing layer that turns that signal into usable bits.

Slicing, cloud, security & business terms

NSSINetwork Slice Subnet Instance — the RAN's piece of a network slice.
SLAService Level Agreement — a measurable, contractual promise about network quality.
CNF / NF LifecycleCloud-native Network Function; its full lifecycle: instantiate, heal, scale, upgrade, terminate.
Zero-trust / CIS / SBOMZero-trust: nothing trusted automatically, every request checked. CIS: a published secure-config checklist. SBOM: an itemized ingredients list for software.
TCO / OPEX / MTTRTotal Cost of Ownership (full lifecycle cost); Operating Expenses (ongoing running cost); Mean Time to Resolve.
OSS / BSSOperations Support System / Business Support System — the operator's own systems (network ops and billing/customer-facing respectively) that sit north of the SMO.
SME / DMEService Management & Exposure / Data Management & Exposure — the R1 services an rApp uses to discover, request, and consume data and management functions from the Non-RT RIC.
DCData Center — the physical or regional facility hosting cloud-native network functions (e.g. vCU, vDU).

Tab-by-tab guide

A detailed explanation of what each tab shows, how it behaves, and why it exists.

TabWhat it shows
OverviewPlain-language landing page, executive KPIs, and a clickable grid of every functional cluster.
RAN ArchitectureInteractive RU/DU/CU diagram with the full interface map. Hover any interface — in the diagram or the reference table — to highlight it in both places at once; the highlight clears correctly regardless of which of the two you move your mouse away from.
FCAPS MonitorLive fault, performance, configuration, trace, and topology/inventory views — core day-to-day network monitoring. All four scrollable panels (active alarms, live KPIs, configuration changes, trace sessions) share the same fixed box size, sized so all 10 live KPIs fit without scrolling while the others scroll within that same footprint. Active alarms: 100 synthetic alarms with independent Acknowledge and Cancel actions (Cancel removes the alarm from the list entirely). Live KPIs: 10 metrics (availability, call/RRC/handover success rates, DL/UL throughput, PRB utilization, drop call rate, URLLC packet error rate, PDB-compliance latency) — hover any one for a synthetic 24h trend line plus its minimum and maximum points, clearly labeled as illustrative rather than live history. Configuration Management: 100 change entries. Trace sessions: start new sessions on demand; hover a completed session for a synthetic trace analysis snapshot (RRC setup time, DL/UL throughput, packet error rate, handovers, duration).
Closed LoopThe centerpiece: a multi-vendor cell ring (plus a 10,000-cell fleet heatmap) driven by real rApp logic across all 6 rApps — Energy Saving Management, Automatic Neighbor Relation, Mobility Robustness Optimization, Mobility Load Balancing, Cell Outage Compensation, and PCI Reuse Optimization — all enabled by default. Six color-coded trigger buttons inject one condition each, matched one-to-one to the rApp that resolves it. When an rApp acts, the affected cell pulses cyan on the ring for a few seconds so the action is visible, not just logged. If two enabled rApps genuinely want to act on the same cell in the same simulation cycle, that's a real detected conflict — it's logged live to the Conflict Log tab and resolved using whichever of the three strategies is currently selected there. See Scenario Reasoning below for what each button does and why.
Near-RT RICThe fast (10ms–1s) control loop over E2, running xApps — deliberately contrasted against the slower Non-RT RIC loop.
rApp CatalogToggleable rApps, each running genuine reference logic, showing which data services each one consumes.
Import rAppValidates and onboards a JSON rApp descriptor — genuine logic for recognized algorithms, an honest monitoring-only stub for anything else.
Slice LifecycleFull NSSI lifecycle (Create → Modify → Monitor & Assure → Decommission) plus SLA-vs-intent visualization. Clicking through the four stages updates a dedicated panel explaining exactly what input each stage needs and where it would come from in a real deployment — e.g. Create needs an S-NSSAI, QoS profile, and RAN resource template sourced from either the "Express a business intent" panel on this tab or a formal NSMF/OSS slice order; Modify comes from either a manual change request or an automated rApp recommendation reacting to SLA drift.
Conflict LogLive rApp-vs-rApp conflict detection and three resolution strategies: Allow, First-Come-First-Served, Priority-Based Override. Conflicts arrive from two sources: a manual "Simulate a conflict now" button, and genuine conflicts detected automatically on the Closed Loop tab whenever two enabled rApps both act on the same cell in the same cycle.
Data & OpennessA data coverage matrix, a disconnect/reconnect resilience simulator, and self-serve data-routing config.
Cloud & NF LifecycleA live, scrollable, 100-object infrastructure inventory. Click any object to select it, then Instantiate, Heal, Scale, Upgrade, or Terminate — the four action buttons other than Instantiate act on whichever object is currently selected (Instantiate always creates and selects a brand-new one). Status drifts on its own over time: a running object can spontaneously degrade, the way real infrastructure does, giving you something genuine to Heal; and any transient state (scaling/upgrading/healing/instantiating) automatically settles back to "running" after a while even if you never touch it, so nothing stays stuck. A note explains exactly where an Instantiate request's data comes from in practice (a Zero-Touch Rollout pipeline run, a Slice Lifecycle capacity change, or a manual trigger here) and confirms newly instantiated objects appear immediately in this same visibility table.
Zero-Touch RolloutA 13-step governed commissioning pipeline: onboard → discover → deploy → commission → validate → audit. A note explains where a new site integration's inputs actually come from: the software package and its signature from the operator's container/artifact registry, the physical hardware auto-discovered over O1 Plug-and-Play once it's powered on-site, the site configuration generated from planning-tool design inputs via one common templating engine, and the post-launch KPI validation window reading live PM counters from the same feed shown on FCAPS Monitor.
Security & TrustEvidence-based security posture — proof of controls working, not just claims — plus a live artifact-verification log. Explains exactly what "Verify next artifact" checks (a cryptographic signature and checksum against the build-time attestation, proving the artifact wasn't tampered with) and how the next artifact is chosen: not randomly, but the next one in a round-robin deployment queue, with a live "next in queue" indicator so the selection isn't a mystery.
Openness ScorecardSix industry principles, each pre-populated from real state elsewhere in the demo, freely adjustable, with a recalculate button. Documents precisely which action on which tab moves each of the six scores (e.g. toggling security controls on this tab moves "Security by evidence"; enabling rApps moves "Trustworthy automation"), and clarifies slider behavior: dragging one overrides just that dimension with your own manual judgment and immediately recalculates the composite score, and that override persists until you drag it again or press Recalculate, which discards all manual overrides and pulls fresh values from live demo state.

Scenario reasoning — the six Closed Loop trigger buttons

Each button injects one specific, isolated condition designed to be resolved by exactly one of the six rApps — so triggering a scenario and watching the matching rApp fire is a deliberate one-to-one demonstration, not a coincidence. All six rApps are enabled by default, so every button should produce a visible fix within a few seconds (watch for the cyan pulse on the affected cell in the ring, and the corresponding entry in the log).

Simulate load spike (MLB)

Sets a random cell to 88% PRB utilization and "congested" state — simulating a sudden demand surge (a large event, a viral moment). Mobility Load Balancing detects utilization above its 75% threshold and automatically offloads idle-mode users to a neighboring, less-busy cell. Without this, every user on that cell suffers degraded service until an engineer manually intervenes.

Simulate sleeping cell (ESM)

Sets a random cell to 8% PRB utilization — simulating a mostly-idle tower (a business district at 3am, a quiet rural site overnight). Energy Saving Management detects sustained low utilization below its 20% threshold and applies a micro cell-sleep mode. This is the single most quantifiable value case for rApp automation in the industry: radio equipment running at full power to serve almost no users overnight is pure wasted electricity cost.

Simulate cell outage (COC)

Sets a random cell to "alarm" state — simulating a hard site failure (power loss, hardware fault, fiber cut). Cell Outage Compensation automatically widens neighboring cells' coverage via antenna tilt adjustment to partially fill the resulting gap, while the underlying fault is separately raised for a technician to physically repair. Automated compensation reduces customer impact in the window before a human fixes the root cause — it doesn't replace that repair.

Simulate handover failures (MRO)

Pushes a random cell's handover failure rate to 5.5% — simulating a cell whose neighbor relations or radio parameters have drifted out of tune, so devices increasingly fail to hand over cleanly as they move between towers. Mobility Robustness Optimization detects the rate above its 3.0% threshold and incrementally increases handover hysteresis until the failure rate settles back down, typically over a few simulation cycles.

Simulate missing neighbor (ANR)

Flags a random cell as missing a neighbor relation across an EMS boundary — the everyday case of two cells, often from different vendors' management systems, that should know about each other for handover purposes but don't yet. Automatic Neighbor Relation discovers and adds the missing relation. Without ANR, this kind of gap is typically found only when a customer complains about a dropped call at a specific location, then traced back manually.

Simulate PCI collision (PCI)

Flags a random cell with a Physical Cell Identity collision — two nearby cells accidentally broadcasting the same radio ID, which confuses devices trying to distinguish between them and causes intermittent connection problems that are notoriously hard to diagnose from symptoms alone. PCI Reuse Optimization detects the collision, reassigns an ID that respects the minimum reuse distance, and re-verifies PRACH consistency afterward.

Reset to nominal

Regenerates all 12 cells back to healthy baseline values — a demo-usability feature to cleanly return to a calm starting state between scenarios, styled as a neutral action since it isn't injecting any condition.

When two scenarios overlap: the six trigger conditions are designed to be independent, but they aren't mutually exclusive by construction — natural random drift, or triggering more than one scenario in quick succession, can occasionally land two different rApps on the same cell at the same time. When that happens it's a genuine detected conflict, not a scripted one: it gets logged to the Conflict Log tab and resolved live using whichever of the three strategies (Allow / First-Come-First-Served / Priority-Based Override) is currently selected there. Priority order, highest first, is: Cell Outage Compensation, Mobility Robustness Optimization, Mobility Load Balancing, Energy Saving Management, Automatic Neighbor Relation, PCI Reuse Optimization — reflecting roughly how severe each underlying problem is in a real network.

Design principles

  • One file, no backend. Everything runs client-side — nothing depends on a live connection during a demo.
  • Honest about synthetic data. Every screen is labeled as simulation; an imported rApp with unrecognized logic is labeled a monitoring-only stub rather than faked.
  • Grounded in public standards only. Terminology and behavior come from O-RAN Alliance, 3GPP, TM Forum, NIST, and CIS public material — no proprietary vendor documentation or confidential material anywhere.
  • Aggregation over enumeration at scale. The 10,000-cell fleet view uses a canvas heatmap and a ranked exceptions list instead of individual dots, because that's how real monitoring tools actually have to work at scale.
  • Executive readability alongside technical depth. Plain-language framing and hover tooltips throughout, without diluting the technical detail available to someone who wants it.
  • Visible confirmation of every action. Button flashes, toast notifications, and a shockwave highlight confirm every triggered scenario immediately, rather than relying on a scrolling log.
  • Real detection, not scripted outcomes. Where the demo shows a conflict or a fault, it's because the underlying simulation state actually produced one — e.g. the Closed Loop tab checks, every cycle, whether two enabled rApps genuinely want to act on the same cell at the same time, rather than playing back a canned example.
  • State that resolves on its own, imperfectly. Infrastructure objects can spontaneously degrade and transient states (scaling, upgrading, healing) settle back to normal after a while even without intervention — closer to how real infrastructure actually behaves than a demo where nothing changes unless you click something.
  • A fixed, predictable layout footprint. Scrollable panels are sized consistently so the page doesn't visibly grow or shift as more alarms, sessions, or configuration entries accumulate during a live walkthrough.

Acronym index

AcronymFull termAcronymFull term
5QI5G QoS IdentifierO-FHOpen Fronthaul
ANRAutomatic Neighbor RelationOPEXOperating Expenses
BSSBusiness Support SystemOSSOperations Support System
CACarrier AggregationPCIPhysical Cell Identity
CISCenter for Internet SecurityPDBPacket Delay Budget
CNFCloud-native Network FunctionPERPacket Error Rate
COCCell Outage CompensationPnPPlug-and-Play
DL / ULDownlink / UplinkPRBPhysical Resource Block
DMEData Management & ExposureRANRadio Access Network
eMBBEnhanced Mobile BroadbandRF / PHYRadio Frequency / Physical Layer
ESMEnergy Saving ManagementRICRAN Intelligent Controller
FCAPSFault, Config, Accounting, Performance, SecurityRU/DU/CURadio/Distributed/Centralized Unit
GBRGuaranteed Bit RateSBOMSoftware Bill of Materials
HOHandoverSLAService Level Agreement
MLBMobility Load BalancingSMEService Management & Exposure
mMTCMassive Machine-Type CommunicationSMOService Management & Orchestration
MROMobility Robustness OptimizationS-NSSAISlice Selection Assistance Info
NF / LCMNetwork Function / Lifecycle MgmtSONSelf-Organizing Network
NISTNational Institute of Standards & TechnologyTCOTotal Cost of Ownership
NSSINetwork Slice Subnet InstanceUEUser Equipment
O2-DMSO2 Deployment Management ServiceURLLCUltra-Reliable Low-Latency Communication

About these 50 questions

A public-standards-based series of 50 design questions for evaluating any SMO platform — grounded in O-RAN Alliance, 3GPP, TM Forum, ETSI, NIST, and CIS material, not any vendor's internal documentation. 224 specific questions in total, grouped into 8 themes below. Each topic shows exactly where — and how honestly — this demo answers it, including a few places it deliberately doesn't, rather than pretending full coverage.