1AX25(4)                    Linux Programmer's Manual                   AX25(4)


6       AF_AX25 - AX.25 amateur packet radio protocol family


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.
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.
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.
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.
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.
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.
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.


61       call(1), socket(2), setsockopt(2), getsockopt(2), axctl(8), axports(5),
62       axparms(8), kissattach(8).


65       Too numerous to list in full currently.
67       ·  Minor protocol violations exist.


70       Alan Cox GW4PTS <alan@cymru.net>
71       Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>
75Linux                            1 August 2017                         AX25(4)