1AX25(4) Linux Programmer's Manual AX25(4)
2
3
4
6 AF_AX25 - AX.25 amateur packet radio protocol family
7
9 AX.25 is a protocol used extensively by radio amateurs. The Linux AX.25
10 protocol family permits access to these protocols via the standard net‐
11 working socket metaphor.
12
13 The AX.25 protocol layer supports both connected mode and datagram (UI)
14 frame modes. IP traffic may be stacked on top of AX.25 frames for IP
15 transmission over the AX.25 medium.
16
17 The primary mode of operation is connected mode which is the mode used
18 for a socket of type SOCK_SEQPACKET (stream sockets are not available
19 in AX.25). This requires that the user ensures output data is suitably
20 packetised, and that input data is read a packet at a time into a buf‐
21 fer of suitable size. The Linux AX.25 protocol layer can operate in
22 standard AX.25 mode with three bit sequence numbers or in PE1CHL
23 extended AX.25 mode which uses seven bit sequence numbers. The protocol
24 passed to the socket is used for all outgoing frames. Passing 0 causes
25 the normal AX.25 Text PID to be used.
26
27 SOCK_DGRAM gives access to AX.25 UI frames. For access to special
28 frames (of any form) SOCK_RAW can be used. There is no SOCK_PACKET sup‐
29 port under AX.25. Instead an AF_INET socket of type SOCK_PACKET should
30 be used.
31
32 AX.25 addresses consist of 6 ascii characters and a number called the
33 SSID. These are encoded into a sockaddr_ax25 structure which is pro‐
34 vided to the relevant system calls. When digipeaters are included a
35 callsign path can be much more complex. When this is the case a struct
36 full_sockaddr_ax25 should be passed to the system calls.
37
38 AX.25 has some unusual properties. Notably in a multi-user system an
39 AX.25 address is often associated with a user, and some users may not
40 have such an association. a set of ioctl calls are provided to manage
41 an association table, and in addition the superuser may use an arbitary
42 callsign by binding to the callsign desired and specifying the port to
43 use as a first digipeated hop.
44
45 AX.25 supports the following socket options for SOL_AX25. AX25_T1 is
46 the T1 timer in 1/10ths of a second, AX25_T2 is the T2 timer in 1/10ths
47 of a second, AX25_T3 is the T3 timer. The window is settable with
48 AX25_WINDOW. AX25_N2, the retry counter is also configurable. There is
49 no 'infinite retry' option supported however. The method of backoff for
50 retries is configurable via the socket option AX25_BACKOFF, a value of
51 true indicates the use of exponential backoff and false simple linear
52 backoff. The mode of a connection made be altered to be either standard
53 AX.25 or extended AX.25 via AX25_EXTSEQ. It is possible to have the
54 complete AX.25 header returned to the application by setting
55 AX25_HDRINCL to true, programs must be aware of the internal structure
56 of AX.25 frames to use this option. Note that if AX.25 fragmentation is
57 encountered, only the control information of the first frame is
58 returned along with the defragmented data.
59
61 call(1), socket(2), setsockopt(2), getsockopt(2), axctl(8), axports(5),
62 axparms(8), kissattach(8).
63
65 Too numerous to list in full currently.
66
67 · Minor protocol violations exist.
68
70 Alan Cox GW4PTS <alan@cymru.net>
71 Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>
72
73
74
75Linux 1 August 2017 AX25(4)