RAN Intelligence with xApps and rApps
- Venkateshu
- Nov 21
- 18 min read
1. Introduction
Radio Access Networks are becoming more software-driven, disaggregated, and automation-centric. To handle the complexity of dense deployments, Massive MIMO, spectrum fragmentation, and diverse traffic profiles, operators are moving toward intelligent control loops in the RAN.This is where O-RAN Alliance’s RAN Intelligent Controller (RIC) architecture—featuring rApps (non-real time, >1 second) and xApps (near-real time, 10 ms–1 s)—comes into play.
These applications allow operators to insert innovation into the RAN without modifying the underlying vendor equipment. They deliver adaptive control, automated optimization, and ML-driven decisions in a multi-vendor environment.
2. RIC Architecture Overview
This diagram illustrates the Open Radio Access Network (O-RAN) architecture with emphasis on the RAN Intelligent Controller (RIC) framework, which is the brain of O-RAN's intelligence and automation capabilities.

2.1 Non-RT RIC (Non-Real-Time RIC)
Operates at timescales of 1 second or longer, focusing on optimization, policy management, and machine learning model training.
Key Components - rApps (Non-RT RIC Applications):
rApp 1 (Traffic Steering Optimization): Analyzes historical traffic patterns and network performance data to create long-term traffic steering policies
rApp 2 (QoS Management & Policy): Develops quality of service policies based on service level agreements and network capacity
rApp 3 (RAN Analytics & ML Training): Performs deep analytics on collected data and trains machine learning models for predictive optimization
Functions:
Long-term network optimization (hours to days)
Policy generation and conflict resolution
ML model training using historical data
RAN configuration management
Multi-cell and multi-vendor coordination
2.2 Near-RT RIC (Near-Real-Time RIC)
Operates at timescales between 10 milliseconds to 1 second, enabling rapid control and optimization decisions.
Key Components - xApps (Near-RT RIC Applications):
xApp 1 (Handover Optimization): Makes real-time decisions on user handovers between cells based on signal quality and load conditions
xApp 2 (Traffic Steering): Dynamically adjusts traffic routing and load balancing across network resources
xApp 3 (QoS Control): Controls resource scheduling and quality of service parameters in real-time
Platform Services:
Conflict Mitigation Engine: Resolves conflicts when multiple xApps try to control the same resources
Subscription Management: Manages E2 interface subscriptions for telemetry data
Shared Data Layer (SDL): Provides common data storage for xApps to share information
Message Router: Routes messages between xApps and RAN components
2.3 Critical Interfaces
A1 Interface (Non-RT RIC ↔ Near-RT RIC):
Carries policy guidance from Non-RT RIC to Near-RT RIC
Deploys trained ML models to xApps
Provides enrichment information (external data like location, traffic forecasts)
Enables the Non-RT RIC to guide the behavior of xApps without direct control
E2 Interface (Near-RT RIC ↔ O-RAN Components):
The most critical interface for real-time RAN control
Uses E2 Service Models (E2SM) to define specific control functions:
E2SM-KPM: Key Performance Measurement for monitoring
E2SM-RC: RAN Control for parameter adjustments
E2SM-NI: Network Interface management
Enables xApps to:
Subscribe to real-time telemetry data
Control RAN parameters (handover thresholds, scheduler weights)
Receive UE-specific and cell-specific measurements
O1 Interface (SMO ↔ All O-RAN Elements):
Management plane interface for FCAPS functions
Configuration management
Fault detection and recovery
Performance data collection (feeds into rApps)
Software lifecycle management
R1 Interface (rApps ↔ Non-RT RIC Framework):
Data exchange between rApps and the Non-RT RIC platform
Enables rApps to access network data and publish policies
2.4 Service Management & Orchestration (SMO)
The SMO layer sits above the RICs and provides:
Overall network orchestration across multiple vendors
Non-RT RIC Framework hosting for rApps
Data collection and aggregation from all network elements
Policy management and distribution
Lifecycle management of network functions
2.5 O-RAN gNB split Architecture
O-CU-CP (Centralized Unit - Control Plane):
Handles RRC (Radio Resource Control) and PDCP control plane functions
Manages UE connections and mobility
O-CU-UP (Centralized Unit - User Plane):
Processes user data through SDAP and PDCP user plane
Can be scaled independently for traffic demands
O-DU (Distributed Unit):
Processes RLC, MAC, and high-PHY layer functions
Closer to the radio for reduced latency
O-RU (Radio Unit):
Performs low-PHY and RF processing
Connected to O-DU via fronthaul interface
2.6 Interworking Flow - The Intelligence Loop
The diagram shows the complete closed-loop optimization cycle:
Data Collection: O-CU-CP, O-CU-UP, and O-DU send performance metrics via O1 to SMO
Long-term Analysis: rApps in Non-RT RIC analyze this data (≥1 second timeframe)
Policy Generation: rApps create optimization policies and train ML models
Policy Deployment: Policies and models flow to Near-RT RIC via A1 interface
Real-time Execution: xApps execute control actions via E2 interface (10ms-1s timeframe)
Immediate Control: RAN elements respond to xApp commands in <10ms
Feedback Loop: New telemetry data flows back through E2 → Near-RT RIC → A1 → Non-RT RIC → O1 → SMO
2.7 Key Benefits of this Architecture
Multi-vendor interoperability: Open interfaces enable mixing components from different vendors
Intelligence hierarchy: Separates long-term optimization (rApps) from real-time control (xApps)
Programmability: xApps and rApps can be developed independently and deployed dynamically
Closed-loop automation: Continuous optimization without manual intervention
Scalability: RIC components can be scaled independently based on network needs
3. Real-Time Use Cases for rApps and xApps
3.1 xApps (Near-RT RIC) – Operational Use Cases
1. Mobility Optimization xApp
A Mobility Optimization xApp is a Near-Real-Time RIC application designed to improve the handover (HO) experience by continuously learning UE mobility behaviour and adjusting mobility control parameters on the fly. It operates in the 10 ms – 1 second control loop range and influences RAN decisions through the E2 interface.

