Skip to content

Service Models

A Service Model (SM) defines what an xApp can observe and control on an E2 node. airpuls ships six SM plugins, each a standalone static library (libe2sm_<sm>.a) that is the single source of truth for that SM's IE structs, codec, and builders — linked identically by the RIC, the agent, the emulator, and the SDK.

This page is the operator-facing catalogue: which SMs exist, what they carry, and which styles are implemented today. For the xApp-author's guide to each SM — subscription builders, indication data models, code in Python / Go / C — see the SDK Service Model Guides.

The RAN Function ID is node-local

Each SM has a globally-unique OID. The "RAN Function ID" below is only the default the in-tree agents and emulator advertise — per E2AP §9.2.8 the ID is node-local, and the RIC resolves each node's functions to plugins by the advertised OID at E2 Setup / RIC Service Update. A conformant peer may advertise an SM under any ID, so xApps resolve capabilities by OID, never by a hard-coded ID.

The three axes

A Near-RT RIC observes and acts on the RAN along complementary axes, one per SM:

Service model Axis What it gives an xApp
E2SM-KPM Measurement Aggregated performance counters (throughput, PRB usage, delay)
E2SM-RC Radio control Per-UE observation and decisions (RRC events, handover, cell info)
E2SM-CCC Configuration Observe and change managed-object config (energy saving, cell config)
E2SM-LLC Lower layers Raw lower-layer info & measurements (SRS/CSI copy, DL RLC buffer status)
E2SM-EPI Latency probe Full-trip RTT measurement (airpuls vendor SM)
E2SM-AIR Sensing Per-UE SRS channel estimates — SNR, timing advance, channel (airpuls vendor SM)

Catalogue at a glance

SM OID Default RAN Func ID Wire Implemented services
KPM 1.3.6.1.4.1.53148.1.3.2.2 2 APER REPORT (Styles 1–5)
RC 1.3.6.1.4.1.53148.1.1.2.3 3 APER REPORT (1–4), INSERT (3/1), CONTROL (3/1), QUERY (2)
CCC 1.3.6.1.4.1.53148.1.1.2.4 4 JSON REPORT (1–2), CONTROL (1–2)
LLC 1.3.6.1.4.1.53148.1.1.2.5 5 APER REPORT (1–2)
EPI 1.3.6.1.4.1.99999.3.1.1 100 APER CONTROL (1)
AIR 1.3.6.1.4.1.99999.3.1.2 101 APER REPORT (1), QUERY (1)

The two …99999… OIDs are placeholder Private Enterprise Numbers pending an IANA allocation for the airpuls vendor SMs.

E2SM-KPM — Key Performance Measurement

Spec: O-RAN.WG3.E2SM-KPM v03.00. REPORT-only per spec.

Full v03.00 coverage — all five REPORT styles:

Style Name UE scope
1 E2 Node Measurement Cell-level
2 E2 Node Measurement for a single UE Exactly 1 UE
3 Condition-based, UE-level Per-measurement conditions
4 Common condition-based, UE-level ≥1 global condition
5 E2 Node Measurement for multiple UEs ≥2 UEs

E2SM-KPM author's guide

E2SM-RC — RAN Control

Spec: O-RAN.WG3.E2SM-RC-v01.03 (QUERY on R004-v09.00).

Service Implemented
REPORT Styles 1–4 (full coverage): Message Copy, Call Process Outcome, E2 Node Information, UE Information
INSERT Style 3 / Action 1 (Connected Mode Mobility Control — Handover) with full drop / accept / manipulate round-trip
CONTROL Style 3 / Action 1 (Handover) — standalone and as the INSERT response
QUERY Style 2 (UE Information Query) — one-shot snapshot of known UEs, over the RIC Query procedure

The RC INSERT round-trip lets an xApp intercept a gNB-initiated handover before it fires and drop it, accept it, or manipulate it (accept toward a different target cell). Deferred: RC CONTROL Styles 1/2/4–7, INSERT Styles 1/2/4, and the POLICY service.

E2SM-RC author's guide

E2SM-CCC — Cell Configuration and Control

Spec: O-RAN.WG3.TS.E2SM-CCC-R004-v06.00 — JSON on the wire (the spec's §9.5 ASN.1 transfer syntax is Void; the normative model is the §9.4 JSON Schema). The RIC routes CCC by RAN Function ID and forwards the JSON OCTET STRINGs untouched.

Service Implemented
REPORT Style 1 (node-level config), Style 2 (cell-level config)
CONTROL Style 1 (node config & control), Style 2 (cell config & control)

CCC exposes the RAN's configuration state — the same managed objects an O1/NETCONF manager touches — and lets an xApp read it and write the writable parts (e.g. cell energy saving). QUERY is deferred; INSERT and POLICY are Void in the spec.

E2SM-CCC author's guide

E2SM-LLC — Lower Layers Control

Spec: O-RAN.WG3.TS.E2SM-LLC-R004-v01.00.

Style Name Trigger Carries
1 LLI Copy On SRS / CSI arrival Raw SRS and/or CSI, copied verbatim
2 Periodic Every N ms DL RLC buffer status (per UE, per LCID)

LLC exposes the RAN's lower layers directly — raw PHY bytes and buffer depths that live below the measurement-counter layer. REPORT-only today; CONTROL is deferred, INSERT/POLICY/QUERY are Void in the spec.

E2SM-LLC author's guide

E2SM-EPI — Echo Probe Indicator (vendor SM)

Spec: airpuls vendor SM (E2SM-EPI-v01.00-airpuls.asn). A single-purpose, CONTROL-only SM: the probe is a Control Request and the response is a Control Outcome carrying timestamps.

Style Name
1 Echo Probe

EPI exists for end-to-end full-trip latency measurement. The Control Outcome carries eight timestamps across three clocks (xApp, RIC, agent) compressed into five single-clock deltas, so the RIC's latency histograms can attribute RTT to the southbound leg, the northbound leg, agent service time, and RIC routing. The SDK runs a default-on EPI probe driver, so these histograms populate without a dedicated xApp.

E2SM-EPI author's guide

E2SM-AIR — SRS Channel Estimates (vendor SM)

Spec: airpuls vendor SM (E2SM-AIR-v01.00-airpuls.asn).

Service Style Name
REPORT 1 SRS UE Estimate
QUERY 1 UE PHY Configuration

AIR exposes per-UE SRS-derived measurements the gNB PHY already computes during uplink channel estimation: wideband and per-RB SNR, SRS-based Timing Advance, and the estimated frequency-domain channel per receive antenna / SRS port. It complements LLC's Style 1 raw pre-estimation SRS tap — AIR taps after channel estimation. The QUERY Style 1 pulls a per-UE CellGroupConfig (the source of per-UE SRS-Config and UE discovery).

E2SM-AIR author's guide

Deferred styles

The core protocol set is complete; notable SM-level gaps tracked for future releases:

  • RC — CONTROL Styles 1/2/4–7 and Style 3 Actions 2–7; INSERT Styles 1/2/4; the POLICY service
  • CCC — QUERY Styles 1–2 (needs the RIC Query procedure)
  • LLC — CONTROL Styles 1–2
  • KPM — R004 v07 extensions (Event Trigger Format 2, Style 255)

The authoritative, always-current catalogue — with every Action Definition / Header / Message format number and the cross-field validation each style enforces — is docs/specs/compliance/supported-service-models.md in the source tree.