Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 39 additions & 7 deletions artifacts/requirements.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3026,21 +3026,53 @@ artifacts:
fields:
release: v0.20.0

- id: REQ-TSN-SYNTH-CQF-BASE-001
type: requirement
title: "CQF synthesis baseline — single cycle-time, 2-buffer, literature-pinned delay bound"
description: >
spar shall synthesize a standard 802.1Qch CQF configuration (two
cyclic buffers, one global cycle time T) for a set of reserved
flows, each declaring a per-cycle reservation (csize contribution
in bits), a hop count H, an end-to-end deadline, and the links it
traverses. The synthesizer selects the largest whole-nanosecond
cycle time T meeting every flow's structural deadline
(D_max = (H+1)·T, per IETF draft-eckert-detnet-tcqf-05) and admits
the flows iff every link's aggregate per-cycle reservation fits the
cycle budget csize = T·link_rate. The two feasibility checks are
LOCAL and fully decoupled — CQF's bounded delay depends only on
(hops, T), not on per-link load — so NO network-calculus curve
composition is required (this is why CQF routes around the
NC-composition bridge that MILP needs). Self-certifying: the
independent CQF checker re-derives D_max per flow and the per-link
budget before return. The checker's delay formula is PINNED to the
published worked example (h=24, T=10us => (24+1)*10 = 250us) so the
duality oracle anchors to external ground truth, not to the
synthesizer's own assumptions. NO new dependency (pure arithmetic).
Precursor to REQ-TSN-SYNTH-CQF-001 (Multi-CQF/TCQF), mirroring
REQ-TSN-SYNTH-QBV-BASE-001 → REQ-TSN-SYNTH-QBV-001. [SOLID]
status: implemented
tags: [tsn, synthesis, cqf, tier2]
fields:
release: v0.20.0

- id: REQ-TSN-SYNTH-CQF-001
type: requirement
title: "CQF / Multi-CQF synthesis (simpler-config, larger scale)"
title: "Multi-CQF / TCQF synthesis (heterogeneous cycles, injection planning, larger scale)"
description: >
spar shall synthesize CQF/Multi-CQF configurations — the
spar shall synthesize Multi-CQF / TCQF configurations — three to
seven tagged cyclic buffers and heterogeneous cycle times, the
simpler-config, larger-scale direction with real 2026 momentum
(TCQF adopted as IETF DetNet WG item draft-ietf-detnet-tcqf-00,
14 Jan 2026; CENI 2,000 km / 100 Gbps). Candidate methods:
hyper-flow graph decomposition (arXiv:2309.06690 — 2,000 flows,
<100 ms @1,000) or GASA injection planning (arXiv:2506.22671 —
GA+SA, +15% flows). [SOLID]
14 Jan 2026; CENI 2,000 km / 100 Gbps). Extends the single-cycle
baseline (REQ-TSN-SYNTH-CQF-BASE-001) with per-flow injection-time
planning across a hyperperiod and multi-buffer ambiguity-window
handling. Candidate methods: hyper-flow graph decomposition
(arXiv:2309.06690 — 2,000 flows, <100 ms @1,000) or GASA injection
planning (arXiv:2506.22671 — GA+SA, +15% flows). [SOLID]
status: proposed
tags: [tsn, synthesis, cqf, tier2]
fields:
release: v0.20.0
release: v0.21.0

- id: REQ-TSN-EXPORT-YANG-001
type: requirement
Expand Down
37 changes: 37 additions & 0 deletions artifacts/verification.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2301,6 +2301,43 @@ artifacts:
- type: satisfies
target: REQ-TSN-SYNTH-QBV-BASE-001

- id: TEST-TSN-SYNTH-CQF-BASE
type: feature
title: CQF synthesis baseline — literature-pinned delay + decoupled admission oracle
description: >
Verifies synthesize_cqf, the standard two-buffer 802.1Qch CQF
configuration synthesizer (single global cycle time T). Unlike the
QBV oracle (self-consistent against its own checker), the CQF
checker's delay formula is PINNED TO EXTERNAL GROUND TRUTH: the
published worked example in IETF draft-eckert-detnet-tcqf-05
(24 hops, 10 us cycle => (24+1)*10 = 250 us; D_min = (24-1)*10 =
230 us; jitter exactly 2T) is asserted exactly by
delay_bound_matches_published_tcqf_example — so the duality oracle
anchors to the literature, not to the synthesizer's assumptions.
spar-network::cqf unit tests cover: (1) DELAY PIN — the published
TCQF numbers above; (2) MULTIFLOW ADMISSION — a flow set with
distinct hop counts/deadlines/paths yields the largest whole-ns
cycle meeting EVERY flow's structural deadline (H+1)·T, and every
link's aggregate per-cycle reservation fits csize = T·link_rate;
(3) MONOTONE — a tighter deadline on the binding flow shrinks the
synthesized cycle; (4) NEGATIVE PATHS — a deadline below the
irreducible (H+1)·1ns latency (DeadlineTooTight, naming the binding
flow), a single oversubscribed link, and two flows summing past one
link's budget (Oversubscribed), plus empty/degenerate/duplicate
input validation. Self-certifying: synthesize_cqf re-derives every
flow's delay and every link's budget through the independent
checker before returning, so a future change that breaks soundness
fails construction, not just the test. NO solver, NO new dependency.
fields:
method: automated-test
steps:
- run: "cargo test -p spar-network --lib -- cqf"
status: passing
tags: [v0.20.0, network, tsn, synthesis, cqf, oracle]
links:
- type: satisfies
target: REQ-TSN-SYNTH-CQF-BASE-001

- id: TEST-TSN-CBS
type: feature
title: 802.1Qav CBS credit-pool service curve + wctt dispatch
Expand Down
Loading
Loading