Installation
Build Days from source and enable optional protocol features.
Prerequisites
- Rust toolchain (stable) with Cargo.
- Optional:
cargo-nextestfor faster test runs.
Build
cargo buildRun from source
The days CLI expects exactly one argument: the path to a TOML configuration file.
RUST_LOG=info cargo run -- configs/simple.tomlFeature flags
Days uses Cargo features to keep the default build lean.
l2: enables the layer-2 module boundary (src/l2/)l2_pfc: enables PFC components (impliesl2)dcqcn: enables the DCQCN flow type and related codelean: enables additional per-transition protocol trace logging used by LeanGuardtest: enables extra assertions and test-only helpers
Examples:
# Build with PFC support available (still opt-in at runtime via config)
cargo build --features l2,l2_pfc
# Run a PFC-configured experiment
RUST_LOG=info cargo run --features l2,l2_pfc -- configs/pfc.toml
# Run DCQCN (typically paired with PFC in lossless fabrics)
RUST_LOG=info cargo run --features dcqcn,l2_pfc -- configs/dcqcn_simple.toml
# Emit dcqcn_events.csv for LeanGuard (conformance checking)
RUST_LOG=info cargo run --features dcqcn,lean,l2_pfc -- configs/dcqcn_simple.toml