1*47675Scael.\" Copyright (c) 1990, 1991 The Regents of the University of California. 242481Ssklower.\" All rights reserved. 342481Ssklower.\" 442481Ssklower.\" %sccs.include.redist.man% 542481Ssklower.\" 6*47675Scael.\" @(#)iso.4 6.2 (Berkeley) 03/28/91 742481Ssklower.\" 8*47675Scael.Dd 9*47675Scael.Dt ISO 4 10*47675Scael.Os 11*47675Scael.Sh NAME 12*47675Scael.Nm iso 13*47675Scael.Nd 14*47675Scael.Tn ISO 15*47675Scaelprotocol family 16*47675Scael.Sh SYNOPSIS 17*47675Scael.Fd #include <sys/types.h> 18*47675Scael.Fd #include <netiso/iso.h> 19*47675Scael.Sh DESCRIPTION 20*47675ScaelThe 21*47675Scael.Tn ISO 22*47675Scaelprotocol family is a collection of protocols 23*47675Scaelthat uses the 24*47675Scael.Tn ISO 25*47675Scaeladdress format. 26*47675ScaelThe 27*47675Scael.Tn ISO 28*47675Scaelfamily provides protocol support for the 29*47675Scael.Dv SOCK_SEQPACKET 30*47675Scaelabstraction through the 31*47675Scael.Tn TP 32*47675Scaelprotocol 33*47675Scael.Pf ( Tn ISO 34*47675Scael8073), 35*47675Scaelfor the 36*47675Scael.Dv SOCK_DGRAM 37*47675Scaelabstraction through the connectionless transport 38*47675Scaelprotocol 39*47675Scael.Pf ( Tn ISO 40*47675Scael8602), 41*47675Scaeland for the 42*47675Scael.Dv SOCK_RAW 43*47675Scaelabstraction 4442481Ssklowerby providing direct access (for debugging) to the 45*47675Scael.Tn CLNP 46*47675Scael.Pf ( Tn ISO 47*47675Scael8473) network layer protocol. 48*47675Scael.Sh ADDRESSING 49*47675Scael.Tn ISO 50*47675Scaeladdresses are based upon 51*47675Scael.Tn ISO 52*47675Scael8348/AD2, 53*47675Scael.%T "Addendum to the Network Service Definition Covering Network Layer Addressing." 54*47675Scael.Pp 5542481SsklowerSockets bound to the OSI protocol family use 5642481Ssklowerthe following address structure: 57*47675Scael.Bd -literal 5842481Ssklowerstruct iso_addr { 59*47675Scael u_char isoa_len; /* length, not including this byte */ 60*47675Scael char isoa_genaddr[20]; /* general opaque address */ 6142481Ssklower}; 6242481Ssklower 6342481Ssklowerstruct sockaddr_iso { 64*47675Scael u_char siso_len; /* size of this sockaddr */ 65*47675Scael u_char siso_family; /* addressing domain, AF_ISO */ 66*47675Scael u_char siso_plen; /* presentation selector length */ 67*47675Scael u_char siso_slen; /* session selector length */ 68*47675Scael u_char siso_tlen; /* transport selector length */ 69*47675Scael struct iso_addr siso_addr; /* network address */ 70*47675Scael u_char siso_pad[6]; /* space for gosip v2 SELs */ 7142481Ssklower}; 7242481Ssklower#define siso_nlen siso_addr.isoa_len 7342481Ssklower#define siso_data siso_addr.isoa_genaddr 74*47675Scael.Ed 75*47675Scael.Pp 7642481SsklowerThe fields of this structure are: 77*47675Scael.Bl -tag -width Ds 78*47675Scael.It Ar siso_len: 7942481SsklowerLength of the entire address structure, in bytes, which may grow to 8042481Ssklowerbe longer than the 32 bytes show above. 81*47675Scael.It Ar siso_family: 82*47675ScaelIdentifies the domain: 83*47675Scael.Dv AF_ISO . 84*47675Scael.It Ar siso_tlen: 8542481SsklowerLength of the transport selector. 86*47675Scael.It Ar siso_slen: 8742481SsklowerLength of the session selector. 8842481SsklowerThis is not currently supported by the kernel and is provided as 8942481Ssklowera convenience for user level programs. 90*47675Scael.It Ar siso_plen: 9142481SsklowerLength of the presentation selector. 9242481SsklowerThis is not currently supported by the kernel and is provided as 9342481Ssklowera convenience for user level programs. 94*47675Scael.It Ar siso_addr: 9542481SsklowerThe network part of the address, described below. 96*47675Scael.El 97*47675Scael.Sh TRANSPORT ADDRESSING 98*47675Scael.Pp 99*47675ScaelAn 100*47675Scael.Tn ISO 101*47675Scaeltransport address is similar to an Internet address in that 10242481Ssklowerit contains a network-address portion and a portion that the 10342481Ssklowertransport layer uses to multiplex its services among clients. 104*47675ScaelIn the Internet domain, this portion of the address is called a 105*47675Scael.Em port . 106*47675ScaelIn the 107*47675Scael.Tn ISO 108*47675Scaeldomain, this is called a 109*47675Scael.Em transport selector 110*47675Scael(also known at one time as a 111*47675Scael.Em transport suffix ) . 11242481SsklowerWhile ports are always 16 bits, 11342481Ssklowertransport selectors may be 11442481Ssklowerof (almost) arbitrary size. 115*47675Scael.Pp 11642481SsklowerSince the C language does not provide conveninent variable 11742481Ssklowerlength structures, we have separated the selector lengths 11842481Ssklowerfrom the data themselves. 11942481SsklowerThe network address and various selectors are stored contiguously, 12042481Ssklowerwith the network address first, then the transport selector, and so 12142481Sskloweron. Thus, if you had a nework address of less then 20 bytes, 12242481Ssklowerthe transport selector would encroach on space normally reserved 12342481Ssklowerfor the network address. 124*47675Scael.Pp 125*47675Scael.Sh NETWORK ADDRESSING. 126*47675Scael.Tn ISO 127*47675Scaelnetwork addresses are limited to 20 bytes in length. 128*47675Scael.Tn ISO 129*47675Scaelnetwork addresses can take any format. 130*47675Scael.Sh PROTOCOLS 131*47675ScaelThe 132*47675Scael.Tn ARGO 133*47675Scael1.0 implementation of the 134*47675Scael.Tn ISO 135*47675Scaelprotocol family comprises 136*47675Scaelthe Connectionless-Mode Network Protocol 137*47675Scael.Pq Tn CLNP , 138*47675Scaeland the Transport Protocol 139*47675Scael.Pq Tn TP , 140*47675Scaelclasses 4 and 0, 141*47675Scaeland 142*47675Scael.Tn X.25 . 143*47675Scael.Tn TP 144*47675Scaelis used to support the 145*47675Scael.Dv SOCK_SEQPACKET 14642481Ssklowerabstraction. 147*47675ScaelA raw interface to 148*47675Scael.Tn CLNP 149*47675Scaelis available 150*47675Scaelby creating an 151*47675Scael.Tn ISO 152*47675Scaelsocket of type 153*47675Scael.Dv SOCK_RAW . 154*47675ScaelThis is used for 155*47675Scael.Tn CLNP 156*47675Scaeldebugging only. 157*47675Scael.Sh SEE ALSO 158*47675Scael.Xr tp 4 , 159*47675Scael.Xr clnp 4 , 160*47675Scael.Xr cltp 4 161*47675Scael.Sh HISTORY 162*47675ScaelThe 163*47675Scael.Nm 164*47675Scaelprotocol family implementation 165*47675Scael.Ud 166