# orange-opensource/ns-o-ran-flexric architecture

> Architecture diagram of the GitHub repository orange-opensource/ns-o-ran-flexric, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/orange-opensource/ns-o-ran-flexric
- Repository: https://github.com/orange-opensource/ns-o-ran-flexric

## Overview

RIC-TaaP is a system-level O-RAN testing platform: a user configures or runs an ns-3 network scenario, observes simulated KPIs through the RIC, and evaluates xApp control behavior. The README also describes Studio, digital-twin validation, custom KPI reporting, and energy-saving and RF-reconfiguration use cases. The source excerpts were unavailable, so relationships below rely on README statements; paths for the two visible submodule directories are supported by the tree, while other implementation locations are not inferred.

Main entry points: [`mmwave-LENA-oran`](https://github.com/orange-opensource/ns-o-ran-flexric/tree/main/mmwave-LENA-oran) (ns-3 simulation), [`README.md`](https://github.com/orange-opensource/ns-o-ran-flexric/blob/main/README.md) (RIC-TaaP Studio), [`e2sim-kpmv3`](https://github.com/orange-opensource/ns-o-ran-flexric/tree/main/e2sim-kpmv3) (E2 simulator), [`docs/LENA_MODEL_REPORTING_PARAMETERS.md`](https://github.com/orange-opensource/ns-o-ran-flexric/blob/main/docs/LENA_MODEL_REPORTING_PARAMETERS.md) (KPI reporting)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Test platform"]
  node_studio["RIC-TaaP Studio<br/>[README.md]"]
  node_twin["Digital twin validation<br/>[README.md]"]
end

subgraph group_simulation["Network simulation"]
  node_ns3["ns-3 simulation"]
  node_lena["5G-LENA NR"]
  node_sionna["Sionna ray tracing"]
  node_oranmodule["ns-O-RAN module"]
end

subgraph group_ric["RIC control loop"]
  node_e2sim["E2 simulator"]
  node_ric["Near-RT RIC"]
  node_kpi["KPI reporting"]
end

subgraph group_usecases["xApp use cases"]
  node_energy["Energy-saving xApp"]
  node_rf["RF reconfiguration xApp"]
end

node_user(("Platform user"))

node_user -->|"uses"| node_studio
node_studio -->|"runs simulations"| node_ns3
node_studio -->|"observes simulations"| node_ns3
node_ns3 -->|"integrates"| node_lena
node_ns3 -->|"plugs into"| node_oranmodule
node_oranmodule -->|"uses"| node_e2sim
node_e2sim -->|"connects"| node_ric
node_ns3 -->|"reports KPIs"| node_kpi
node_kpi -->|"sends indications"| node_ric
node_ric -->|"sends RC controls"| node_energy
node_energy -->|"monitors KPM reports"| node_ric
node_ric -->|"provides network conditions"| node_rf
node_rf -->|"requests reconfiguration"| node_ric
node_twin -->|"validates scenarios"| node_ns3
node_sionna -->|"provides propagation modeling"| node_ns3

click node_studio "https://github.com/orange-opensource/ns-o-ran-flexric/blob/main/README.md"
click node_twin "https://github.com/orange-opensource/ns-o-ran-flexric/blob/main/README.md"
click node_ns3 "https://github.com/orange-opensource/ns-o-ran-flexric/tree/main/mmwave-LENA-oran"
click node_lena "https://github.com/orange-opensource/ns-o-ran-flexric/tree/main/mmwave-LENA-oran"
click node_e2sim "https://github.com/orange-opensource/ns-o-ran-flexric/tree/main/e2sim-kpmv3"
click node_kpi "https://github.com/orange-opensource/ns-o-ran-flexric/blob/main/docs/LENA_MODEL_REPORTING_PARAMETERS.md"
click node_energy "https://github.com/orange-opensource/ns-o-ran-flexric/blob/main/docs/xapp-energy-saving.md"
click node_rf "https://github.com/orange-opensource/ns-o-ran-flexric/blob/main/docs/xapp-rf-reconfiguration.md"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_studio,node_twin,node_user toneBlue
class node_ns3,node_lena,node_sionna,node_oranmodule toneAmber
class node_e2sim,node_ric,node_kpi toneMint
class node_energy,node_rf toneRose
```

## Components

### Test platform

- [RIC-TaaP Studio](https://github.com/orange-opensource/ns-o-ran-flexric/blob/main/README.md): `README.md`
- [Digital twin validation](https://github.com/orange-opensource/ns-o-ran-flexric/blob/main/README.md): `README.md`

### Network simulation

- [ns-3 simulation](https://github.com/orange-opensource/ns-o-ran-flexric/tree/main/mmwave-LENA-oran): `mmwave-LENA-oran`
- [5G-LENA NR](https://github.com/orange-opensource/ns-o-ran-flexric/tree/main/mmwave-LENA-oran): `mmwave-LENA-oran`
- **Sionna ray tracing**
- **ns-O-RAN module**

### RIC control loop

- [E2 simulator](https://github.com/orange-opensource/ns-o-ran-flexric/tree/main/e2sim-kpmv3): `e2sim-kpmv3`
- **Near-RT RIC**
- [KPI reporting](https://github.com/orange-opensource/ns-o-ran-flexric/blob/main/docs/LENA_MODEL_REPORTING_PARAMETERS.md): `docs/LENA_MODEL_REPORTING_PARAMETERS.md`

### xApp use cases

- [Energy-saving xApp](https://github.com/orange-opensource/ns-o-ran-flexric/blob/main/docs/xapp-energy-saving.md): `docs/xapp-energy-saving.md`
- [RF reconfiguration xApp](https://github.com/orange-opensource/ns-o-ran-flexric/blob/main/docs/xapp-rf-reconfiguration.md): `docs/xapp-rf-reconfiguration.md`

### Other components

- **Platform user**

## Connections

- Platform user → RIC-TaaP Studio: uses (evidence: `README.md`)
- RIC-TaaP Studio → ns-3 simulation: runs simulations (evidence: `README.md`)
- RIC-TaaP Studio → ns-3 simulation: observes simulations (evidence: `README.md`)
- ns-3 simulation → 5G-LENA NR: integrates (evidence: `README.md`)
- ns-3 simulation → ns-O-RAN module: plugs into (evidence: `README.md`)
- ns-O-RAN module → E2 simulator: uses (evidence: `README.md`)
- E2 simulator → Near-RT RIC: connects (evidence: `README.md`)
- ns-3 simulation → KPI reporting: reports KPIs (evidence: `README.md`)
- KPI reporting → Near-RT RIC: sends indications (evidence: `README.md`)
- Near-RT RIC → Energy-saving xApp: sends RC controls (evidence: `README.md`)
- Energy-saving xApp → Near-RT RIC: monitors KPM reports (evidence: `README.md`)
- Near-RT RIC → RF reconfiguration xApp: provides network conditions (evidence: `README.md`)
- RF reconfiguration xApp → Near-RT RIC: requests reconfiguration (evidence: `README.md`)
- Digital twin validation → ns-3 simulation: validates scenarios (evidence: `README.md`)
- Sionna ray tracing → ns-3 simulation: provides propagation modeling (evidence: `README.md`)
