Duranta is a permissively-licensed OpenAirInterface (OAI) fork — the nr-softmodem gNB/O-DU binary paired with a native OAI CN5G core. No license server, no per-seat cost. This page is the map: a short introduction to the framework, then four tutorials, simplest to most advanced.
Version in use (2026-09-17): Duranta
2026.w37(upstream commit1143f75) plus the COSMOS patch set, shipped in imageduranta.ndz=duranta-20260917. The previous image (duranta-20260907c) carried2026.w36. Two things changed with w37 that affect commands you may have copied from older notes: the--saflag is gone (SA is the default, and passing it aborts the softmodem), and the soft O-RUnr-orunow works end to end.
Every Duranta tutorial on COSMOS shares the same building blocks: nr-softmodem (/opt/duranta/cmake_targets/ran_build/build/) as the gNB or O-DU, OAI CN5G as the 5G core, libconfig .conf files for configuration, and a duranta-<date>.ndz node image (the duranta.ndz symlink always points at the latest one). What changes between tutorials is how the radio is attached — nothing else about the stack:
nr-oru, driving a USRP) or a real commercial O-RU (Benetel, LiteOn, Foxconn).All four are standardized on test PLMN 00101, UE pool 192.168.100.0/22 (gateway 192.168.100.1, with internet access), and DNN oai, so what you learn about the UE side in one tutorial carries straight into the next. For how Duranta compares to COSMOS's other two 5G SA stacks (OCUDU/srsRAN, Amarisoft), see the 5G SA platforms overview; the same three commercial O-RUs driven by OCUDU instead of Duranta are covered in OCUDU (srsRAN) 5G SA — O-RAN 7.2 split: Benetel, LiteOn & Foxconn O-RUs.
| Component | Role | Where it lives |
|---|---|---|
nr-softmodem |
the gNB binary — gNB in the direct modalities, O-DU/O-CU in the 7.2 split | /opt/duranta/cmake_targets/ran_build/build/ |
nr-uesoftmodem |
soft UE, used over RFsim in the soft-only modality | same build directory |
nr-oru |
OAI's own soft O-RU, driving a USRP over the 7.2 fronthaul (working since 2026-09-16) | same build directory |
oran_fhlib_5g_mplane |
the fronthaul library including a NETCONF/M-Plane client | built alongside the softmodem |
| OAI CN5G | the 5G core — containers oai-amf, oai-smf, oai-upf, mysql, oai-ext-dn |
Docker, on the RAN host or a core host |
libconfig .conf |
cell, fronthaul and core wiring | /root/oru/*.conf and the shipped configs/ |
duranta-<date>.ndz |
the node image; duranta.ndz always points at the newest |
COSMOS image store |
Unlike OCUDU, nr-softmodem is a NETCONF client: it provisions a commercial O-RU over M-Plane and must hold the session, because under O-RAN supervision the radio stops transmitting once no subscribed client remains. The same radio therefore needs the opposite management mode under Duranta and OCUDU — and the mode also changes the eAxC map. See O-RAN on COSMOS.
| # | Tutorial | Modality | What it needs | Start here if… |
|---|---|---|---|---|
| 1 | Soft-only — gNB + nrUE + OAI CN5G over RFsim | No radio (RFsim) | any COSMOS server, ~20 min | …you want to see 5G SA register and pass traffic end to end with zero hardware to reserve. |
| 2 | Over-the-air — gNB + OAI CN5G + commercial modem | USRP, direct | sb1/grid + a USRP + a Quectel modem, ~60 min |
…you want real RF and a real commercial UE, without the O-RAN 7.2 split. |
| 3 | O-RAN 7.2 split, soft O-RU — O-DU ↔ nr-oru on a USRP |
7.2 split, soft O-RU (working since 2026-09-16) | two E810 servers + a USRP (osc: srv19 + srv20/B210) | …you want to see the O-RAN 7.2 fronthaul (eCPRI, PTP S-plane) with full visibility into both ends, using OAI's own O-RU implementation. Work in progress — fronthaul/cell/PRACH work; UE registration does not complete yet. |
| 4 | O-RAN 7.2 split, vendor O-RUs — Benetel, LiteOn & Foxconn | 7.2 split, commercial O-RU | an osc E810 server + a vendor O-RU + a Quectel modem, ~90–150 min |
…you want the production shape: a real commercial radio over 7.2x. Benetel and LiteOn work end to end (DL 268/165 Mbit/s); Foxconn is documented as a known-open blocker. |
The best measured result for each modality on the three COSMOS server platforms, with the date and image it was measured on. The RAN server's CPU platform is the column that matters; host names are deliberately left out. Each linked tutorial's own Performance section has every run, the method, and the older numbers.
| CPU platform | Cores / threads |
|---|---|
| A — 2× Intel Xeon Gold 6226 @ 2.70 GHz (Cascade Lake) | 24 cores / 24 threads (HT off) |
| B — 2× Intel Xeon Gold 6126 @ 2.60 GHz (Skylake-SP) | 24 cores / 48 threads (HT on) |
| C — 1× AMD EPYC 9355P (Zen 5) | 32 cores / 32 threads (SMT off), one NUMA node |
| Modality | Radio / UE | Platform | DL, Mbit/s | UL, Mbit/s | Date · image |
|---|---|---|---|---|---|
| Soft-only (RFsim) | nr-uesoftmodem |
A | 136–158 | 81–88 | 2026-09-17 · duranta-20260917 (w37, three-mode parity PASS) · earlier 148/80 on 2026-09-07 |
| B | 114–115 | 62.4–62.7 | 2026-09-08 · duranta-20260907c (three-mode parity) |
||
| C | 442–447 | 198–201 | 2026-09-14 · duranta-20260907c (three-mode parity; all modes agree) |
||
| Over-the-air (N310, n41 40 MHz) | Quectel RM520N-GL | A | 114–116 | not recorded in this run | 2026-09-17 · duranta-20260917 (w37; 2 of 3 modes, tx_late 0 — the third lost its gNB to a start-time TX-late flood) |
| B | 102 | 8.5 | 2026-09-04 · duranta-20260905b |
||
| C | not measured — rrail has no USRP of its own | — | — | ||
O-RAN 7.2, soft O-RU: nr-oru + USRP B210 (20 MHz n78, 51 PRB, 1×1) |
Quectel RM520N-GL | B | 30.7–34.3 | 7.3 | 2026-09-16 · duranta-20260916 (osc: srv19 O-DU + srv20 O-RU; RSRP −91, SINR 18) |
| O-RAN 7.2, vendor O-RU: Benetel RAN650 (100 MHz n78) | Quectel RM520N-GL | B | 268 | 64.6 | 2026-09-07 · duranta-20260907c |
Amarisoft lteue, 1 UE |
B | 143 | 57.1 | 2026-09-11 · duranta-20260907c |
|
| Quectel RM520N-GL | C | 222–261 | 51.4–54.9 | 2026-09-14 · duranta-20260907c (tutorial bundle, Ansible mode, 2 runs) |
|
| Quectel RM520N-GL | A | 267 | 45.2 | 2026-09-17 · duranta-20260917 (w37, manual mode; RSRP −54) · earlier 270–287 / 50.0–50.2 on 2026-09-14 |
|
| O-RAN 7.2, vendor O-RU: LiteOn FlexFi (100 MHz n78) | Quectel RM520N-GL | A | 185–202 | 43.7–46.9 | 2026-09-14 · duranta-20260907c (3 runs) |
| Quectel RM520N-GL | B | 165 | 28.8 | 2026-09-07 · duranta-20260907c |
|
| Quectel RM520N-GL | C | 172–200 | 44.1–48.3 | 2026-09-14 · duranta-20260907c (3 runs) |
|
| O-RAN 7.2, vendor O-RU: Foxconn RPQN-7801 | Quectel RM520N-GL | B | not measured — registration never completes | — | 2026-09-05 (status only) |
The O-RAN 7.2 rows use a 100 MHz carrier and the over-the-air rows 40 MHz, so compare within a modality, not across them. Soft-only has no radio in the loop, so it measures the CPU alone: the AMD EPYC runs RFsim at about 3× either Xeon platform. UL on the 7.2 rows is bounded by the DL-heavy DDDSU TDD pattern, not by the platform.
omf-duranta; PHY/libconfig reference — skill oai-gnb; core — OAI CN5G (docker); UE — skill quectel-5g-modem.github.com/duranta-project/openairinterface5g — tag 2026.w36 + COSMOS patches; OAI docs at gitlab.eurecom.fr/oai/openairinterface5g.Author(s): COSMOS team · Last verified: 2026-09-10 (landing page; see each linked tutorial for its own verification date; performance table compiled 2026-09-14 from those tutorials' measurements) · Tested image/release: duranta.ndz · Tags: duranta, oai, 5g, sa, oran, overview