How it works
Learns UE mobility patterns
The xApp collects and analyzes real-time RAN data such as:
RSRP/RSRQ measurements
PCI reports
UE speed estimates
Timing advance (TA) values
Event A3/A5 triggers
HO success/failure logs
RLF (Radio Link Failure) counters
Using these, it forms per-UE or per-cell mobility profiles, identifying:
fast-moving UEs (train, bus, car)
slow-moving UEs (pedestrians)
static users
cluster-based mobility patterns (commuting zones, highways, building edges)
This classification drives decision-making.
Adjusts handover thresholds dynamically
Based on observed patterns, the xApp updates parameters such as:
Key HO Parameters Modified
A3 Offset (dB): threshold for “neighbor becomes better than serving cell.”
TTT (Time-To-Trigger): delay before initiating a handover event.
CIO (Cell Individual Offset): cell-specific biasing to influence HO direction.
A5 thresholds: for bad coverage + better neighbor scenarios.
Hystereses: used to prevent oscillations.
Examples
Increase A3 offset for fast-moving UEs → earlier handovers = fewer drops
Increase TTT for slow pedestrians → reduces ping-pong handovers
Adjust CIO between sectors → load-based mobility balancing
These decisions are applied via E2 control messages in near real time.
Reduces HO failures and ping-pong events
The primary purpose of the xApp is to stabilize handovers without requiring manual optimization.
How It Achieves Fewer Failures
Predictive handovers for high-speed UEs
Pre-emptive HO triggers when coverage holes are detected
Reduction of late HOs by analyzing RLF/RRC re-establishment rates
How It Reduces Ping-Pong
Context-aware TTT and hysteresis tuning
UE-specific mobility classes (pedestrian, stationary)
Power-based or geography-based clustering
Technical Workflow
1. Real-Time Data Collection (via E2SM-KPM & E2SM-RC)
The xApp subscribes to KPIs like:
HO attempts/success/failure
UE measurement reports
Serving/neighbor RSRP deltas
TA values → UE speed estimation
UE mobility class indicators
2. Analytics & Classification
UEs are tagged as:
Fast-moving (>60 km/h)
Medium (5–60 km/h)
Slow/static (<5 km/h)
Cell-level clustering helps detect hotspots, commuting zones, or problematic cell borders.
3. Decision Engine
An ML model or rule-based engine decides:
When to modify HO parameters
How much to tweak (offset + step size)
Whether to apply UE-specific or cell-specific changes
4. Near-Real-Time Action
Updates are sent using E2SM-RC (RAN control) messages to:
adjust CIO
update A3/A5 thresholds
tune TTT
change HO control states
These changes happen on the scale of milliseconds to seconds.
Real-World Example
Urban High-Speed Mobility (Buses/Trams)
Observation:UEs moving along a major arterial road see rising RLFs due to late handovers.
How the xApp fixes it:
Detects high-speed UE cluster → increases A3 offset by +3 dB
Reduces TTT for UEs with high TA drift
Pre-triggers HO before the UE hits the cell-edge dead zone
Result:
HO failures reduced by 30–40%
Interruption time improved for VoNR users
Smoother mobility KPIs across the cluster
Benefits
NRT granular control loops → rapid response to mobility changes
Reduced manual drive-testing and parameter audits
Adaptive behavior for multi-vendor, multi-band RANs
Direct improvement in user QoE during mobility
2. Massive MIMO Beam Optimization xApp
A Massive MIMO Beam Optimization xApp is a near-real-time RIC application that dynamically adjusts beamforming parameters for 5G NR gNBs equipped with large antenna arrays (32T32R, 64T64R, 128T128R, etc.).This xApp operates on a 10 ms – 1s control loop and is designed to maximize spectral efficiency and coverage by intelligently shaping beams in response to real-time user distribution, interference conditions, and traffic patterns.

