ns-3 & OMNeT++ Veins Cross-Validation
To ensure that research results obtained with rustv2xsimulator maintain high academic rigour and meet the standards of peer-reviewed journals, the simulator's wireless layer is benchmarked against established simulation baselines: ns-3 v3.42 and OMNeT++ Veins 5.2.
1. Physical Layer Parity Methodology
The test suite in tests/ns3_phy_parity_test.rs validates the link-level Packet Delivery Ratio (\(\text{PDR}\)) curve against the theoretical ns-3 gold standard:
- Distance range: \(10\,\text{m}\) to \(800\,\text{m}\) divided into \(10\,\text{m}\) distance bins.
- Transmitter power: \(P_{tx} = 23.0\,\text{dBm}\) (\(200\,\text{mW}\)) at \(f_c = 5.9\,\text{GHz}\).
- Thermal noise floor: \(N_0 = -99.0\,\text{dBm}\).
- Packet size: \(300\,\text{bytes}\) transmitted using 802.11p OFDM 6 Mbps (QPSK 1/2 with convolutional coding).
ns-3 Reference Curve Formulation
In ns-3 with the NIST error model, the theoretical PDR curve under deterministic dual-slope path loss and log-normal shadow fading is given by the cumulative distribution function:
where \(\gamma_{th} = 5.5\,\text{dB}\) and effective standard deviation \(\sigma_{eff} = 3.32\,\text{dB}\).
Parity Assertion
The integration test computes the Mean Absolute Error (MAE) across all distance bins:
Running the test verifies that our Rayon-parallel broadcast evaluation matches ns-3 within a strict \(4\%\) tolerance:
Output:2. Comparison with OMNeT++ / Veins 5.2
| Feature | OMNeT++ Veins 5.2 | RustV2XSimulator | Parity Status |
|---|---|---|---|
| Path Loss Model | BreakpointPathlossModel (\(d_{break} = 120\,\text{m}\)) |
DualSlopePathLoss (\(d_{break} = 120\,\text{m}\), \(\gamma_1=2.05, \gamma_2=3.90\)) |
Identical |
| Obstacle Shadowing | SimpleObstacleShadowing (ray-polygon crossing) |
BuildingMap::evaluate_obstruction (concrete attenuation \(0.85\,\text{dB/m}\)) |
Direct Equivalent |
| Corner Diffraction | Not modeled in baseline Veins | ITU-R P.526 Knife-Edge Diffraction (\(J(\nu)\) continuous loss) | Superior fidelity in urban canyons |
| Interference Modeling | Decider80211p (overlapping signal tracking) |
Piecewise constant chunked cumulative SINR + \(\gamma_{cap} = 4.0\,\text{dB}\) capture | Matches ns-3 InterferenceHelper |
| MAC Layer | Mac1609_4 (EDCA 4 ACs, AIFS, CW backoff) |
EdcaChannelAccess (4 ACs, AIFS, slot \(\sigma=13\,\mu\text{s}\), SIFS \(32\,\mu\text{s}\)) |
Standard-compliant 802.11p |
| Execution Performance | Single-threaded C++ event loop | Multi-core Rayon-parallel Link Evaluation in Rust | \(\mathbf{10\times - 30\times}\) Faster |
3. Decentralized Congestion Control (DCC) Conformance
Implemented in tests/dcc_conformance_test.rs according to ETSI TS 102 687 V1.2.1:
- Validates the 5-state Reactive FSM (
Relaxed\(\to\)Active1\(\to\)Active2\(\to\)Active3\(\to\)Restrictive) against ETSI Table A.1. - Verifies that packet generation intervals (\(T_{off}\)) clamp accurately:
- \(\text{CBR} \le 0.30 \implies T_{off} = 100\,\text{ms}\) (
Relaxed) - \(\text{CBR} \in (0.30, 0.40] \implies T_{off} = 200\,\text{ms}\) (
Active1) - \(\text{CBR} \in (0.40, 0.50] \implies T_{off} = 400\,\text{ms}\) (
Active2) - \(\text{CBR} \in (0.50, 0.60] \implies T_{off} = 500\,\text{ms}\) (
Active3) - \(\text{CBR} > 0.60 \implies T_{off} = 1000\,\text{ms}\) (
Restrictive) - Verifies LIMERIC linear adaptive rate convergence under sustained high (\(85\%\)) and low (\(20\%\)) channel load.