xref: /original-bsd/share/man/man4/iso.4 (revision 95ecee29)
1.\" Copyright (c) 1990, 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" %sccs.include.redist.man%
5.\"
6.\"     @(#)iso.4	8.2 (Berkeley) 11/30/93
7.\"
8.Dd
9.Dt ISO 4
10.Os
11.Sh NAME
12.Nm iso
13.Nd
14.Tn ISO
15protocol family
16.Sh SYNOPSIS
17.Fd #include <sys/types.h>
18.Fd #include <netiso/iso.h>
19.Sh DESCRIPTION
20The
21.Tn ISO
22protocol family is a collection of protocols
23that uses the
24.Tn ISO
25address format.
26The
27.Tn ISO
28family provides protocol support for the
29.Dv SOCK_SEQPACKET
30abstraction through the
31.Tn TP
32protocol
33.Pf ( Tn ISO
348073),
35for the
36.Dv SOCK_DGRAM
37abstraction through the connectionless transport
38protocol
39.Pf ( Tn ISO
408602),
41and for the
42.Dv SOCK_RAW
43abstraction
44by providing direct access (for debugging) to the
45.Tn CLNP
46.Pf ( Tn ISO
478473) network layer protocol.
48.Sh ADDRESSING
49.Tn ISO
50addresses are based upon
51.Tn ISO
528348/AD2,
53.%T "Addendum to the Network Service Definition Covering Network Layer Addressing."
54.Pp
55Sockets bound to the OSI protocol family use
56the following address structure:
57.Bd -literal
58struct iso_addr {
59     u_char    isoa_len;  /* length, not including this byte */
60     char      isoa_genaddr[20];  /* general opaque address */
61};
62
63struct sockaddr_iso {
64     u_char    siso_len;      /* size of this sockaddr */
65     u_char    siso_family;   /* addressing domain, AF_ISO */
66     u_char    siso_plen;     /* presentation selector length */
67     u_char    siso_slen;     /* session selector length */
68     u_char    siso_tlen;     /* transport selector length */
69     struct    iso_addr siso_addr; /* network address */
70     u_char    siso_pad[6];    /* space for gosip v2 SELs */
71};
72#define siso_nlen siso_addr.isoa_len
73#define siso_data siso_addr.isoa_genaddr
74.Ed
75.Pp
76The fields of this structure are:
77.Bl -tag -width Ds
78.It Ar siso_len:
79Length of the entire address structure, in bytes, which may grow to
80be longer than the 32 bytes shown above.
81.It Ar siso_family:
82Identifies the domain:
83.Dv AF_ISO .
84.It Ar siso_tlen:
85Length of the transport selector.
86.It Ar siso_slen:
87Length of the session selector.
88This is not currently supported by the kernel and is provided as
89a convenience for user level programs.
90.It Ar siso_plen:
91Length of the presentation selector.
92This is not currently supported by the kernel and is provided as
93a convenience for user level programs.
94.It Ar siso_addr:
95The network part of the address, described below.
96.El
97.Sh TRANSPORT ADDRESSING
98.Pp
99An
100.Tn ISO
101transport address is similar to an Internet address in that
102it contains a network-address portion and a portion that the
103transport layer uses to multiplex its services among clients.
104In the Internet domain, this portion of the address is called a
105.Em port .
106In the
107.Tn ISO
108domain, this is called a
109.Em transport selector
110(also known at one time as a
111.Em transport suffix ) .
112While ports are always 16 bits,
113transport selectors may be
114of (almost) arbitrary size.
115.Pp
116Since the C language does not provide convenient variable
117length structures, we have separated the selector lengths
118from the data themselves.
119The network address and various selectors are stored contiguously,
120with the network address first, then the transport selector, and so
121on.  Thus, if you had a nework address of less then 20 bytes,
122the transport selector would encroach on space normally reserved
123for the network address.
124.Pp
125.Sh NETWORK ADDRESSING.
126.Tn ISO
127network addresses are limited to 20 bytes in length.
128.Tn ISO
129network addresses can take any format.
130.Sh PROTOCOLS
131The
132.Tn ARGO
1331.0 implementation of the
134.Tn ISO
135protocol family comprises
136the Connectionless-Mode Network Protocol
137.Pq Tn CLNP ,
138and the Transport Protocol
139.Pq Tn TP ,
140classes 4 and 0,
141and
142.Tn X.25 .
143.Tn TP
144is used to support the
145.Dv SOCK_SEQPACKET
146abstraction.
147A raw interface to
148.Tn CLNP
149is available
150by creating an
151.Tn ISO
152socket of type
153.Dv SOCK_RAW .
154This is used for
155.Tn CLNP
156debugging only.
157.Sh SEE ALSO
158.Xr tp 4 ,
159.Xr clnp 4 ,
160.Xr cltp 4
161