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
31 changes: 31 additions & 0 deletions artifacts/requirements.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3055,6 +3055,37 @@ artifacts:
fields:
release: v0.20.0

- id: REQ-TSN-SYNTH-CQF-BRIDGE-001
type: requirement
title: "AADL→CQF synthesis bridge — extract CqfFlow inputs from a SystemInstance and synthesize end-to-end"
description: >
spar shall extract the CQF synthesis inputs
(REQ-TSN-SYNTH-CQF-BASE-001) directly from an AADL SystemInstance and
surface the synthesized schedule (or a synthesis error) as analysis
diagnostics, so that a real AADL model — not a hand-built CqfFlow set —
drives standard 802.1Qch CQF configuration. For each end-to-end stream
(a non-bus-access connection whose endpoints are both end stations and
which carries Actual_Connection_Binding to switched buses) the bridge
derives: the per-cycle reservation in bits from Spar_TSN::Max_Frame_Size
on the source (one frame buffered per cycle), the end-to-end deadline
from Timing_Properties::Deadline, and the hop count H and link path from
the bound switch sequence — reusing the SAME routing resolution as the
WCTT walk (collect_streams), not a parallel reimplementation. The
homogeneous link rate fed to synthesize_cqf is the MINIMUM
Spar_Network::Output_Rate across the switches (conservative for the
single-csize baseline). This is table-stakes AADL→TSN-config glue — the
demonstrable end-to-end ship — and is explicitly NOT the PLP≪TFA wedge:
it composes NO network calculus. SOUNDNESS GUARD: the one-frame-per-cycle
reservation is sound only when the synthesized cycle time T does not
exceed each flow's period; the bridge verifies T≤period post-synthesis
and emits a diagnostic rather than silently under-reserve on the
AADL-legal-but-rare deadline>period edge case. NO new dependency (reuses
synthesize_cqf plus the existing spar-network property readers). [SOLID]
status: implemented
tags: [tsn, synthesis, cqf, bridge, aadl, tier2]
fields:
release: v0.20.0

- id: REQ-TSN-SYNTH-CQF-001
type: requirement
title: "Multi-CQF / TCQF synthesis (heterogeneous cycles, injection planning, larger scale)"
Expand Down
35 changes: 35 additions & 0 deletions artifacts/verification.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2338,6 +2338,41 @@ artifacts:
- type: satisfies
target: REQ-TSN-SYNTH-CQF-BASE-001

- id: TEST-TSN-SYNTH-CQF-BRIDGE
type: feature
title: AADL→CQF synthesis bridge — SystemInstance drives synthesize_cqf end-to-end
description: >
Verifies CqfSynthAnalysis, the pass that extracts CqfFlow inputs from a
real AADL SystemInstance and runs the literature-pinned CQF synthesizer
(REQ-TSN-SYNTH-CQF-BASE-001) over them. The oracle is a hand-computed
AADL fixture instantiated through the full HirDef pipeline (same
instantiate() harness as the WCTT tests): two source end stations each
bound via Actual_Connection_Binding to one switch (H=1), 1 Gbps
Output_Rate, 1500-byte Max_Frame_Size (12000 bits/cycle), 100 us
Deadline. The expected schedule is derived by hand from the pinned
delay model: T = deadline/(H+1) = 50 us, csize = T·link_rate =
50000 bits, per-switch aggregate reservation = 2·12000 = 24000 bits
<= csize (admitted), and D_max = (H+1)·T = 100 us = deadline. Tests
cover: (1) END-TO-END — the fixture yields exactly that CqfSchedule via
the analysis pass, surfaced as a diagnostic; (2) EXTRACTION FIDELITY —
hop count, per-cycle bits, and deadline are read from the model, not
hard-coded; (3) MIN-RATE — a heterogeneous-rate fixture feeds the
slowest switch rate to synthesize_cqf (conservative csize); (4)
SOUNDNESS GUARD — a deadline>period fixture (T would exceed the period)
emits the under-reservation diagnostic rather than silently admitting;
(5) EMPTY — a model with no bound streams emits no CQF diagnostics
(non-regression contract). Reuses collect_streams' routing resolution;
NO network-calculus composition; NO new dependency.
fields:
method: automated-test
steps:
- run: "cargo test -p spar-analysis --lib -- cqf_synth"
status: passing
tags: [v0.20.0, analysis, tsn, synthesis, cqf, bridge, oracle]
links:
- type: satisfies
target: REQ-TSN-SYNTH-CQF-BRIDGE-001

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