Skip to content

Latest commit

 

History

History
65 lines (52 loc) · 2.46 KB

File metadata and controls

65 lines (52 loc) · 2.46 KB

PyAX25_22 AX.25 v2.2 Compliance Report

Date: January 02, 2026
Version: 1.0.1
Author: Kris Kirby, KE4AHR

Compliance Status: Fully Compliant

PyAX25_22 implements AX.25 v2.2 (July 1998) Link Layer protocol in full, with no known deviations.

Implemented Features

  • All frame types
    • I-frames (information)
    • S-frames (RR, RNR, REJ, SREJ)
    • U-frames (SABM/SABME, UA, DISC, DM, FRMR, UI, XID, TEST)
  • Modulo 8 and Modulo 128 operation
  • Full address field
    • Source and destination callsigns with SSID (0-15)
    • Up to 8 digipeaters with proper H-bit (has-been-repeated) handling
    • Command/Response (C) bit support
  • Bit stuffing and destuffing
  • FCS: CRC-16/CCITT-FALSE (polynomial 0x8408, init 0xFFFF)
  • XID parameter negotiation
    • Modulo, window size (k), max frame (N1), SREJ support
  • Connected mode
    • Complete state machine per Section 4 SDL diagrams
    • Adaptive T1 acknowledgment timer (SRTT algorithm)
    • T3 idle probe timer
    • Full flow control (RR/RNR/REJ/SREJ)
    • Outstanding frame tracking and retransmission
  • Unconnected mode
    • UI frames for beacons, APRS, PACSAT broadcasts
  • Transport interfaces
    • KISS over serial (KISSSerial) and TCP (KISSTCP)
    • XKISS multi-drop with active/passive polling and per-port DIGIPEAT
    • SMACK (Stuttgart Modified Amateur Radio CRC-KISS) with CRC-16 auto-switch
    • AGWPE TCP/IP complete client (AGWPEClient) and bridge to serial TNC (AGWSerial)
    • FX.25 Reed-Solomon forward error correction (FX25Encoder, FX25Decoder)
  • Concurrency
    • Synchronous (threaded) APIs: KISSSerial, KISSTCP, XKISS, SMACK, AGWPEClient
    • Asynchronous (asyncio) APIs: AsyncKISSTCP, AsyncAGWPEClient
    • Thread-safe background I/O with locks and queues

Testing

  • 324/324 unit and integration tests passing (100%)
  • End-to-end integration tests with mock transports
  • Automated compliance validation script (evaluations/compliant_report.py)

Reference Documents

Implementation based directly on:

  • AX.25 Link Access Protocol for Amateur Packet Radio v2.2 (July 1998)
  • Multi-Drop KISS Operation -- Karl Medcalf WK5M
  • AGW TCP/IP Socket Interface -- George Rossopoulos SV2AGW (2000)
  • AGWPE TCP/IP API Tutorial -- Pedro E. Colla LU7DID & SV2AGW
  • PACSAT File Header Definition -- Jeff Ward G0/K8KA & Harold Price NK6K

PyAX25_22 is fully compliant with AX.25 v2.2 and ready for production use in amateur packet radio applications.

73 de KE4AHR

Copyright (C) 2025-2026 Kris Kirby, KE4AHR