Skip to content

fix(figc4.6): Set Version 2.0 before Establish Data Link on the FRMR fallback (#45) (re-opened for review) - #112

Open
M0LTE wants to merge 1 commit into
mainfrom
fix/45-frmr-fallback-order-v2
Open

M0LTE wants to merge 1 commit into
mainfrom
fix/45-frmr-fallback-order-v2

Conversation

@M0LTE

@M0LTE M0LTE commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

Re-opens, for your review, the #45 figure fix that I merged today without it (#108, reverted by the unwind PR; merge that first, then this diff is the whole change). One commit, unchanged. On figc4.6's FRMR column the Establish Data Link and Set Version 2.0 boxes swap places (node geometry exchanged, four edges re-pointed; node ids, labels and shape classes untouched), so the v2.0 fallback re-establishes with SABM. Only awaiting_v22_connection.sdl.yaml changed on regeneration (t14 path order, ids unchanged), plus its mermaid and SVG; the totality lint is clean. The t14 citation carries an ERRATUM (#45) note with the §4.3.3.2, §6.3.2 and §6.5 quotes, the ax25sdl trace and explorer evidence, and direwolf frmr_frame references; a row is appended to the Changes from Version 2.2 table. The svgdiff change list and the two things to know (svg_diff.py hides one removed edge because an identically-signed edge exists in the SABM column; the literal swap leaves Set Layer 3 Initiated between the two boxes, behaviourally the same as direwolf's order) are in #108's description.

ax25sdl follow-up once merged: remove the expected_failure marker from traces/frmr-fallback-downgrades-to-sabm.trace.yaml and turn the #45 explorer calibration row clean, keeping it firing on a pre-fix fixture.

🤖 Generated with Claude Code

https://claude.ai/code/session_014qyx5dT8rmRTb8szT4SpEQ

…fallback (#45) (#108)

* fix(figc4.6): Set Version 2.0 before Establish Data Link on the FRMR fallback (#45)

The Awaiting V2.2 Connection "FRMR received" column (t14) drew "Establish Data Link" before "Set Version 2.0". Establish Data Link (figc4.7) branches on the modulo and sends SABME while modulo 128 is still in effect, so the v2.0 fallback re-sent the SABME the pre-v2.2 peer had just rejected with FRMR: no progress against a v2.0 peer, and a modulo split against a v2.2 peer (see #45).

- DataLink_AwaitingV22Connection.graphml: the two boxes swap places on the column (geometry of n66 and n68 exchanged, edges e69..e72 re-pointed), so the arm now reads SRT/T1V, Set Version 2.0, Set Layer 3 Initiated, Establish Data Link, then state 1. Node ids, labels and shape classes are unchanged (Establish Data Link stays a Subroutine call); the column remains a straight top-down stack with no bend points, so nothing else on the page moved.
- awaiting_v22_connection.sdl.yaml regenerated by the Packet.Sdl.Transcribe walker: only t14_frmr_received's path order changes; 25 transitions / 8 decisions as before and no id changes, so the citations sidecar needs no re-keying.
- awaiting_v22_connection.g.mmd regenerated by Packet.Sdl.CodeGen; the totality/determinism lint stays clean (8051 feasible valuations, 0 holes, 0 overlaps).
- DataLink_AwaitingV22Connection.svg regenerated with tools/render/render_all.py.

Refs #45.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014qyx5dT8rmRTb8szT4SpEQ

* docs(figc4.6): cite the #45 reorder in the t14 sidecar and the v2.2 changes table

- awaiting_v22_connection.citations.yaml: t14_frmr_received annotated with an ERRATUM (#45) note (what changed, why per §4.3.3.2, §6.3.2 and §6.5, and the ax25sdl evidence: the golden trace frmr-fallback-downgrades-to-sabm and the docs/explorer.md #45 calibration row), plus the direwolf frmr_frame references (the state_5 arm at 5044/5046 and the state_3/4 arm at 5028/5030, both of which force v2.0 before establish_data_link).
- doc/ax.25.2.3-draft.md: row appended to the "Changes from Version 2.2" table. No prose states the action order (§4.3.3.2, §6.3.2, §6.5 and the C4.6 captions were checked), so no section text changes.

Refs #45.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014qyx5dT8rmRTb8szT4SpEQ

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

SVG figure changes (e4c70397 (merge base with dbcece99) → 8d5a0685)

spec-sdl/v2.2-errata/data-link/svg/DataLink_AwaitingV22Connection.svg

nodes 80→80, edges 84→84, labels 23→23

what change
+ edge Establish Data Link → 1 Awaiting Connection
+ edge SRT <- Initial Default → Set Version 2.0
+ edge Set Layer 3 Initiated → Establish Data Link
+ edge Set Version 2.0 → Set Layer 3 Initiated
− edge Establish Data Link → Set Layer 3 Initiated
− edge SRT <- Initial Default → Establish Data Link
− edge Set Layer 3 Initiated → Set Version 2.0

Interactive viewers — swipe, onion-skin, blink, and a clickable change list that zooms to each change — are attached to this run as the svg-figure-diff artifact: download, unzip, open the HTML.

Locally: python3 tools/svgdiff/svg_diff.py main HEAD --all --merge-base

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant