home   contributing   bugs   download   online pages  

NAME | SYNOPSIS | DESCRIPTION | VERSIONS | BUGS | SEE ALSO | COLOPHON


X25(7)                        Linux Programmer's Manual                        X25(7)

NAME         top

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

SYNOPSIS         top

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

       x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0);

DESCRIPTION         top

       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 re-assembling
       long messages by means of the X.25 M-bit.  There is no hard-coded upper limit
       for the message size.  However, re-assembling 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         top

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

BUGS         top

       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         top

       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         top

       This page is part of release 3.23 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/.

Linux                                 2008-08-08                               X25(7)