COSMOS ships three interoperable 5G Standalone (SA) software stacks as ready-to-run node images. All three are standardized on the same test PLMN (00101), the same UE IP pool (192.168.100.0/22, gateway 192.168.100.1, with internet access), and the same commercial UE, so you can pick a stack by what you want to learn and move between them without re-learning the UE side. This page is the map; each row links to a focused, copy-pasteable tutorial.
| Platform | What it is | Binary / core | License | Image |
|---|---|---|---|---|
| Amarisoft | Commercial 5G stack (gNB + unified 4G/5G core + soft UE) | lteenb + ltemme + lteue |
Floating network license (tags gNB / 5gC / ue) | amarisoft.ndz |
| OCUDU | Permissively-licensed CU/DU built on srsRAN Project | gnb + native Open5GS core |
none | ocudu.ndz |
| Duranta | An OpenAirInterface (OAI) fork | nr-softmodem + OAI CN5G core |
none | duranta.ndz |
omf load -i <platform>.ndz always pulls the latest build (the simple names are symlinks to the newest dated image). The soft UE image is lte5gue.ndz. Each platform has its own overview page. It gives a short framework intro, the platform's tutorials, and a performance table by modality and CPU platform: Amarisoft · OCUDU (srsRAN) · Duranta (OAI).
Every stack runs in one of two base ways, and two of the three additionally support a real O-RAN 7.2 fronthaul split:
Soft-only (no radio). gNB and UE talk over a software radio (OCUDU uses ZMQ, Duranta uses RFsim) on one node — no SDR, no RF, no reservation of radio hardware. Runs on any COSMOS server node. Best for learning the stack, CI, and protocol work; throughput is not air-limited, so the server's CPU sets it (see each platform's overview page).
Over-the-air (USRP). The gNB drives a USRP SDR (NI N310 / X310) directly and the UE attaches over a real n41 (2.6 GHz) air interface. Runs on the sb1 and grid domains (which have the USRP radios). Real RF, real MCS, real throughput, and a commercial COTS modem as the UE.
O-RAN 7.2 split. The low PHY moves out of the gNB into a separate O-RU, connected over eCPRI with PTP timing, instead of the gNB driving a USRP itself. The O-RU is either a commercial (vendor) O-RU (Benetel RAN650, LiteOn FlexFi or Foxconn RPQN-7801) or a soft O-RU driving a USRP (OAI's nr-oru for Duranta, ProtO-RU for OCUDU). Status as of 2026-09-15:
nr-oru on a USRP) works end to end since 2026-09-16: DL 30.7–34.3 / UL 7.3 Mbit/s on a B210.The earlier "Quectel user-plane bug" turned out to be a USB fault on the UE host, not a RAN problem. The modem's USB link was dropping frames (-EPROTO), and the bundles now reset it automatically.
⚠️ Shared-RU gotcha: Benetel's /etc/ru_config.cfg (compression/MIMO/TDD pattern) differs between Duranta and OCUDU — switching the physical RU between the two stacks without re-applying the incoming stack's profile (oru-apply.py --stack <target> --apply, then a genuine in-RU reboot, not just an omf tell power cycle) leaves the RU radiating with the WRONG stack's settings, which looks exactly like a dead radio (clean fronthaul, TXMeanPower: No dBm) rather than a config mismatch.
| UE | Type | Works with | Notes |
|---|---|---|---|
| Quectel RM520N-GL | Commercial (COTS) 5G modem | OTA on all three; O-RAN 7.2 on OCUDU and Duranta | The reference UE — a real modem receiver; standard apn/QMI bring-up |
Amarisoft lteue |
Soft UE over a second USRP | OTA on Amarisoft + OCUDU | Cross-vendor soft UE; needs power_on via its API |
srsRAN srsue |
Soft UE over ZMQ | OCUDU soft-only | Part of the OCUDU soft-only tutorial |
OAI nr-uesoftmodem |
Soft UE over RFsim | Duranta soft-only | Part of the Duranta soft-only tutorial |
All UEs use PLMN 00101 and get an IP in 192.168.100.0/22 with working internet (a soft UE splits its IMSI as MCC(3)+MNC(2)+MSIN(10), so it can only form the 2-digit-MNC 00101 — hence the standard).
| Tutorial | Modality | UE(s) |
|---|---|---|
| Amarisoft 5G SA Over-the-Air — gNB + Core + Soft UE on a USRP | OTA (sb1 / grid) | lteue + Quectel modem |
| Amarisoft controlled cell: UE capacity sweep and performance — three ways | OTA, LTE and 5G SA (osc or sb1 RAN server) | lteue bank, 1–64 UEs |
(There is no soft-only Amarisoft tutorial on COSMOS — every Amarisoft tutorial here drives real SDRs.)
| Tutorial | Modality | UE(s) |
|---|---|---|
| OCUDU 5G SA Soft-Only — gNB + srsUE + Open5GS over ZMQ | Soft-only (any server) | srsue |
| OCUDU 5G SA Over-the-Air — Cross-Vendor gNB + Open5GS + Modem and lteue | OTA (sb1 / grid) | Quectel modem + lteue |
| OCUDU 5G SA over O-RAN 7.2 — Benetel, LiteOn & Foxconn O-RUs | O-RAN 7.2 split, commercial O-RU (sb1 / osc) | Quectel modem |
| OCUDU 5G SA with a Soft O-RU — O-DU ↔ ProtO-RU on a USRP N310, O-RAN 7.2 | O-RAN 7.2 split, soft O-RU (sb1) | Quectel modem |
| OCUDU 5G SA over a Commercial Foxconn O-RU — O-RAN 7.2 split | O-RAN 7.2 split, Foxconn O-RU (osc) — not attaching yet | Quectel modem |
| Tutorial | Modality | UE(s) |
|---|---|---|
| Duranta 5G SA Soft-Only — gNB + nrUE + OAI CN5G over RFsim | Soft-only (any server) | nr-uesoftmodem |
| Duranta 5G SA Over-the-Air — gNB + OAI CN5G + Commercial Modem | OTA (sb1 / grid) | Quectel modem |
| Duranta 5G SA with a Soft O-RU — O-DU ↔ nr-oru on a USRP, O-RAN 7.2 | O-RAN 7.2 split, soft O-RU (osc) | Quectel modem |
| Duranta 5G SA over O-RAN 7.2 — Benetel, LiteOn & Foxconn O-RUs | O-RAN 7.2 split, commercial O-RU (osc) | Quectel modem |
sb1 or grid, a USRP, ~60–90 min).For split-option-7.2 O-RAN, the fronthaul (eCPRI user/control plane + PTP synchronization) does not get its own interface or IP — it rides as tagged VLANs on the server’s data-plane switch port. Each O-RAN server’s fronthaul NIC connects to one switch port set up as a G.8275.1 PTP boundary-clock (BC) master, trunked as:
ptp enable, ptp role master, ptp transport layer2, domain 24, G.8275.1 profileThe two publicly reservable large-form servers on sb1 — srv1-lg1.sb1 and srv2-lg1.sb1 — each present their fronthaul NIC on exactly such a port. On the Dell OS10 aggregation switch it looks like:
interface ethernet 1/1/25:1
description "srv1-lg1.sb1 fronthaul"
switchport mode trunk
switchport access vlan 38 ! node data VLAN, untagged
switchport trunk allowed vlan 4-5 ! eCPRI (4) + PTP S-plane (5), tagged
mtu 9216
ptp enable
ptp role master
ptp transport layer2
ptp announce interval -3
ptp sync-interval -4
The switch itself must be a G.8275.1 boundary clock (ptp clock boundary profile g8275.1, domain 24, ptp system-time enable) with a slave port toward the grandmaster, so the O-RAN server’s ptp4l locks its PHC (and phc2sys disciplines CLOCK_REALTIME) from this port. The same pattern applies to every O-RAN 7.2 server; see the Fronthaul & PTP Switch-Port Wiring reference for the full per-server mapping and the step-by-step port-configuration procedure.
omf-amarisoft / amarisoft-ran, omf-ocudu / ocudu-gnb, omf-duranta / oai-gnb; core: open5gs-core; UE: quectel-5g-modem.Author(s): COSMOS team · Last verified: not re-tested; updated 2026-09-14 (O-RAN 7.2 status, tutorial lists, per-platform overview pages). Base content verified 2026-07-15; see each tutorial for its own date. · Standardized on: PLMN 00101, UE pool 192.168.100.0/22, images amarisoft.ndz / ocudu.ndz / duranta.ndz / lte5gue.ndz · Tags: 5g, sa, amarisoft, ocudu, srsran, duranta, oai, oran, overview