• Continuously evaluates beam patterns
The xApp subscribes to real-time measurement data through E2SM-KPM and observation models such as:
Inputs Monitored
Beam-level CSI-RSRP / SSB-RSRP
PRB utilization per beam
SINR distributions
UE location clusters (via angle-of-arrival or SRS reciprocity)
Interference per beam index (ICI/ICI maps)
Beam failure events / beam recovery attempts
CSI reports (Type I/II codebook)
Spatial covariance matrices from UL SRS
These metrics allow the xApp to reconstruct a real-time spatial heatmap of where active UEs are located and how beams are performing in each direction.
• Optimizes tilt, azimuth, and power
Beamforming Parameters Controlled
The xApp uses E2SM-RC (RAN Control) messages to adjust:
1. Electrical Tilt
Vertical tilt adjustments change the elevation focus
Useful for targeting users in stands, upper floors, or at ground level
2. Azimuth
Horizontal steering to align beams with directional traffic flows
Helpful in venues, streets, or stadium sectors
3. Per-beam Power Allocation
Dynamic downlink power shaping
Boosting cell-edge beams
Reducing interference toward specific directions
4. Beamwidth and Shape
Narrowing beams for high-density user clusters
Widening beams when users are sparse
5. SRS-based Uplink Beam Selection
Uses uplink SRS to refine downlink beam decisions via reciprocity
• Improves cell-edge throughput
Massive MIMO beams can sometimes leave coverage dips at sector boundaries, especially in dynamic environments. The xApp helps solve this by:
Enhancements Achieved
Lifting SINR at the cell edge by optimizing beam tilt/power
Reducing overshooting and unwanted interference
Improving the probability of selecting an optimal beam
Increasing scheduling fairness for edge UEs
Observed performance gains
Field data from optimization trials typically shows:
15–30% improvement in cell-edge throughput
10–20% reduction in dropped calls in congested areas
Smoother user experience for XR/VoNR at edges
How It Works (Technical Flow)
1. Real-Time Measurement Collection
The xApp receives:
Beam-level PRB usage every 100 ms
UE beam association maps
SRS-based angular domain reports
Interference heatmaps
2. Spatial Analysis Engine
Performs:
K-means or density-based clustering (DBSCAN) to find user clusters
Angular spread + elevation angle estimation
Identification of invalid/poor-performing beams
3. Decision Engine
Applies ML or rule-based logic:
If crowd cluster shifts → steer beams accordingly
If cell-edge SINR dips → increase power/tilt toward edge
If interference rises → rotate/shape beams away from conflict zones
4. E2 Actions Sent to gNB
E2SM-RC commands such as:
RAN parameter update for beam index i
Per-beam power scaling updates
Elevation/azimuth steering adjustments
5. Closed-Loop Monitoring
xApp continuously verifies if KPI improvements occur:
BLER drops
SINR rises
Throughput increases
Fewer beam failure recovery events
If not → roll back the changes automatically.
Example: Stadium or Event Venue
Scenario
A stadium hosts a concert with rapidly changing UE density.Different stands fill at different times, and user clusters move as crowds walk.
How the xApp Responds
Every ~100 ms, the xApp receives updated CSI/SINR/RSRP/traffic maps.
Detects that a large user cluster formed in the north-east stand.
xApp increases electrical tilt + rotates azimuth 10° toward the new cluster.
Power towards other beams is adjusted downward to reduce interference.
Additional narrow beams are formed to target high-density groups.
As crowds shift toward the stage during performance → beams auto-redirect.
Outcome
Consistent throughput even under heavy load
Improved experience for XR, live streaming, VoNR calls
Stable KPIs despite massive user movement
3. Traffic Steering xApp
A Traffic Steering xApp is a Near-RT RIC intelligence module that dynamically shifts users across cells, sectors, and frequency layers based on real-time load conditions, radio quality, and device capabilities.Its primary goal is to prevent congestion, maximize multi-band utilization, and ensure consistent user experience, especially in high-density or fluctuating traffic environments.

