date and time created 90/05/30 13:40:55 by sklower
authorKeith Sklower <sklower@ucbvax.Berkeley.EDU>
Thu, 31 May 1990 04:40:55 +0000 (20:40 -0800)
committerKeith Sklower <sklower@ucbvax.Berkeley.EDU>
Thu, 31 May 1990 04:40:55 +0000 (20:40 -0800)
SCCS-vsn: share/man/man4/iso.4 6.1

usr/src/share/man/man4/iso.4 [new file with mode: 0644]

diff --git a/usr/src/share/man/man4/iso.4 b/usr/src/share/man/man4/iso.4
new file mode 100644 (file)
index 0000000..f64f830
--- /dev/null
@@ -0,0 +1,114 @@
+.\" Copyright (c) 1990 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" %sccs.include.redist.man%
+.\"
+.\"    @(#)iso.4       6.1 (Berkeley) %G%
+.\"
+.TH ISO 4F ""
+.UC  4
+.SH NAME
+iso \- ISO protocol family
+.SH SYNOPSIS
+.B #include <sys/types.h>
+.br
+.B #include <netiso/iso.h>
+.SH DESCRIPTION
+The ISO protocol family is a collection of protocols
+that uses the ISO address format.
+The ISO family provides protocol support for the
+SOCK_SEQPACKET abstraction through the TP protocol (ISO 8073), 
+for the SOCK_DGRAM abstraction through the connectionless transport
+protocol (ISO 8602),
+and for the SOCK_RAW abstraction
+by providing direct access (for debugging) to the
+CLNP (ISO 8473) network layer protocol.
+.SH ADDRESSING
+ISO addresses are based upon ISO 8348/AD2, 
+"Addendum to the Network Service Definition Covering Network Layer Addressing."
+.PP
+Sockets bound to the OSI protocol family use
+the following address structure:
+.sp 1
+.nf
+._f
+struct iso_addr {
+       u_char  isoa_len;               /* length, not including this byte */
+       char    isoa_genaddr[20];       /* general opaque address */
+};
+
+struct sockaddr_iso {
+       u_char  siso_len;               /* size of this sockaddr */
+       u_char  siso_family;            /* addressing domain, AF_ISO */
+       u_char  siso_plen;              /* presentation selector length */
+       u_char  siso_slen;              /* session selector length */
+       u_char  siso_tlen;              /* transport selector length */
+       struct  iso_addr siso_addr;     /* network address */
+       u_char  siso_pad[6];            /* space for gosip v2 SELs */
+};
+#define siso_nlen siso_addr.isoa_len
+#define siso_data siso_addr.isoa_genaddr
+.sp 1
+.fi
+.PP
+The fields of this structure are:
+.TP 10
+\fIsiso_len:\fR
+Length of the entire address structure, in bytes, which may grow to
+be longer than the 32 bytes show above.
+.TP 10
+\fIsiso_family:\fR
+Identifies the domain: AF_ISO.
+.TP 10
+\fIsiso_tlen:\fR
+Length of the transport selector.
+.TP 10
+\fIsiso_slen:\fR
+Length of the session selector.
+This is not currently supported by the kernel and is provided as
+a convenience for user level programs.
+.TP 10
+\fIsiso_plen:\fR
+Length of the presentation selector.
+This is not currently supported by the kernel and is provided as
+a convenience for user level programs.
+.TP 10
+\fIsiso_addr:\fR
+The network part of the address, described below.
+.SS TRANSPORT ADDRESSING
+.PP
+An ISO transport address is similar to an Internet address in that
+it contains a network-address portion and a portion that the
+transport layer uses to multiplex its services among clients.
+In the Internet domain, this portion of the address is called a \fIport\fR.
+In the ISO domain, this is called a \fItransport selector\fR
+(also known at one time as a \fItransport suffix\fR).
+While ports are always 16 bits, 
+transport selectors may be
+of (almost) arbitrary size.
+.PP
+Since the C language does not provide conveninent variable
+length structures, we have separated the selector lengths
+from the data themselves.
+The network address and various selectors are stored contiguously,
+with the network address first, then the transport selector, and so
+on.  Thus, if you had a nework address of less then 20 bytes,
+the transport selector would encroach on space normally reserved
+for the network address.
+.PP
+.SS NETWORK ADDRESSING.
+ISO network addresses are limited to 20 bytes in length.
+ISO network addresses can take any format.
+.SH PROTOCOLS
+The ARGO 1.0 implementation of the 
+ISO protocol family comprises
+the Connectionless-Mode Network Protocol (CLNP), 
+and the Transport Protocol (TP), classes 4 and 0,
+and X.25.
+TP is used to support the SOCK_SEQPACKET
+abstraction.
+A raw interface to CLNP is available
+by creating an ISO socket of type SOCK_RAW.
+This is used for CLNP debugging only.
+.SH SEE ALSO
+tp(4), clnp(4), cltp(4)