Man Linux: Main Page and Category List

NAME

       x25, AF_X25 - ITU-T X.25 / ISO-8208 protocol interface.

SYNOPSIS

       #include <sys/socket.h>
       #include <linux/x25.h>

       x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0);

DESCRIPTION

       X25  sockets  provide  an  interface to the X.25 packet layer protocol.
       This allows applications to communicate over a public X.25 data network
       as    standardized    by    International   Telecommunication   Union’s
       recommendation X.25 (X.25 DTE-DCE mode).  X25 sockets can also be  used
       for  communication  without  an intermediate X.25 network (X.25 DTE-DTE
       mode) as described in ISO-8208.

       Message boundaries are  preserved  —  a  read(2)  from  a  socket  will
       retrieve  the  same  chunk  of  data  as  output with the corresponding
       write(2) to the peer socket.  When necessary, the kernel takes care  of
       segmenting  and  reassembling long messages by means of the X.25 M-bit.
       There is no hard-coded upper limit  for  the  message  size.   However,
       reassembling  of a long message might fail if there is a temporary lack
       of system resources or when other constraints (such as socket memory or
       buffer  size  limits)  become  effective.   If  that  occurs,  the X.25
       connection will be reset.

   Socket Addresses
       The AF_X25 socket address  family  uses  the  struct  sockaddr_x25  for
       representing  network  addresses  as  defined  in  ITU-T recommendation
       X.121.

           struct sockaddr_x25 {
               sa_family_t sx25_family;    /* must be AF_X25 */
               x25_address sx25_addr;      /* X.121 Address */
           };

       sx25_addr contains a char array x25_addr[] to be interpreted as a null-
       terminated  string.   sx25_addr.x25_addr[]  consists  of  up to 15 (not
       counting the terminating 0) ASCII characters forming the X.121 address.
       Only the decimal digit characters from '0' to '9' are allowed.

   Socket Options
       The  following  X.25-specific  socket  options  can  be  set  by  using
       setsockopt(2) and read with getsockopt(2) with the level  argument  set
       to SOL_X25.

       X25_QBITINCL
              Controls   whether  the  X.25  Q-bit  (Qualified  Data  Bit)  is
              accessible by the user.  It expects an integer argument.  If set
              to  0 (default), the Q-bit is never set for outgoing packets and
              the Q-bit of incoming packets is  ignored.   If  set  to  1,  an
              additional  first byte is prepended to each message read from or
              written to the socket.  For data read from the socket, a 0 first
              byte  indicates  that  the  Q-bits of the corresponding incoming
              data packets were not set.  A first byte with value 1  indicates
              that  the  Q-bit  of the corresponding incoming data packets was
              set.  If the first byte of the data written to the socket  is  1
              the  Q-bit  of  the  corresponding outgoing data packets will be
              set.  If the first byte is 0 the Q-bit will not be set.

VERSIONS

       The AF_X25 protocol family is a new feature of Linux 2.2.

BUGS

       Plenty, as the X.25 PLP implementation is CONFIG_EXPERIMENTAL.

       This man page is incomplete.

       There is no dedicated application programmer’s  header  file  yet;  you
       need    to    include    the    kernel   header   file   <linux/x25.h>.
       CONFIG_EXPERIMENTAL might  also  imply  that  future  versions  of  the
       interface are not binary compatible.

       X.25  N-Reset events are not propagated to the user process yet.  Thus,
       if a reset occurred, data might be lost without notice.

SEE ALSO

       socket(2), socket(7)

       Jonathan Simon Naylor: “The Re-Analysis and Re-Implementation of X.25.”
       The URL is
              ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz

COLOPHON

       This  page  is  part of release 3.24 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at http://www.kernel.org/doc/man-pages/.