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