ax25sdl 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -0
- package/dist/ax25sdl/awaiting_connection.g.d.ts +7 -0
- package/dist/ax25sdl/awaiting_connection.g.d.ts.map +1 -0
- package/dist/ax25sdl/awaiting_connection.g.js +427 -0
- package/dist/ax25sdl/awaiting_connection.g.js.map +1 -0
- package/dist/ax25sdl/awaiting_connection.g.test.d.ts +2 -0
- package/dist/ax25sdl/awaiting_connection.g.test.d.ts.map +1 -0
- package/dist/ax25sdl/awaiting_connection.g.test.js +345 -0
- package/dist/ax25sdl/awaiting_connection.g.test.js.map +1 -0
- package/dist/ax25sdl/awaiting_release.g.d.ts +7 -0
- package/dist/ax25sdl/awaiting_release.g.d.ts.map +1 -0
- package/dist/ax25sdl/awaiting_release.g.js +344 -0
- package/dist/ax25sdl/awaiting_release.g.js.map +1 -0
- package/dist/ax25sdl/awaiting_release.g.test.d.ts +2 -0
- package/dist/ax25sdl/awaiting_release.g.test.d.ts.map +1 -0
- package/dist/ax25sdl/awaiting_release.g.test.js +255 -0
- package/dist/ax25sdl/awaiting_release.g.test.js.map +1 -0
- package/dist/ax25sdl/awaiting_v22_connection.g.d.ts +7 -0
- package/dist/ax25sdl/awaiting_v22_connection.g.d.ts.map +1 -0
- package/dist/ax25sdl/awaiting_v22_connection.g.js +428 -0
- package/dist/ax25sdl/awaiting_v22_connection.g.js.map +1 -0
- package/dist/ax25sdl/awaiting_v22_connection.g.test.d.ts +2 -0
- package/dist/ax25sdl/awaiting_v22_connection.g.test.d.ts.map +1 -0
- package/dist/ax25sdl/awaiting_v22_connection.g.test.js +372 -0
- package/dist/ax25sdl/awaiting_v22_connection.g.test.js.map +1 -0
- package/dist/ax25sdl/connected.g.d.ts +7 -0
- package/dist/ax25sdl/connected.g.d.ts.map +1 -0
- package/dist/ax25sdl/connected.g.js +1456 -0
- package/dist/ax25sdl/connected.g.js.map +1 -0
- package/dist/ax25sdl/connected.g.test.d.ts +2 -0
- package/dist/ax25sdl/connected.g.test.d.ts.map +1 -0
- package/dist/ax25sdl/connected.g.test.js +1313 -0
- package/dist/ax25sdl/connected.g.test.js.map +1 -0
- package/dist/ax25sdl/disconnected.g.d.ts +7 -0
- package/dist/ax25sdl/disconnected.g.d.ts.map +1 -0
- package/dist/ax25sdl/disconnected.g.js +340 -0
- package/dist/ax25sdl/disconnected.g.js.map +1 -0
- package/dist/ax25sdl/disconnected.g.test.d.ts +2 -0
- package/dist/ax25sdl/disconnected.g.test.d.ts.map +1 -0
- package/dist/ax25sdl/disconnected.g.test.js +266 -0
- package/dist/ax25sdl/disconnected.g.test.js.map +1 -0
- package/dist/ax25sdl/index.d.ts +8 -0
- package/dist/ax25sdl/index.d.ts.map +1 -0
- package/dist/ax25sdl/index.js +10 -0
- package/dist/ax25sdl/index.js.map +1 -0
- package/dist/ax25sdl/sdl.test.d.ts +2 -0
- package/dist/ax25sdl/sdl.test.d.ts.map +1 -0
- package/dist/ax25sdl/sdl.test.js +47 -0
- package/dist/ax25sdl/sdl.test.js.map +1 -0
- package/dist/ax25sdl/subroutines.g.d.ts +7 -0
- package/dist/ax25sdl/subroutines.g.d.ts.map +1 -0
- package/dist/ax25sdl/subroutines.g.js +497 -0
- package/dist/ax25sdl/subroutines.g.js.map +1 -0
- package/dist/ax25sdl/types.d.ts +94 -0
- package/dist/ax25sdl/types.d.ts.map +1 -0
- package/dist/ax25sdl/types.js +10 -0
- package/dist/ax25sdl/types.js.map +1 -0
- package/package.json +46 -0
package/README.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# ax25sdl (TypeScript)
|
|
2
|
+
|
|
3
|
+
TypeScript consumers of the AX.25 SDL specification, generated from
|
|
4
|
+
the YAML transcriptions under `/spec-sdl/` by
|
|
5
|
+
`tools/Packet.Sdl.CodeGen.Ts`.
|
|
6
|
+
|
|
7
|
+
## Layout
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
ts-spec/
|
|
11
|
+
package.json
|
|
12
|
+
tsconfig.json
|
|
13
|
+
src/ax25sdl/
|
|
14
|
+
types.ts # hand-written runtime types — DO NOT regenerate
|
|
15
|
+
index.ts # GENERATED — re-exports every page + types
|
|
16
|
+
*.g.ts # GENERATED — one per *.sdl.yaml
|
|
17
|
+
*.test.ts # hand-written smoke tests
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Regenerate
|
|
21
|
+
|
|
22
|
+
From the repo root:
|
|
23
|
+
|
|
24
|
+
```sh
|
|
25
|
+
dotnet run --project tools/Packet.Sdl.CodeGen -- \
|
|
26
|
+
--in spec-sdl \
|
|
27
|
+
--out src/Packet.Ax25.Sdl \
|
|
28
|
+
--tests tests/Packet.Ax25.Conformance.Tests \
|
|
29
|
+
--ts ts-spec/src/ax25sdl
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The orchestrator emits C#, Go, and TypeScript in the same pass so all
|
|
33
|
+
three stay in lockstep. CI verifies the generated files are checked
|
|
34
|
+
in (idempotent regen + `tsc --noEmit` + `node --test`).
|
|
35
|
+
|
|
36
|
+
## Local development
|
|
37
|
+
|
|
38
|
+
```sh
|
|
39
|
+
cd ts-spec
|
|
40
|
+
npm ci # install devDependencies
|
|
41
|
+
npm run typecheck # tsc --noEmit
|
|
42
|
+
npm test # node --test against src/**/*.test.ts
|
|
43
|
+
npm run build # emit JS + .d.ts to dist/
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Node 22+ is required (the test runner uses
|
|
47
|
+
`--experimental-strip-types` to load `.ts` directly).
|
|
48
|
+
|
|
49
|
+
## What's not here
|
|
50
|
+
|
|
51
|
+
This package is **specification data**, not a runtime. It exposes the
|
|
52
|
+
SDL transitions, subroutine bodies, predicates, and action verbs as
|
|
53
|
+
plain TS values. Building an actual AX.25 session on top requires
|
|
54
|
+
binding predicates and action verbs to behaviour (the TS equivalent of
|
|
55
|
+
`Packet.Ax25.Session.GuardEvaluator` / `ActionDispatcher` /
|
|
56
|
+
`DefaultSubroutineRegistry`) and wiring it to frame I/O (WebSerial,
|
|
57
|
+
AGWPE-over-WebSocket, etc.). That work is intentionally out of scope
|
|
58
|
+
for the Tier 1c codegen; the goal here is to prove the codegen IR
|
|
59
|
+
survives a third backend.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { StatePage } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* SDL transitions for the AwaitingConnection state of the data_link machine.
|
|
4
|
+
* Source: ax.25.2.2.4_Oct_25, figure figc4.2.
|
|
5
|
+
*/
|
|
6
|
+
export declare const DataLinkAwaitingConnection: StatePage;
|
|
7
|
+
//# sourceMappingURL=awaiting_connection.g.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awaiting_connection.g.d.ts","sourceRoot":"","sources":["../../src/ax25sdl/awaiting_connection.g.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAmaxC,CAAC"}
|
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
// Code generated by tools/Packet.Sdl.CodeGen from spec-sdl/data-link/awaiting_connection.sdl.yaml.
|
|
2
|
+
// DO NOT EDIT. Run `dotnet run --project tools/Packet.Sdl.CodeGen` to regenerate.
|
|
3
|
+
/**
|
|
4
|
+
* SDL transitions for the AwaitingConnection state of the data_link machine.
|
|
5
|
+
* Source: ax.25.2.2.4_Oct_25, figure figc4.2.
|
|
6
|
+
*/
|
|
7
|
+
export const DataLinkAwaitingConnection = {
|
|
8
|
+
machine: "data_link",
|
|
9
|
+
state: "AwaitingConnection",
|
|
10
|
+
source: { spec: "ax.25.2.2.4_Oct_25", figure: "figc4.2", url: "https://raw.githubusercontent.com/packethacking/ax25spec/main/doc/media/figc4.2.jpeg" },
|
|
11
|
+
transitions: [
|
|
12
|
+
{
|
|
13
|
+
id: "t01_disc_received",
|
|
14
|
+
from: "AwaitingConnection",
|
|
15
|
+
on: "DISC_received",
|
|
16
|
+
guard: "",
|
|
17
|
+
actions: [
|
|
18
|
+
{ verb: "F := P", kind: "processing" },
|
|
19
|
+
{ verb: "DM", kind: "signal_lower" },
|
|
20
|
+
],
|
|
21
|
+
next: "AwaitingConnection",
|
|
22
|
+
notes: "Received DISC while waiting for UA. Respond DM (we're not connected),\nstay in AwaitingConnection waiting for our SABM's UA.\n",
|
|
23
|
+
references: [
|
|
24
|
+
{ source: "linbpq", cite: "", quote: "", path: "L2Code.c", function: "L2LINKACTIVE", line: 1090, note: "DISC handled unconditionally — sends UA (not DM) and tears link down. Diverges from figure" },
|
|
25
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "disc_frame", line: 4530, note: "state_1 falls through with states 0 and 5 to a single DM(F=p) reply, keep current state" },
|
|
26
|
+
{ source: "linux_oot", cite: "", quote: "", path: "net/ax25/ax25_std_in.c", function: "ax25_std_state1_machine", line: 54, note: "sends DM with pf passed through (F:=P implicit)" },
|
|
27
|
+
],
|
|
28
|
+
loops: [],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: "t02_dm_received_f_eq_1",
|
|
32
|
+
from: "AwaitingConnection",
|
|
33
|
+
on: "DM_received",
|
|
34
|
+
guard: "F_eq_1",
|
|
35
|
+
actions: [
|
|
36
|
+
{ verb: "discard_frame_queue", kind: "processing" },
|
|
37
|
+
{ verb: "DL_DISCONNECT_indication", kind: "signal_upper" },
|
|
38
|
+
{ verb: "stop_T1", kind: "processing" },
|
|
39
|
+
],
|
|
40
|
+
next: "Disconnected",
|
|
41
|
+
notes: "DM with F=1 = peer is refusing the connect. Abandon: discard queue,\ntell upper layer the connect failed, stop T1.\n",
|
|
42
|
+
references: [
|
|
43
|
+
{ source: "spec_prose", cite: "§6.3.1 ¶4", quote: "When the originating TNC receives a DM response to its SABM(E) frame, it cancels its T1 timer and does not enter the information-transfer state.", path: "", function: "", line: 0, note: "" },
|
|
44
|
+
{ source: "linbpq", cite: "", quote: "", path: "L2Code.c", function: "L2_PROCESS", line: 2145, note: "DM in state 2 → CONNECTREFUSED. LinBPQ ignores F bit — treats any DM as connect refused" },
|
|
45
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "dm_frame", line: 4656, note: "state_1 case: if (f==1) discard_i_queue, server_link_terminated, STOP_T1, enter_new_state(0)" },
|
|
46
|
+
{ source: "linux_oot", cite: "", quote: "", path: "net/ax25/ax25_std_in.c", function: "ax25_std_state1_machine", line: 80, note: "DM with pf=1 calls ax25_disconnect(ECONNREFUSED) which stops timers and tears socket" },
|
|
47
|
+
],
|
|
48
|
+
loops: [],
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
id: "t03_dm_received_not_f_eq_1",
|
|
52
|
+
from: "AwaitingConnection",
|
|
53
|
+
on: "DM_received",
|
|
54
|
+
guard: "not F_eq_1",
|
|
55
|
+
actions: [],
|
|
56
|
+
next: "AwaitingConnection",
|
|
57
|
+
notes: "DM without F=1 isn't a response to our SABM — ignore, keep waiting.\n",
|
|
58
|
+
references: [
|
|
59
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "dm_frame", line: 4668, note: "else branch in case state_1: 'keep current state'" },
|
|
60
|
+
{ source: "linux_oot", cite: "", quote: "", path: "net/ax25/ax25_std_in.c", function: "ax25_std_state1_machine", line: 81, note: "'if (pf)' guard means DM with F=0 falls through, function returns with no action" },
|
|
61
|
+
],
|
|
62
|
+
loops: [],
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: "t04_ua_received_not_f_eq_1",
|
|
66
|
+
from: "AwaitingConnection",
|
|
67
|
+
on: "UA_received",
|
|
68
|
+
guard: "not F_eq_1",
|
|
69
|
+
actions: [
|
|
70
|
+
{ verb: "DL_ERROR_indication_D", kind: "signal_upper" },
|
|
71
|
+
],
|
|
72
|
+
next: "AwaitingConnection",
|
|
73
|
+
notes: "UA without F=1 isn't a valid response to our polled SABM —\nDL-ERROR(D), keep waiting.\n",
|
|
74
|
+
references: [
|
|
75
|
+
{ source: "spec_prose", cite: "§6.3.1 ¶4", quote: "Reception of the UA response frame by the originating TNC causes it to cancel the T1 timer and set its internal state variables to '0'.", path: "", function: "", line: 0, note: "" },
|
|
76
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "ua_frame", line: 4917, note: "else (f != 1) branch: logs 'Protocol Error D: UA received without F=1 when SABM or DISC was sent P=1', stays" },
|
|
77
|
+
{ source: "rax25", cite: "", quote: "", path: "src/state.rs", function: "AwaitingConnection::ua", line: 1207, note: "early return Action::DlError(DlError::D) when !f; matches spec, stays implicitly" },
|
|
78
|
+
],
|
|
79
|
+
loops: [],
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: "t05_ua_received_f_eq_1_layer_3_initiated",
|
|
83
|
+
from: "AwaitingConnection",
|
|
84
|
+
on: "UA_received",
|
|
85
|
+
guard: "F_eq_1 and layer_3_initiated",
|
|
86
|
+
actions: [
|
|
87
|
+
{ verb: "DL_CONNECT_confirm", kind: "signal_upper" },
|
|
88
|
+
{ verb: "stop_T1", kind: "processing" },
|
|
89
|
+
{ verb: "start_T3", kind: "processing" },
|
|
90
|
+
{ verb: "V(s) := 0", kind: "processing" },
|
|
91
|
+
{ verb: "V(a) := 0", kind: "processing" },
|
|
92
|
+
{ verb: "V(r) := 0", kind: "processing" },
|
|
93
|
+
{ verb: "Select_T1_Value", kind: "subroutine" },
|
|
94
|
+
],
|
|
95
|
+
next: "Connected",
|
|
96
|
+
notes: "Happy path: UA with F=1 in response to our L3-initiated SABM. Confirm\nto upper layer, run the standard Connected-entry housekeeping.\n\nNOTE: LinBPQ and Linux do not track a Layer-3-initiated flag at all,\nso t05/t06/t07 collapse to one handler in those implementations.\nDirewolf and rax25 implement the flag and reproduce the 3-branch\ntree (with their own restructurings).\n",
|
|
97
|
+
references: [
|
|
98
|
+
{ source: "spec_prose", cite: "§6.3.1 ¶1", quote: "Reception of the UA response frame by the originating TNC causes it to cancel the T1 timer and set its internal state variables to '0'.", path: "", function: "", line: 0, note: "" },
|
|
99
|
+
{ source: "linbpq", cite: "", quote: "", path: "L2Code.c", function: "L2_PROCESS", line: 2072, note: "UA in state 2: clears timer, sets L2STATE=5, calls SENDCONNECTREPLY. Collapses t05/t06/t07 — no L3-init flag" },
|
|
100
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "ua_frame", line: 4837, note: "if (f==1) { if (layer_3_initiated) { server_link_established(incoming=0) } else if (vs!=va) {...} } then common cleanup → state_3" },
|
|
101
|
+
{ source: "rax25", cite: "", quote: "", path: "src/state.rs", function: "AwaitingConnection::ua", line: 1210, note: "`if data.layer3_initiated { debug!(\"DL-CONNECT CONFIRM\") }`; common tail at 1233. Author flags 2017 vs 1998 spec divergences on T3 timing" },
|
|
102
|
+
{ source: "linux_oot", cite: "", quote: "", path: "net/ax25/ax25_std_in.c", function: "ax25_std_state1_machine", line: 58, note: "DIVERGES: collapses all three F=1 branches into one; unconditionally zeros V() and notifies socket → STATE_3. No L3-init concept" },
|
|
103
|
+
],
|
|
104
|
+
loops: [],
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
id: "t06_ua_received_f_eq_1_not_layer_3_initiated_vs_eq_va",
|
|
108
|
+
from: "AwaitingConnection",
|
|
109
|
+
on: "UA_received",
|
|
110
|
+
guard: "F_eq_1 and not layer_3_initiated and V_s_eq_V_a",
|
|
111
|
+
actions: [
|
|
112
|
+
{ verb: "stop_T1", kind: "processing" },
|
|
113
|
+
{ verb: "start_T3", kind: "processing" },
|
|
114
|
+
{ verb: "V(s) := 0", kind: "processing" },
|
|
115
|
+
{ verb: "V(a) := 0", kind: "processing" },
|
|
116
|
+
{ verb: "V(r) := 0", kind: "processing" },
|
|
117
|
+
{ verb: "Select_T1_Value", kind: "subroutine" },
|
|
118
|
+
],
|
|
119
|
+
next: "Connected",
|
|
120
|
+
notes: "Connection coming up that we didn't initiate (peer connected to us\nvia SABM and we sent UA back; this branch is reached when local\nsend-variables already align with peer's ack-variables). No\nDL-CONNECT confirm — upper layer wasn't expecting one.\n",
|
|
121
|
+
references: [
|
|
122
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "ua_frame", line: 4878, note: "fall-through leg: !L3init AND !(vs!=va) means neither inner branch fires; common cleanup without server_link_established" },
|
|
123
|
+
{ source: "rax25", cite: "", quote: "", path: "src/state.rs", function: "AwaitingConnection::ua", line: 1212, note: "implicit else when !layer3_initiated && vs==va; no confirm emitted, falls through to common tail at 1233" },
|
|
124
|
+
],
|
|
125
|
+
loops: [],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
id: "t07_ua_received_f_eq_1_not_layer_3_initiated_vs_neq_va",
|
|
129
|
+
from: "AwaitingConnection",
|
|
130
|
+
on: "UA_received",
|
|
131
|
+
guard: "F_eq_1 and not layer_3_initiated and not V_s_eq_V_a",
|
|
132
|
+
actions: [
|
|
133
|
+
{ verb: "SRT := Initial Default", kind: "processing" },
|
|
134
|
+
{ verb: "T1V := 2 * SRT", kind: "processing" },
|
|
135
|
+
{ verb: "start_T1", kind: "processing" },
|
|
136
|
+
{ verb: "DL_CONNECT_confirm", kind: "signal_upper" },
|
|
137
|
+
{ verb: "stop_T1", kind: "processing" },
|
|
138
|
+
{ verb: "start_T3", kind: "processing" },
|
|
139
|
+
{ verb: "V(s) := 0", kind: "processing" },
|
|
140
|
+
{ verb: "V(a) := 0", kind: "processing" },
|
|
141
|
+
{ verb: "V(r) := 0", kind: "processing" },
|
|
142
|
+
{ verb: "Select_T1_Value", kind: "subroutine" },
|
|
143
|
+
],
|
|
144
|
+
next: "Connected",
|
|
145
|
+
notes: "V(s) ≠ V(a) recovery branch: re-init timer values + restart T1\n*before* the standard housekeeping. (The figure starts T1 here then\nimmediately stops it in the next chain — looks redundant on paper\nbut is what's drawn; trust the figure.)\n\nNOTE: rax25 author flags this exact pattern as a spec bug:\n\"bug in the 2017 spec...start T1, then immediately stop it again\"\n(src/state.rs:1226). Direwolf author similarly comments at\nua_frame:4849-4876 that 2006 vs original wording differs.\nIndependent corroboration — candidate upstream spec issue.\n",
|
|
146
|
+
references: [
|
|
147
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "ua_frame", line: 4848, note: "else if (vs!=va) branch (4848-4877): INIT_T1V_SRT resets SRT/T1V, START_T3 (author notes redundancy), server_link_established(incoming=0). Author flags '2006 vs original wording differs'" },
|
|
148
|
+
{ source: "rax25", cite: "", quote: "", path: "src/state.rs", function: "AwaitingConnection::ua", line: 1212, note: "else-if `data.vs != data.va` branch (1212-1232); resets srt, t1v:=2*srt; author comment 'bug in the 2017 spec...start T1, then immediately stop it again'" },
|
|
149
|
+
],
|
|
150
|
+
loops: [],
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
id: "t08_t1_expiry_rc_eq_n2",
|
|
154
|
+
from: "AwaitingConnection",
|
|
155
|
+
on: "T1_expiry",
|
|
156
|
+
guard: "RC_eq_N2",
|
|
157
|
+
actions: [
|
|
158
|
+
{ verb: "discard_frame_queue", kind: "processing" },
|
|
159
|
+
{ verb: "DL_ERROR_indication_G", kind: "signal_upper" },
|
|
160
|
+
{ verb: "DL_DISCONNECT_indication", kind: "signal_upper" },
|
|
161
|
+
],
|
|
162
|
+
next: "Disconnected",
|
|
163
|
+
notes: "Reached the retry limit (N2). Give up: discard pending frames,\nDL-ERROR(G), DL-DISCONNECT indication, go to Disconnected.\n\nNOTE: rax25 author flags spec typo: \"Typo in 1998 spec: G, not g\"\n(src/state.rs:1192). Candidate upstream spec issue.\n",
|
|
164
|
+
references: [
|
|
165
|
+
{ source: "spec_prose", cite: "§6.3.1 ¶2", quote: "If this happens N2 times, the TNC enters the disconnected state.", path: "", function: "", line: 0, note: "" },
|
|
166
|
+
{ source: "linbpq", cite: "", quote: "", path: "L2Code.c", function: "L2TIMEOUT", line: 3768, note: "state-2 retry-exhausted → CONNECTFAILED, CLEAROUTLINK; no explicit DL-ERROR(G)" },
|
|
167
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "t1_expiry", line: 5461, note: "state_1: if (rc==n2_retry) discard_i_queue, 'Failed to connect', server_link_terminated, → state_0. Substitutes user-facing message for DL-ERROR(G)" },
|
|
168
|
+
{ source: "rax25", cite: "", quote: "", path: "src/state.rs", function: "AwaitingConnection::t1", line: 1189, note: "if data.rc == data.n2: clears queue, emits DlError::G ('Typo in 1998 spec: G, not g'), transitions to Disconnected. Note: rax25 does NOT emit DL-DISCONNECT indication — divergence" },
|
|
169
|
+
{ source: "linux_oot", cite: "", quote: "", path: "net/ax25/ax25_std_timer.c", function: "ax25_std_t1timer_expiry", line: 124, note: "STATE_1 + n2count==n2 + AX25_MODULUS → ax25_disconnect(ETIMEDOUT). Linux first downgrades EMODULUS→MODULUS and retries (not in spec)" },
|
|
170
|
+
],
|
|
171
|
+
loops: [],
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
id: "t09_t1_expiry_rc_neq_n2",
|
|
175
|
+
from: "AwaitingConnection",
|
|
176
|
+
on: "T1_expiry",
|
|
177
|
+
guard: "not RC_eq_N2",
|
|
178
|
+
actions: [
|
|
179
|
+
{ verb: "RC := RC + 1", kind: "processing" },
|
|
180
|
+
{ verb: "SABM (P == 1)", kind: "signal_lower" },
|
|
181
|
+
{ verb: "Select_T1_Value", kind: "subroutine" },
|
|
182
|
+
{ verb: "start_T1", kind: "processing" },
|
|
183
|
+
],
|
|
184
|
+
next: "AwaitingConnection",
|
|
185
|
+
notes: "Below retry limit — bump RC, resend SABM with P=1, recalc T1V via\nSelect T1 Value, restart T1.\n",
|
|
186
|
+
references: [
|
|
187
|
+
{ source: "spec_prose", cite: "§6.3.1 ¶2", quote: "If the distant TNC doesn't respond before T1 times out, the originating TNC resends the SABM frame and starts T1 running again.", path: "", function: "", line: 0, note: "" },
|
|
188
|
+
{ source: "linbpq", cite: "", quote: "", path: "L2Code.c", function: "L2TIMEOUT", line: 3763, note: "state-2 timeout, RC<N2: L2RETRIES++, SENDSABM. No 'Select T1' (LinBPQ has no SRT/T1V dynamic update)" },
|
|
189
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "t1_expiry", line: 5469, note: "SET_RC(rc+1), build SABM(P=1) or SABME, lm_data_request, select_t1_value, START_T1, keep state" },
|
|
190
|
+
{ source: "rax25", cite: "", quote: "", path: "src/state.rs", function: "AwaitingConnection::t1", line: 1196, note: "rc += 1, select_t1_value(), t1.start(data.srt) — uses srt rather than t1v, possible deviation" },
|
|
191
|
+
{ source: "linux_oot", cite: "", quote: "", path: "net/ax25/ax25_std_timer.c", function: "ax25_std_t1timer_expiry", line: 134, note: "increments n2count, retransmits SABM/SABME(P=1), ax25_calculate_t1 + ax25_start_t1timer at function tail (173-174)" },
|
|
192
|
+
],
|
|
193
|
+
loops: [],
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
id: "t10_all_other_primitives_from_upper_layer",
|
|
197
|
+
from: "AwaitingConnection",
|
|
198
|
+
on: "all_other_primitives__from_upper_layer",
|
|
199
|
+
guard: "",
|
|
200
|
+
actions: [],
|
|
201
|
+
next: "AwaitingConnection",
|
|
202
|
+
notes: "Catch-all for unhandled primitives drawn with d5\n\"Signal reception from upper layer\". No action — stay in\nAwaitingConnection.\n",
|
|
203
|
+
references: [],
|
|
204
|
+
loops: [],
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
id: "t11_dl_connect_request",
|
|
208
|
+
from: "AwaitingConnection",
|
|
209
|
+
on: "DL_CONNECT_request",
|
|
210
|
+
guard: "",
|
|
211
|
+
actions: [
|
|
212
|
+
{ verb: "discard_queue", kind: "processing" },
|
|
213
|
+
{ verb: "set_layer_3_initiated", kind: "processing" },
|
|
214
|
+
],
|
|
215
|
+
next: "AwaitingConnection",
|
|
216
|
+
notes: "DL-CONNECT while already waiting for connection: discard pending\nqueue and re-mark layer-3-initiated. Stays in AwaitingConnection\n(the existing T1 / RC counters continue).\n",
|
|
217
|
+
references: [
|
|
218
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "dl_connect_request", line: 1039, note: "case state_1 (and state_5): discard_i_queue, layer_3_initiated=1, 'Keep current state'. Matches spec exactly" },
|
|
219
|
+
],
|
|
220
|
+
loops: [],
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
id: "t12_dl_unit_data_request",
|
|
224
|
+
from: "AwaitingConnection",
|
|
225
|
+
on: "DL_UNIT_DATA_request",
|
|
226
|
+
guard: "",
|
|
227
|
+
actions: [
|
|
228
|
+
{ verb: "UI_command", kind: "signal_lower" },
|
|
229
|
+
],
|
|
230
|
+
next: "AwaitingConnection",
|
|
231
|
+
notes: "",
|
|
232
|
+
references: [
|
|
233
|
+
{ source: "spec_prose", cite: "§6.3.7", quote: "AX.25 uses a special frame for this operation, the Unnumbered Information (UI) frame.", path: "", function: "", line: 0, note: "" },
|
|
234
|
+
{ source: "linux_oot", cite: "", quote: "", path: "net/ax25/af_ax25.c", function: "ax25_sendmsg", line: 1657, note: "SOCK_DGRAM path builds UI command, ax25_queue_xmit. Works while STATE_1" },
|
|
235
|
+
],
|
|
236
|
+
loops: [],
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
id: "t13_dl_data_request_layer_3_initiated",
|
|
240
|
+
from: "AwaitingConnection",
|
|
241
|
+
on: "DL_DATA_request",
|
|
242
|
+
guard: "layer_3_initiated",
|
|
243
|
+
actions: [
|
|
244
|
+
{ verb: "push_frame_on_queue", kind: "internal_out" },
|
|
245
|
+
],
|
|
246
|
+
next: "AwaitingConnection",
|
|
247
|
+
notes: "verification_pending: the Yes/No branch labels on this diamond are\nnot drawn in the spec PNG — Tom assumed them when transcribing the\ngraphml. Reading: when L3 initiated the connection, we accept\nincoming I-frame payloads onto the queue for delivery once\nConnected. Could be inverted — flag for upstream check.\n\nDIRECTLY CORROBORATED: direwolf author independently flags the\nsame diamond as confusing at src/ax25_link.c:1466-1473: \"The flow\nchart shows 'push on I frame queue' if layer 3 initiated is NOT\nset. This seems backwards but I don't understand enough yet to\nmake a compelling argument that it is wrong. Implemented as in\nflow chart.\" Direwolf reads the figure with the **opposite** Yes/No\ninterpretation from this transcription (direwolf: !L3-init → push,\nL3-init → discard). Verification REALLY pending — there are now\nthree independent observations of confusion on this diamond\n(Tom, direwolf author, broader spec community).\n",
|
|
248
|
+
references: [
|
|
249
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "data_request_good_size", line: 1464, note: "VERIFICATION PENDING: direwolf reads diamond INVERTED — L3-init → cdata_delete (discard), !L3-init → push to queue. Author comment 1466-1473 acknowledges confusion" },
|
|
250
|
+
],
|
|
251
|
+
loops: [],
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
id: "t14_dl_data_request_not_layer_3_initiated",
|
|
255
|
+
from: "AwaitingConnection",
|
|
256
|
+
on: "DL_DATA_request",
|
|
257
|
+
guard: "not layer_3_initiated",
|
|
258
|
+
actions: [],
|
|
259
|
+
next: "AwaitingConnection",
|
|
260
|
+
notes: "verification_pending: see t13's note. Reading: peer-initiated\nconnection — drop the data silently rather than queue it.\n",
|
|
261
|
+
references: [
|
|
262
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "data_request_good_size", line: 1478, note: "VERIFICATION PENDING: direwolf reads diamond INVERTED — !L3-init falls through to state_3/state_4 block (push to queue), opposite of this transcription" },
|
|
263
|
+
],
|
|
264
|
+
loops: [],
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
id: "t15_i_frame_pops_off_queue_layer_3_initiated",
|
|
268
|
+
from: "AwaitingConnection",
|
|
269
|
+
on: "I_frame_pops_off_queue",
|
|
270
|
+
guard: "layer_3_initiated",
|
|
271
|
+
actions: [
|
|
272
|
+
{ verb: "push_frame_on_queue", kind: "internal_out" },
|
|
273
|
+
],
|
|
274
|
+
next: "AwaitingConnection",
|
|
275
|
+
notes: "verification_pending: shares the (label-assumed) diamond with t13.\n",
|
|
276
|
+
references: [
|
|
277
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "i_frame_pop_off_queue", line: 6560, note: "VERIFICATION PENDING: direwolf reads diamond INVERTED — L3-init → cdata_delete (discard from queue), opposite of this transcription. Author erratum comment at 6555-6558: 'The flow chart seems to be backwards'" },
|
|
278
|
+
],
|
|
279
|
+
loops: [],
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
id: "t16_i_frame_pops_off_queue_not_layer_3_initiated",
|
|
283
|
+
from: "AwaitingConnection",
|
|
284
|
+
on: "I_frame_pops_off_queue",
|
|
285
|
+
guard: "not layer_3_initiated",
|
|
286
|
+
actions: [],
|
|
287
|
+
next: "AwaitingConnection",
|
|
288
|
+
notes: "verification_pending: shares the (label-assumed) diamond with t14.\n",
|
|
289
|
+
references: [
|
|
290
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "i_frame_pop_off_queue", line: 6543, note: "VERIFICATION PENDING: direwolf falls through with no action when !L3-init — opposite of this transcription's reading (we'd push to queue). See t15" },
|
|
291
|
+
],
|
|
292
|
+
loops: [],
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
id: "t17_all_other_primitives_from_lower_layer",
|
|
296
|
+
from: "AwaitingConnection",
|
|
297
|
+
on: "all_other_primitives__from_lower_layer",
|
|
298
|
+
guard: "",
|
|
299
|
+
actions: [],
|
|
300
|
+
next: "AwaitingConnection",
|
|
301
|
+
notes: "",
|
|
302
|
+
references: [
|
|
303
|
+
{ source: "linbpq", cite: "", quote: "", path: "L2Code.c", function: "L2_PROCESS", line: 2066, note: "default case silently releases buffer for unrecognised U-frame responses in states 1/2/4" },
|
|
304
|
+
{ source: "linux_oot", cite: "", quote: "", path: "net/ax25/ax25_std_in.c", function: "ax25_std_state1_machine", line: 91, note: "default: break — any frametype not matched silently ignored in state 1" },
|
|
305
|
+
],
|
|
306
|
+
loops: [],
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
id: "t18_ui_received_p_eq_1",
|
|
310
|
+
from: "AwaitingConnection",
|
|
311
|
+
on: "UI_received",
|
|
312
|
+
guard: "P_eq_1",
|
|
313
|
+
actions: [
|
|
314
|
+
{ verb: "UI_Check", kind: "subroutine" },
|
|
315
|
+
{ verb: "DM (F = 1)", kind: "signal_lower" },
|
|
316
|
+
],
|
|
317
|
+
next: "AwaitingConnection",
|
|
318
|
+
notes: "",
|
|
319
|
+
references: [
|
|
320
|
+
{ source: "spec_prose", cite: "§6.3.5 ¶3", quote: "UI frame with the P bit set to '1' responds with a DM frame with the F bit set to '1'.", path: "", function: "", line: 0, note: "" },
|
|
321
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "ui_frame", line: 5115, note: "if (cr==cmd && pf==1): state_1 falls through with 0/2/5 to DM(F=pf). UI_Check explicitly omitted per header comment 5102-5104: 'UI frames don't go thru here for normal operation'" },
|
|
322
|
+
{ source: "linbpq", cite: "", quote: "", path: "L2Code.c", function: "L2LINKACTIVE", line: 1065, note: "UI dispatched at active-link entry irrespective of state; no DM on P=1, no P-bit branch — divergence" },
|
|
323
|
+
{ source: "linux_oot", cite: "", quote: "", path: "net/ax25/ax25_in.c", function: "ax25_rcv", line: 229, note: "DIVERGES: UI handled before state-machine dispatch, uniformly for all states; no DM(F=1) response on UI(P=1)" },
|
|
324
|
+
],
|
|
325
|
+
loops: [],
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
id: "t19_ui_received_p_eq_0",
|
|
329
|
+
from: "AwaitingConnection",
|
|
330
|
+
on: "UI_received",
|
|
331
|
+
guard: "not P_eq_1",
|
|
332
|
+
actions: [
|
|
333
|
+
{ verb: "UI_Check", kind: "subroutine" },
|
|
334
|
+
],
|
|
335
|
+
next: "AwaitingConnection",
|
|
336
|
+
notes: "",
|
|
337
|
+
references: [
|
|
338
|
+
{ source: "spec_prose", cite: "§6.3.5 ¶3", quote: "The offending frame is ignored.", path: "", function: "", line: 0, note: "" },
|
|
339
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "ui_frame", line: 5110, note: "P=0 case falls through the cr==cmd&&pf==1 guard, function returns with no action. No UI_Check" },
|
|
340
|
+
{ source: "linbpq", cite: "", quote: "", path: "L2Code.c", function: "L2LINKACTIVE", line: 1065, note: "same path as t18; LinBPQ does not branch on P bit for UI" },
|
|
341
|
+
{ source: "linux_oot", cite: "", quote: "", path: "net/ax25/ax25_in.c", function: "ax25_rcv", line: 229, note: "same UI bypass path as t18" },
|
|
342
|
+
],
|
|
343
|
+
loops: [],
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
id: "t20_control_field_error",
|
|
347
|
+
from: "AwaitingConnection",
|
|
348
|
+
on: "control_field_error",
|
|
349
|
+
guard: "",
|
|
350
|
+
actions: [
|
|
351
|
+
{ verb: "DL_ERROR_indication_L", kind: "signal_upper" },
|
|
352
|
+
],
|
|
353
|
+
next: "AwaitingConnection",
|
|
354
|
+
notes: "",
|
|
355
|
+
references: [
|
|
356
|
+
{ source: "linbpq", cite: "", quote: "", path: "L2Code.c", function: "L2_PROCESS", line: 2049, note: "default case sets SDINVC + SDFRMR (transitions to FRMR state); in states 1/2/4 just discards. Uses FRMR, not DL-ERROR(L)" },
|
|
357
|
+
],
|
|
358
|
+
loops: [],
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
id: "t21_info_not_permitted_in_frame",
|
|
362
|
+
from: "AwaitingConnection",
|
|
363
|
+
on: "info_not_permitted_in_frame",
|
|
364
|
+
guard: "",
|
|
365
|
+
actions: [
|
|
366
|
+
{ verb: "DL_ERROR_indication_M", kind: "signal_upper" },
|
|
367
|
+
],
|
|
368
|
+
next: "AwaitingConnection",
|
|
369
|
+
notes: "",
|
|
370
|
+
references: [],
|
|
371
|
+
loops: [],
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
id: "t22_u_or_s_frame_length_error",
|
|
375
|
+
from: "AwaitingConnection",
|
|
376
|
+
on: "u_or_s_frame_length_error",
|
|
377
|
+
guard: "",
|
|
378
|
+
actions: [
|
|
379
|
+
{ verb: "DL_ERROR_indication_N", kind: "signal_upper" },
|
|
380
|
+
],
|
|
381
|
+
next: "AwaitingConnection",
|
|
382
|
+
notes: "",
|
|
383
|
+
references: [
|
|
384
|
+
{ source: "linbpq", cite: "", quote: "", path: "L2Code.c", function: "L2Routine", line: 210, note: "gross frame-length check drops short frames at entry; no DL-ERROR(N) per-state" },
|
|
385
|
+
],
|
|
386
|
+
loops: [],
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
id: "t23_sabm_received",
|
|
390
|
+
from: "AwaitingConnection",
|
|
391
|
+
on: "SABM_received",
|
|
392
|
+
guard: "",
|
|
393
|
+
actions: [
|
|
394
|
+
{ verb: "F := P", kind: "processing" },
|
|
395
|
+
{ verb: "UA", kind: "signal_lower" },
|
|
396
|
+
],
|
|
397
|
+
next: "AwaitingConnection",
|
|
398
|
+
notes: "Collision recovery: SABM from peer while our own SABM is in flight.\nReply UA, stay (our own SABM may still get its UA).\n\nNOTE: direwolf author at src/ax25_link.c:4390-4392 explicitly\nconfirms this reading: \"Erratum! 2006 version shows SABME twice\nfor state 1. First one should be SABM in last page of Figure C4.2.\nOriginal appears to be correct.\" Triangulated upstream-spec\nfinding — the 2006 version of figc4.2 has a SABM/SABME swap bug.\n",
|
|
399
|
+
references: [
|
|
400
|
+
{ source: "spec_prose", cite: "§6.3.6", quote: "Collision Recovery", path: "", function: "", line: 0, note: "" },
|
|
401
|
+
{ source: "linbpq", cite: "", quote: "", path: "L2Code.c", function: "L2LINKACTIVE", line: 1243, note: "SABM in state 1 (XID-sent) calls L2SABM, sends UA via SETUPNEWL2SESSION. State 2 collision falls through; F:=P semantics not modelled — verification pending" },
|
|
402
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "sabm_e_frame", line: 4388, note: "case state_1 !extended: build UA with f=p, stay in state 1. Author erratum comment 4390-4392 confirms original 1998 figure is correct (2006 has SABM/SABME swap bug)" },
|
|
403
|
+
{ source: "rax25", cite: "", quote: "", path: "src/state.rs", function: "AwaitingConnection::sabm", line: 1250, note: "returns SendUa{pf: packet.poll}; F:=P implicit via UA's pf field; stays in AwaitingConnection. Matches spec" },
|
|
404
|
+
{ source: "linux_oot", cite: "", quote: "", path: "net/ax25/ax25_std_in.c", function: "ax25_std_state1_machine", line: 42, note: "sets modulus/window, sends UA with pf passed through (F:=P implicit), stays" },
|
|
405
|
+
],
|
|
406
|
+
loops: [],
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
id: "t24_sabme_received",
|
|
410
|
+
from: "AwaitingConnection",
|
|
411
|
+
on: "SABME_received",
|
|
412
|
+
guard: "",
|
|
413
|
+
actions: [
|
|
414
|
+
{ verb: "F := P", kind: "processing" },
|
|
415
|
+
{ verb: "DM", kind: "signal_lower" },
|
|
416
|
+
],
|
|
417
|
+
next: "AwaitingConnection22",
|
|
418
|
+
notes: "SABME received while we sent SABM (v2.0). Reply DM and move to\n'Awaiting 2.2 Connection' (state 5 in the figure / figc4.6) — peer\nwants v2.2, we'll handle the next collision step there.\n",
|
|
419
|
+
references: [
|
|
420
|
+
{ source: "spec_prose", cite: "§6.3.1 ¶3", quote: "If the distant TNC receives a SABM(E) command and cannot enter the indicated state, it sends a DM frame.", path: "", function: "", line: 0, note: "" },
|
|
421
|
+
{ source: "direwolf", cite: "", quote: "", path: "src/ax25_link.c", function: "sabm_e_frame", line: 4379, note: "case state_1 extended: build DM with f=p, enter_new_state(state_5_awaiting_v22_connection). Matches spec; direwolf explicitly notes 'Don't combine with state 5. They are slightly different.' at 4377" },
|
|
422
|
+
],
|
|
423
|
+
loops: [],
|
|
424
|
+
},
|
|
425
|
+
],
|
|
426
|
+
};
|
|
427
|
+
//# sourceMappingURL=awaiting_connection.g.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awaiting_connection.g.js","sourceRoot":"","sources":["../../src/ax25sdl/awaiting_connection.g.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awaiting_connection.g.test.d.ts","sourceRoot":"","sources":["../../src/ax25sdl/awaiting_connection.g.test.ts"],"names":[],"mappings":""}
|