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.1 (Berkeley) 06/09/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 show 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 conveninent 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