Skip to content
packethackingPublic

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

79 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ax25spec

doc/ax.25.2.2.4_Oct_25.md is a Markdown version of AX.25 Link Access Protocol for Amateur Packet Radio version 2.2 Revision 4: 27 October 2025

doc/ax.25.2.3-draft.md is an in-progress draft of a v2.3 AX.25 spec. The filename is stable across revisions; each iteration of the draft is marked with an annotated git tag (ax25-v2.3.0.0, ax25-v2.3.0.1, ax25-v2.3.0.2, …). The first three components are the version the working group will eventually release (v2.3.0); the fourth increments per draft iteration, and ax25-v2.3.0 itself is reserved for the release. The draft's changelog table records what changed. Tags are namespaced with ax25- so revisions of the other specs in this repo can be tagged alongside.

doc/kiss-tnc-protocol.md is a Markdown version of the KISS TNC protocol specification.

doc/multi-drop-kiss-operation.md is a Markdown version of the Multi-Drop KISS operation specification. This document also describes G8BPQ's Acknowledgement Mode, better known as ACKMODE.

doc/il2p-specification-v0.6.md is a Markdown version of version 0.6 of the Improved Layer 2 Protocol (IL2P).

The source documents are in /src.

doc/fbb-forwarding-protocol.md is a description of the FBB (F6FBB) Forwarding Protocol compiled from public sources, covering message forwarding between amateur packet radio BBS systems, including compressed transfer modes and the B2F extension used by Winlink.

Machine-readable SDL sources — spec-sdl/

spec-sdl/ holds the normative machine-readable transcriptions of the AX.25 state-machine SDL figures (the Annex C figc4.x series), relocated here from packet-net/ax25sdl (git history preserved) so that a single PR in this repo can change a figure and its prose together.

Path What Normative or derived
spec-sdl/**/sdl/*.graphml The canonical yEd figure sources Normative
spec-sdl/**/yaml/*.sdl.yaml Transcriptions generated from the graphml by ax25sdl's Packet.Sdl.Transcribe walker, committed here Derived (drift-locked by CI)
spec-sdl/**/yaml/*.citations.yaml Human-curated evidence/citation sidecars Normative
spec-sdl/**/svg/ Figure renders — the human-reviewable visual diff for figure changes (regenerate with python3 tools/render/render_all.py) Derived
spec-sdl/**/mmd/*.g.mmd Mermaid renderings (emitted by ax25sdl's codegen) Derived
spec-sdl/schema/, events.yaml, predicates.yaml, actions.yaml The SDL YAML DSL schema + canonical event/predicate/action catalogues Normative

The derived-artifact chain: graphml → yaml happens here — CI's transcribe-drift job regenerates the yaml with the packet-net/ax25sdl tooling commit pinned in .github/ax25sdl-tooling-ref and fails on drift. yaml → generated code happens downstream in packet-net/ax25sdl, which consumes this repo as a pinned git submodule and emits ready-to-use state tables for C#, TypeScript, Go, Rust, C, Python and JSON. Figure/spec changes are made here; a pin-bump PR in ax25sdl then regenerates the language backends.

The transcription discipline (shape classes, encode-then-verify, revision provenance) is documented in ax25sdl's docs/ (sdl-primer.md, sdl-transcription-runbook.md).

Reviewing a figure change — tools/svgdiff/

The svg/ renders are auto-laid-out, so adding one node reflows the whole page and a plain image diff of the render is unreadable: a single added decision diamond moves nearly every edge by a few pixels. tools/svgdiff/svg_diff.py diffs the figure's structure instead — nodes, edge endpoints and free labels get position-independent signatures, so layout movement cancels out and only genuinely added or removed content is reported.

# every SVG that differs on a PR branch, against the point it forked from
python3 tools/svgdiff/svg_diff.py main my-branch --all --merge-base
spec-sdl/v2.2-errata/data-link/svg/DataLink_Connected.svg
  + node   V(r) < N(s) < V(r) + k?
  + edge   N(s) == V(r)? → V(r) < N(s) < V(r) + k?
  + edge   V(r) < N(s) < V(r) + k? → Discard Contents of I Frame
  − edge   N(s) == V(r)? → Reject Exception?
  viewer: build/svgdiff/svgdiff-DataLink_Connected.html

Alongside the change list it writes a self-contained HTML viewer per figure (both renders embedded; no network, no dependencies) with new/old/swipe/onion-skin/blink/difference views and a clickable change list that zooms straight to each change. --format markdown emits the same list as a table for a PR comment; --no-html skips the viewers. Output lands in the gitignored build/svgdiff/.

Please feel free to raise issues and PRs vs this repo.

Future targets

  • APRS101.pdf and the corrections page

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages