Stratum: a QoS substrate composing DiffServ, L4S, and CAKE (new ns-3 module)

9 views
Skip to first unread message

Sergio Andreozzi

unread,
Jun 17, 2026, 5:30:21 PM (5 days ago) Jun 17
to ns-3-users
Hello all,

I'd like to announce Stratum, a new contributed module for ns-3. It is a QoS substrate: one composer with four pluggable strategy slots, on which DiffServ, L4S, and CAKE are expressed as three clients, each picking one strategy per slot.

The four slots:
  - Classify-and-Meter: a meter strategy plus a classifier
  - Mark-and-Route: a DSCP tag plus a PHB table
  - Per-class slot array: up to eight inner queue discs
  - Across-slot service policy: the scheduler or dispatcher

The three clients:
  - DiffServ (RFC 2475): sr-TCM and tr-TCM (RFC 2697/2698) and TSW meters; DSCP and PHB marking; RED / RIO / drop-tail inner queue discs; and a choice of priority and fair-queueing schedulers.
  - L4S (RFC 9331/9332): a DualPI2 coupled AQM with ECT(1) classification.
  - CAKE: DSCP-to-tin mapping over per-tin FqCobalt, tracking the Linux sch_cake qdisc.

External AQMs and schedulers plug in as registry cells without editing the composer core.

The module ships with a handbook (using the substrate, its architecture, and the validation evidence), RFC conformance vectors (2697 / 2698 / 2859 / 9331 / 9332), and cross-stack comparisons of CAKE against the Linux kernel: host-isolation fairness and autorate-ingress capacity estimation (deposited separately; DOI below).

Stratum builds against ns-3.48 and carries a small set of ns-3 mainline patches, bundled and applied before build. Three install paths are documented: into an existing ns-3 tree, a script-managed sibling clone, or Bake.

  App Store:  https://apps.nsnam.org/app/stratum/
  Source:     https://github.com/digitalities/stratum-ns3
  Handbook:   https://github.com/digitalities/stratum-ns3/tree/main/handbook
  Software:   https://doi.org/10.5281/zenodo.20723772
  Dataset:    https://doi.org/10.5281/zenodo.20724063
  License:    GPLv2

The DiffServ client carries forward a 2001 ns-2 DiffServ module (IEEE ISCC 2002); the L4S and CAKE clients are new.

This is Stratum's first release to the wider ns-3 community. I'd genuinely welcome you trying it on your own topologies, poking at the edge cases, and telling me what works or breaks. Bug reports and patches are very welcome. Please use the GitHub issue tracker, or just reply on the list.

Kind regards,
Sergio Andreozzi

P.S. Stratum began as a personal project to bring my 2001 MSc thesis back to life on modern ns-3. It grew into something wider, and I hope it will be a useful addition to the ns-3 toolset.
Reply all
Reply to author
Forward
0 new messages