Provided by: ax25-tools_0.0.10-rc2+cvs20120204-3ubuntu1_amd64 bug


       AF_AX25 - AX.25 amateur packet radio protocol family


       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_sockaddr_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 'infinite retry' option supported however. The method of backoff
       for retries is configurable via the socket option 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  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.


       call(1), socket(2), setsockopt(2), getsockopt(2),  axctl(8),  axparms(5),  axassociate(8),
       axparms(8), kissattach(8).


       Too numerous to list in full currently.

       •  Minor protocol violations exist.


       Alan Cox GW4PTS <>
       Jonathan Naylor G4KLX <>