Experiments / E16

Python and ns-3 agreement

Are the Python and ns-3 implementations interchangeable within the registered scope?

Label: DERIVED statistics and accounting Label: MODELLED network outcomes

Pre-registered hypothesis

Deterministic replay agrees per packet exactly. Stochastic run-level PDR, FPR and latency pass the registered equivalence tests. Failure to establish equivalence is not evidence of equivalence.

Frozen preregistration, identified and verified against this result’s manifest.

Verdict

Hypothesis supported within the replayed scope: every endpoint is equivalent, but by a common-random-numbers design that makes the test degenerate (all paired differences exactly 0), and no run lost a packet, so loss paths are not tested.

  • All 16 endpoint rows pass the registered TOST over 4 cells (144 paired runs).
  • Common-random-numbers design: both engines replay the same pre-generated send list and nothing else is random, so per-packet identity is expected. All 144 paired differences are exactly 0 (ratios exactly 1): every interval has zero width, and the p-values come from the zero-variance branch, not from a t distribution. The equivalence test is therefore degenerate; the preregistration declared this design.
  • No packet was lost in any run on either engine, so PDR and false-positive equivalence sit at the boundary and do not test loss paths. The agreement covers delivery, queueing and deadline flags.

Every number in this verdict is computed at build time from the verified summary.csv.

C5 orbital inputs are REAL public data; C2 orbits and positions are MODELLED. Topology, probes, faults and network behaviour are MODELLED. Starlink’s operational routing is UNKNOWN; Starlink does not use T-CRH.

Charts and data

Download CSV · Download manifest

Source: results/E16/20261011T194240Z-confirmatory/summary.csv. SHA-256: d53a3c190a04e192242da86bdf267f82e8f48fcb03883e1b2faa5791e33a7ad2.

This first view shows the 4 rows of the initial selection, out of 16. With scripting, the page loads the same summary.csv offered for download and checks its SHA-256 against the manifest before other selections are enabled.

Paired engine agreement (see scale column). Shaded bands show recorded 95% confidence intervals over runs, not packets.
Values and confidence bounds from the verified summary CSV. Exact values are available in the data table. Infinite and undefined values are listed below.-0.0100000.010000Registered equivalence bound: -0.01Registered equivalence bound: 0.01C5 / none: 0; 95% CI [0, 0]C5 / noneC5 / fault: 0; 95% CI [0, 0]C5 / faultC2 / none: 0; 95% CI [0, 0]C2 / noneC2 / fault: 0; 95% CI [0, 0]C2 / fault

Dashed lines are the registered equivalence margins. The table also contains the TOST equivalence intervals and both one-sided p-values; the verdict uses the recorded TOST decision. A stored p-value of 0 is shown as below numerical resolution: here it comes from the zero-variance branch, because every paired difference is exactly 0.

Data table

Showing 1–4 of 4 matching rows. The download contains every original row and column.

Values from summary.csv. Empty fields are shown as undefined; infinite effective latency remains infinite; a p-value stored as 0 is shown as below numerical resolution.
constconditionendpointncompleteestimatelo90hi90lo95hi95p_lowerp_upperlower_boundupper_boundequivalentreasonundefined_runsinfinite_runsscale
C5nonepdr36True0.00.00.00.00.0< numerical resolution (zero-variance branch)< numerical resolution (zero-variance branch)-0.010.01Trueundefined00ns3 minus python
C5faultpdr36True0.00.00.00.00.0< numerical resolution (zero-variance branch)< numerical resolution (zero-variance branch)-0.010.01Trueundefined00ns3 minus python
C2nonepdr36True0.00.00.00.00.0< numerical resolution (zero-variance branch)< numerical resolution (zero-variance branch)-0.010.01Trueundefined00ns3 minus python
C2faultpdr36True0.00.00.00.00.0< numerical resolution (zero-variance branch)< numerical resolution (zero-variance branch)-0.010.01Trueundefined00ns3 minus python

Where ChronoRoute loses

Every listed point disadvantage is retained, including privileged-oracle advantages. Where a registered paired comparison exists for the same cell, its paired Student-t 95% interval and Holm-adjusted p-value are quoted; otherwise marginal intervals alone do not establish a significant loss. Ties in the predicted stuck-loss reduction are listed as unsupported advantages.

No failed equivalence endpoint is recorded in this summary; this is a scoped agreement result, not a routing-performance win.

Limitations

  • Zero processing delay, no background or jitter, stable planning, source insertion and continue policy; agreement is scoped to this model.
  • Common-random-numbers design (declared in the preregistration): both engines replay the same pre-generated send list and nothing else is random, so per-packet identity is expected. The equivalence test is therefore degenerate: every paired difference is exactly 0, the intervals have zero width, and the p-values come from the zero-variance branch, not from a t distribution.
  • No packet was lost in any run on either engine, so PDR and false-positive equivalence sit at the boundary and say nothing about loss paths. The agreement covers delivery, queueing and deadline flags.
  • TOST uses the recorded equivalence intervals; ordinary confidence intervals are also shown.
  • The allowed summary covers stochastic equivalence. Per-packet deterministic records are in the repository but are not a separate chart input here.

These pages use only summary.csv and manifest.json; each file is checked against the manifest SHA-256. They do not infer missing comparisons from figures, reports, raw traces or other result files.

How this was made

Recorded producer
E16 confirmatory agreement (1.0.0.dev0)
Manifest commit
22fc9f11c89e2ef94e1a9c3f28f976c473a09f46; dirty: false
Run
e7c7f36769f7dc01
Time
2026-10-11T19:42:40.684498Z to 2026-10-11T19:50:22.295575Z; 461.611063 seconds of recorded host wall time (REAL)
Snapshot
20261010T1358Z-celestrak; SHA-256: c37e70812155c2d1d9eeb3e96681303c00c9fca91287939b21bf5313ce83aecd
Seeds
0, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035
Command
venv/bin/python -B experiments/E16/run.py --out results/E16/20261011T194240Z-confirmatory --workers 8
Config SHA-256
0e615482412fc603e23401095b0e28edd557ef051ab4042d77264698b5a4b41a
Labels
  • link_rate_and_queues: MODELLED
  • orbital_elements: REAL
  • routes_and_budgets: DERIVED
  • traffic_probes: MODELLED

C2 override: C2 elements and positions MODELLED

Manifest

chronoroute.manifest/1; 12 recorded output files (8086265 bytes); 1 recorded input hashes. Download the full manifest (4800 bytes, SHA-256 7dd07d901d8c138c29f561eceada560dc30b11ddd45f2c2e981ae8efa0e2b26c) for the configuration, versions, host and every input and output hash.

  • summary.csv: 1882 bytes, SHA-256 d53a3c190a04e192242da86bdf267f82e8f48fcb03883e1b2faa5791e33a7ad2
  • Versions: chronoroute 1.0.0.dev0; matplotlib 3.11.1; networkx 3.6.1; numpy 2.5.3; python 3.14.4; sgp4 2.27
  • Host (REAL): cpu_model: 13th Gen Intel(R) Core(TM) i9-13900H; logical_cores: 20; machine: x86_64; platform: Linux-6.18.33.2-microsoft-standard-WSL2-x86_64-with-glibc2.43; ram_bytes: 8131358720

For collected results, the manifest commit identifies the collector. Input hashes preserve the producer chain in the downloaded manifest; this page does not load those additional files.