• Balances load across cells and carriers
This xApp continuously monitors and evaluates:
Real-time RAN metrics
PRB utilization (per cell / per carrier)
RSRP & SINR distributions
UE capabilities (band support, EN-DC, CA combinations)
CQI / MCS distributions
Buffer occupancy
Active user count per layer
Using these inputs, the xApp detects imbalance such as:
One cell/carrier heavily loaded
Neighboring sectors underutilized
mmWave or high-band carriers lightly loaded
Overloaded mid-band MAC schedulers
Steering techniques used
CIO tuning: biases UE reselection or measurement event thresholds
A3 offset optimization: promotes HO toward less-loaded neighbor cells
Layer prioritization: adjusts inter-frequency thresholds
Dual connectivity placement: moves UEs between LTE anchor / NR secondary cells
Cell reselection priorities (idle mode): to spread users across carriers
The result is better RRM (Radio Resource Management) distribution across the RAN.
• Reduces congestion in hotspots
High-traffic areas—train stations, offices, stadium surroundings—experience sudden load spikes. The xApp reacts by:
Real-time Congestion Detection
PRB usage > 85%
Scheduler queuing delays rising
DL/UL throughput collapsing
High BLER / MCS drop
Disproportionate UE density in a beam/sector
Congestion Mitigation Actions
Offload mid-band UEs to underutilized low-band or mmWave
Redirect UEs to neighbor cells with available PRBs
Expand or shrink cell boundaries via CIO/tilt changes
Preferentially steer high-throughput-capable UEs to high-capacity layers
This ensures hotspots do not drag down overall sector performance.
• Coordinates between sub-6 GHz and mmWave layers
The xApp plays a critical role in multi-band integration, especially where mmWave coverage is patchy but extremely high in capacity.
Key coordination elements
Identifies UEs capable of FR2/mmWave
Measures mmWave beam quality (SS-RSRP, SNR, PDCCH decoding)
Tracks fallback conditions (mmWave blockage, NLOS events)
Estimates dwell time based on mobility patterns
When to steer to mmWave
UE stationary or slow-moving
High QoS service required (live video, XR)
mmWave load < 40%
Good beam condition (SNR margin > X dB)
When to avoid mmWave
High mobility (cars, trains)
Severe blockage predicted
UE only briefly in mmWave coverage
This coordination ensures mmWave is used efficiently—maximizing capacity without unnecessary ping-ponging between layers.
Real Example: Offloading UEs from Overloaded Mid-Band to High-Capacity mmWave
Scenario
A dense shopping district sees heavy mid-band (3.5 GHz) congestion during evening hours.
PRB utilization > 90%
Throughput collapse for edge users
mmWave nodes nearby have < 20% load
How the Traffic Steering xApp Works
Detects congestion in mid-band sectors (via PRB, BLER, MAC backlog).
Identifies UEs with mmWave-capable modems (NSA/SA).
Evaluates mmWave availability:
Beam SNR
LOS/NLOS probability
Blockage predictions
Applies A3 offset bias toward mmWave, raising inter-frequency neighbor priority.
UEs enter mmWave layer → high-capacity, wide-channel performance.
Mid-band load drops → scheduler regains stability.
xApp ensures fast fallback to mid-band when LOS is lost.
Observed Benefits
Mid-band PRB load reduction by 20–40%
Cell-edge throughput increased by 15–25%
High-end users see 2–5× speed boost
More stable VoNR and XR performance
4. RAN Energy Savings xApp
A RAN Energy Savings xApp is a Near-RT RIC application designed to reduce power consumption in the RAN while preserving coverage, mobility performance, and QoE.With Massive MIMO deployments, multi-band layering, and dense small-cell grids, energy costs have become a major OPEX driver. This xApp enables dynamic power management at millisecond-to-second granularity by intelligently activating or deactivating RAN resources based on real-time and predicted demand.
• Predicts low-traffic periods
The xApp continuously monitors and analyzes:
KPIs used to detect low-load
PRB utilization (DL/UL)
Active UE count per cell / layer
Traffic volume (Mbps per sector)
Paging requests
Idle-to-active transition rates
RRC CONNECTED/IDLE ratios
Beam-level utilization (Massive MIMO)
Prediction engine
Although rApps typically handle long-term traffic forecasting, the xApp uses short-horizon prediction, such as:
Time-of-day patterns
UE arrival/departure rates
Sudden drops in UL/DL throughput
Short-term load regression models
This allows the xApp to preemptively reduce energy consumption before the network becomes idle.
• Shuts down carriers, MIMO layers, or small cells without degrading KPIs
Once low-traffic periods are detected, the xApp selectively deactivates portions of the RAN that are not required to maintain QoS and coverage.
Typical actions executed using E2SM-RC
1. Carrier Shutdown / Sleep
Deactivates secondary carriers (e.g., NR 3.5 GHz, LTE CA layers)
Retains anchor carriers to maintain coverage
Reduces PA (power amplifier) use significantly
2. Massive MIMO Layer Muting
Turns off unused antenna ports or MIMO layers
Reduces power consumption in large array radios
Useful during late-night hours in business districts
3. Small Cell Sleep / Standby Mode
Switches small cells to low-power states
Keeps macro cell(s) active for coverage
Reawakens them when traffic returns
4. Beam Muting / Narrowing
Reduces the number of active beams
Saves RF chain and DSP power
Ensuring no degradation of KPIs
The xApp continually checks:
RSRP/RSRQ thresholds
coverage overlap
mobility event frequency
idle mode behavior
If KPIs dip below operator-defined limits → xApp immediately reverses the action.
• Wakes them up intelligently
Efficient wake-up is crucial to avoid:
access failures
RACH congestion
slow coverage restoration
Wake-up triggers
Rising PRB utilization
Increasing RRC connection attempts
Paging bursts
UE movement detected through neighbor reports
Event A1/A2 transitions
Small-cell discovery SSB bursts from UEs
Fast wake-up mechanics
xApp sends an E2SM-RC activation command
Node transitions from Sleep → Warm → Active
Scheduler and HARQ buffers resume
Carrier becomes visible for UE measurements
For Massive MIMO:
additional layers re-activate in parallel
digital beamforming recalibrates on the fly
previous spatial covariance maps restored
This ensures the cell/carrier reactivates seamlessly.
Real Example: Shopping Mall Small Cells Automatically Sleep at Night
Scenario
A large shopping mall is equipped with multiple NR small cells.During the day:
high UE density
heavy mid-band traffic
need full MIMO layers
At night:
building closed
only security staff and occasional machine traffic remain
traffic drops by >95%
xApp Behavior
Around 10 PM, xApp observes:
PRB utilization < 5%
~0–3 active UEs
Idle transitions dropping
xApp checks coverage overlap:
Nearby macro cells provide sufficient baseline coverage
xApp places mall small cells into Sleep Mode.
Throughout the night, xApp monitors:
paging spikes
security camera data uplink bursts
UL noise floor
If activity increases (e.g., cleaning crew arrives):
xApp reactivates one small cell
additional cells wake up only if PRB utilization crosses thresholds
System returns to full active state before mall opening (~8 AM).
Outcomes
Energy savings of 30–50% for small-cell cluster
No coverage gaps thanks to macro-layer fallback
Improved OPEX efficiency across daily cycles
Technical Workflow of RAN Energy Savings xApp
1. Real-time telemetry ingestion
xApp receives per-interval measurements:
PRBs
active UEs
power consumption reports
SINR maps
beam utilization
2. Analysis engine
Evaluates:
traffic decay rates
coverage redundancy
mobility risk
neighbor cell support
mmWave/FR1 fallback scenarios
3. Decision logic
Uses operator-configurable policies:
minimum carrier availability
allowed offloading thresholds
coverage guarantees
latency requirements
4. Execution
Sends control instructions to O-DU/O-CU using:
E2SM-RC for RAN control
beam/carrier/MIMO layer updates
5. Closed-loop feedback
Monitors KPIs and rolls back actions if needed.
Why Energy Savings xApps Matter
✔ Major OPEX reduction (one of the top operator cost drivers)✔ Enables greener networks, supporting sustainability goals✔ Dynamic, demand-driven resource allocation✔ Works across multi-vendor O-RAN deployments✔ Avoids performance degradation through closed-loop control
3.2 rApps (Non-RT RIC) – Operational Use Cases
The Non-Real-Time RIC (Non-RT RIC) is the analytical and policy-intelligence layer of the O-RAN architecture.
It operates at control loops > 1 second (often minutes to hours), performing heavy analytics, ML model lifecycle management, and long-term optimization.
rApps run inside the SMO (Service Management & Orchestration) framework and impact the RAN by generating policies, configuration updates, and ML models that guide the near-RT RIC and its xApps.
Below are key rApps used in modern intelligent RAN deployments.
1. ML Model Training rApp
• Performs long-term analytics
This rApp ingests a wide variety of performance, configuration, and mobility data, including:
PM counters (24-hr to weekly logs)
UE mobility traces
Beam usage statistics
Interference maps
Energy consumption logs
Traffic distribution profiles
It supports large time-scale learning that xApps cannot perform in real time.
• Trains ML models for mobility, interference, and energy patterns
This rApp performs batch ML training or periodic retraining of models such as:
Mobility prediction models
Congestion prediction models
Traffic classification models
Beam quality prediction models
Energy-saving opportunity models
Anomaly/scoring models
These models help predict how the RAN will behave in the near future.
• Pushes updated models to xApps
Once trained, the rApp distributes updated ML weights, thresholds, or policy parameters to xApps through the A1 interface, such as:
Updated handover prediction model → Mobility xApp
New interference map → Interference Management xApp
Revised energy profiles → Energy Savings xApp
This ensures xApps operate with fresh intelligence.
Example
Nightly retraining of mobility prediction based on 24-hour UE movement data.The rApp processes all mobility logs at midnight, updates the mobility model, and pushes it to the Mobility xApp before the morning traffic peak.
2. RAN Configuration & Policy Automation rApp
• Automates feature activation/deactivation
This rApp applies long-term network policies such as:
enabling or disabling features (e.g., CA, DSS, multi-TRP, massive MIMO modes)
adjusting network-wide parameters
configuring slicing, QoS, or RRM settings
setting macro-level thresholds
It prevents manual misconfiguration and ensures consistent parameterization across thousands of cells.
• Creates policies for xApps (constraints & objectives)
This rApp does not control the RAN directly; instead, it defines:
objectives (e.g., maximize cell-edge throughput)
constraints (e.g., do not exceed defined power limits)
service targets (latency, throughput, coverage)
safety boundaries (avoid HO instability, avoid beam oversteering)
These are sent to xApps through the A1 policy framework.
Example
Setting a max allowable RLF (Radio Link Failure) rate for the Mobility xApp.If RLF crosses the threshold, xApp adjusts HO parameters until it returns to acceptable levels.
3. Traffic Forecasting rApp
• Predicts upcoming traffic surges
This rApp uses:
historical traffic data
weather data
location patterns
event calendars
holiday/weekend behavior
ML time-series forecasting (ARIMA, LSTM, Prophet, etc.)
It learns daily/weekly traffic cycles and identifies upcoming spikes.
• Instructs xApps to pre-allocate resources
Before congestion occurs, the rApp proactively tells xApps to:
boost massive MIMO layers
pre-activate mmWave sectors
expand high-capacity carriers
move sleeping small cells into warm mode
prepare load-balancing strategies
This avoids reactive congestion collapse.
Example
Predicting crowd buildup for concert events or metro rush hour.If the rApp predicts a 6 PM surge near a transit hub, it instructs the Traffic Steering and Beam Optimization xApps to prepare high-capacity configurations in advance.
4. Anomaly Detection rApp
• Performs pattern analysis on PM counters
The rApp uses long-term RAN metrics such as:
BLER, RLF, HO failures
SINR/RSSI distributions
Beam performance anomalies
Latency spikes
PRB imbalance across layers
Unexpected TDD pattern discrepancies
It compares them against historical baselines or ML anomaly detection models.
• Detects RAN performance outliers
The rApp identifies:
failing sectors
faulty antenna ports
sudden interference sources
beam misalignment
scheduling anomalies
degraded backhaul conditions
• Instructs xApps to correct anomalies
Once an issue is found, the rApp triggers:
Beam Optimization xApp → fix tilt/beam misalignment
Traffic Steering xApp → shift load away from problematic cell
Mobility xApp → update HO thresholds
Energy xApp → disable problematic MIMO chains
These actions are delivered via A1-based policies to the near-RT RIC.
Example
Identifies a sector with abnormal BLER and triggers the Beam Optimization xApp.The rApp detects unusually high BLER during off-peak hours → suspects beam mis-steering → instructs xApp to re-optimize beams → SINR improves.
4. Data Flow Between rApps and xApps
Step-by-step flow:
rApp analyzes historical KPIs (hourly/daily trends).
rApp pulls PM/KPI datasets from SMO data stores ( O1 / NWDAF / telemetry DBs ).
Typical inputs: hourly PRB usage, HO attempts, RLF counts, SSB/CSI reports, beam stats, UE counts, per-cell energy logs.
rApp runs batch analytics or retrains ML models (e.g., LSTM/Prophet for time-series, classification for mobility classes).
rApp creates a policy (e.g., HO threshold rules)
Objective: human-readable goal (e.g., “reduce HO failure rate < 0.5%”).
Constraints: safety bounds (max A3 offset = +6 dB, min TTT = 40 ms).
Scope: target cells/clusters, UE classes, time window.
Parameters: exact parameter values/changes or ML model handle.
Priority & TTL: priority level and time-to-live for the policy.
Model reference: pointer to model version (if applicable).
rApp sends policy → Non-RT RIC → A1 interface → Near-RT RIC.
rApp registers / authenticates with Non-RT RIC / SMO.
Non-RT RIC uses the A1 interface to push the policy to the Near-RT RIC. The A1 exchange can be:
PolicyUpdate (full parameter set) or
ModelUpdate (model weights or model handle + endpoint).
A1 supports policy types: decision policies, optimization objectives, model descriptors, and guardrails.
xApp receives the policy, then applies real-time decisions via E2 interface.
xApp behavior on receipt
Validate policy (syntax, schema, signature, TTL).
Apply policy to its decision engine — either:
Direct param injection (xApp converts policy to E2 actions), or
Model swap (xApp loads new model weights and starts inference).
E2 actions
xApp uses E2SM-RC (E2 Service Model — RAN Control) or vendor-specific E2SM flavors to send control messages to gNB (O-CU / O-DU):
Examples: update A3 offset, set TTT, change beam pointer, alter per-beam power, carrier on/off.
E2 messages are lightweight and optimized for near-real-time control.
gNB adapts parameters (offsets, beams, scheduling).
The O-CU/O-DU (or vendor gNB stack) receives E2 commands.
It validates commands against local constraints and vendor-specific capabilities.
Scheduler/RRM updates internal tables (e.g., adjust A3 offset table, change PRB mapping, update beam table entries, enable/disable carriers).
RAN metrics return via E2 feedback.
After actions, gNB sends updated KPIs via:
E2 KPM/MP reports back to Near-RT RIC (subscribed measurement frequency).
O1 telemetry flows to SMO/Non-RT RIC for long-term logging.
rApp continually updates ML models and policies.
Continuous learning
rApp ingests post-action telemetry (from O1 and NWDAF).
Evaluates model performance (A/B test, online metrics).
If drift detected or KPI goals unmet, retrain or adjust hyperparameters.
Policy lifecycle
Policies can be automatically adjusted (auto-tuning) or require human operator approval based on governance settings.
Non-RT RIC maintains policy history, rollbacks, and audit trails.

