AX25(4) Linux Programmer's Manual AX25(4)
NAME
AF_AX25 - AX.25 amateur packet radio protocol family
DESCRIPTION
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 socket metaphor.
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.
The primary mode of operation is connected mode which is
the mode used for a socket of type 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.
SOCK_DGRAM gives access to AX.25 UI frames. For access to
special frames (of any form) SOCK_RAW can be used. There
is no SOCK_PACKET support under AX.25. Instead an AF_INET
socket of type SOCK_PACKET should be used.
AX.25 addresses consist of 6 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_sock-
addr_ax25 should be passed to the system calls.
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 arbitary callsign
by binding to the callsign desired and specifying the port
to use as a first digipeated hop.
AX.25 supports the following socket options for SOL_AX25.
AX25_T1 is the T1 timer in 1/10ths of a second, AX25_T2 is
the T2 timer in 1/10ths of a second, AX25_T3 is the T3
timer. The window is settable with AX25_WINDOW. AX25_N2,
the retry counter is also configurable. There is no 'infi-
nite retry' option supported however. The method of back-
off for retries is configurable via the socket option
AX25_BACKOFF, a value of true indicates the use of expo-
nential 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 AX25_EXTSEQ. It is possible to
have the complete AX.25 header returned to the application
by setting 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.
SEE ALSO
call(1), socket(2), setsockopt(2), getsockopt(2),
axctl(8), axparms(5), axassociate(8), axparms(8), kissat-
tach(8).
BUGS
Too numerous to list in full currently.
· Minor protocol violations exist.
AUTHOR
Alan Cox GW4PTS <alan@cymru.net>
Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>
Linux 15 October 1996 AX25(4)
Generated by dwww version 1.7.6.woody.1 on Wed Sep 8 22:25:49 CEST 2010.