Provided by: manpages_5.13-1_all bug

NAME

       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 null byte) 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 5.13 of the Linux man-pages project.  A description of the
       project, information about reporting bugs, and the latest version of  this  page,  can  be
       found at https://www.kernel.org/doc/man-pages/.