5. Deployment in Real Field Environments
Deploying xApps/rApps in real networks involves multiple steps. Here's how operators typically do it:
Step 1 — Environment Preparation
Kubernetes cluster for RIC platforms (Near-RT and Non-RT RIC)
SMO platform provisioning
Integration of O-DU/O-CU with E2 agent
Network slicing, telemetry, and monitoring setup
Common tools:
ONAP, O-RAN OSC, VMware Telco Cloud, Nokia Digital Operations Center
Step 2 — Onboarding xApps and rApps
Applications are packaged as containers (Helm charts / Docker images).
Procedure:
Operator uploads application package to SMO
SMO validates interfaces (A1/E2SM compatibility)
rApp/xApp lifecycle management registered
App deployed via K8s container orchestration
Step 3 — Integration with RAN
Configure A1 (policies, ML models)
Configure E2 (control messages to RAN nodes)
Validate compatibility with vendor O-DUs and O-CUs
Challenges:
Vendor-specific E2SM profiles
Different scheduler behaviors
Latency constraints for closed-loop control
Step 4 — Field Testing & KPI Validation
KPIs commonly measured:
Handover success rate
Throughput (DL/UL)
Cell-edge performance
Interference levels
Energy consumption
RLF/RRC drop rate
Operators typically do a 3-stage rollout:
Lab testbed
Field trial (limited area)
Commercial deployment
Step 5 — Continuous Optimization
rApps retrain ML models periodically
xApps update real-time decisions based on new policies
Operators feed data into analytics dashboards (Grafana, Prometheus)
6. Example Real Deployment Scenario
Scenario: Mobility Optimization in Dense Urban Cluster
Data Collection:
UE traces show high HO failures on a set of streets.
rApp Training:
rApp learns optimal HO offsets based on:
UE speeds
Time-of-day patterns
RSRP/RSRQ/beam reports
Policy Creation:
rApp generates mobility policy such as:
“For UEs traveling > 40 km/h, expand A3 offset by +1 dB between 6–9 PM.”
Policy Transfer:
Sent to Near-RT RIC via A1.
Near-RT xApp Execution:
xApp applies rules in near real-time each time UE reports measurement events.
Outcome:
HO failures drop by 32%
Ping-pong events reduce by 25%
User-perceived throughput improves
This chain shows the intended synergy between rApps (policy-level intelligence) and xApps (fast control loops).
7. Summary
RAN Intelligence powered by rApps and xApps is becoming a foundational part of 5G Advanced deployments. These modular applications allow operators to bring ML-driven optimization into the RAN without touching gNB firmware, enabling:
Predictive mobility
Dynamic traffic steering
Smarter beamforming
Real-time interference mitigation
Energy efficiency automation
With the rise of disaggregated networks and Open RAN adoption, rApps/xApps will be central to next-generation RAN automation and will also serve as the stepping stone to 6G’s goal of fully autonomous networks.
8. References
O‑RAN Alliance — Specifications page (architecture, RIC, interfaces)https://www.o-ran.org/specifications o-ran.org
"Data-Driven Design of 3GPP Handover Parameters with Bayesian Optimization and Transfer Learning” (arXiv)https://arxiv.org/abs/2504.02633 arXiv
“RIC-O: Efficient placement of a disaggregated and distributed RAN Intelligent Controller…” (arXiv)https://arxiv.org/abs/2301.02760v1
“Conditional Handover in 5G: Principles, Future Use Cases and FR2 Performance” (arXiv)https://arxiv.org/abs/2204.01283
“Handover Parameters Optimisation Techniques in 5G” (MDPI Sensors, 2021)https://www.mdpi.com/1424-8220/21/15/5202
“Mobility Performance Analysis of RACH Optimization and Handover in 5G NR” https://arxiv.org/pdf/2309.09840.pdf
ETSI TS 103 982 V8.0.0 “O-RAN Architecture Description (O-RAN.WG1.OAD-R003-v08.00)”https://www.etsi.org/deliver/etsi_ts/103900_103999/103982/08.00.00_60/ts_103982v080000p.pdf
AWS “Open RAN Architecture on AWS – O-RAN Evolution” Whitepaperhttps://docs.aws.amazon.com/whitepapers/latest/open-radio-access-network-architecture-on-aws/o-ran-evolution.html

