Skip to content

xApps Overview

airpuls ships twelve reference xApps in-tree. They are working examples built on the SDK — read them to learn a pattern, run them as-is, or fork them as a starting point. Each folder is language-partitioned (python/, go/, c/) around one shared xapp.yml.

The catalog

xApp Service model(s) Languages Category
kpm-monitor KPM (REPORT 4) Python · Go · C Monitoring
rc-monitor RC (REPORT 1/4 + QUERY 2) Python Monitoring
cell-tracker RC (REPORT 3) Python Monitoring
llc-monitor LLC (REPORT 2) Python Monitoring
ccc-monitor CCC (REPORT 1/2 + CONTROL 2) Python Monitoring
ho-trigger KPM + RC (CONTROL 3/1) Python Control
ho-cell-block RC (INSERT 3/1 + CONTROL + QUERY 2) Python · C Control
ran-sensing LLC + CCC + AIR Python Sensing
srs-estimates AIR (REPORT 1) Python Sensing
xapp-replay none — replays a recording Python Testing
stress-test-epi EPI (NodeProbe) Go Benchmark
y1-termination KPM → Y1 REST Python Gateway
qos-enforcer A1 policy + KPM (REPORT 4) Python Policy

Categories

  • Monitoring


    Read-only telemetry xApps that subscribe and log / stream: KPM measurements, RC RRC events and cell discovery, LLC RLC buffers, CCC config snapshots.

  • Control


    xApps that act on the RAN — a KPM-driven handover trigger and an RC INSERT handover gate.

  • Sensing


    ISAC / DSP xApps that turn the SRS/CSI PHY tap and per-UE channel estimates into spectra, angle-of-arrival, micro-Doppler, and channel impulse responses.

  • Benchmark


    A multi-xApp EPI stress harness that load-tests the RIC across an N × M (xApps × nodes) matrix with a live scale-up/down API.

  • Gateway


    An O-RAN Y1 termination that re-exposes KPM-derived RAN analytics over a northbound REST API.

Running any xApp

Every xApp reads one xapp.yml and takes only -c/--config. Run natively or as a container:

# Native (after building the SDK + xApp):
python3 xapps/kpm-monitor/python/main.py -c xapps/kpm-monitor/xapp.yml

# Container:
docker run --rm --network=host \
  -v $(pwd)/xapps/kpm-monitor/xapp.yml:/etc/airpuls/xapp.yml \
  kpm-monitor-python:latest -c /etc/airpuls/xapp.yml

Point ric.endpoint in the xapp.yml at your RIC's northbound IPC endpoint. See SDK → Configuration and Packaging.