Originální popis anglicky:
x25, PF_X25 - ITU-T X.25 / ISO-8208 protocol interface.
Návod, kniha: Linux Programmer's Manual
#include <sys/socket.h>
#include <linux/x25.h>
x25_socket = socket(PF_X25, SOCK_SEQPACKET, 0);
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 standardised 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.
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.
The following X.25 specific socket options can be set by using
setsockopt(2) and read with
getsockopt(2) with the level
parameter 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.
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.
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
The PF_X25 protocol family is a new feature of Linux 2.2.