|
|
1.1 ! root 1: .\" Copyright (c) 1990 The Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted ! 5: .\" provided that: (1) source distributions retain this entire copyright ! 6: .\" notice and comment, and (2) distributions including binaries display ! 7: .\" the following acknowledgement: ``This product includes software ! 8: .\" developed by the University of California, Berkeley and its contributors'' ! 9: .\" in the documentation or other materials provided with the distribution ! 10: .\" and in all advertising materials mentioning features or use of this ! 11: .\" software. Neither the name of the University nor the names of its ! 12: .\" contributors may be used to endorse or promote products derived ! 13: .\" from this software without specific prior written permission. ! 14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 15: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 16: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 17: .\" ! 18: .\" @(#)iso.4 6.1 (Berkeley) 5/30/90 ! 19: .\" ! 20: .TH ISO 4F "May 30, 1990" ! 21: .UC 4 ! 22: .SH NAME ! 23: iso \- ISO protocol family ! 24: .SH SYNOPSIS ! 25: .B #include <sys/types.h> ! 26: .br ! 27: .B #include <netiso/iso.h> ! 28: .SH DESCRIPTION ! 29: The ISO protocol family is a collection of protocols ! 30: that uses the ISO address format. ! 31: The ISO family provides protocol support for the ! 32: SOCK_SEQPACKET abstraction through the TP protocol (ISO 8073), ! 33: for the SOCK_DGRAM abstraction through the connectionless transport ! 34: protocol (ISO 8602), ! 35: and for the SOCK_RAW abstraction ! 36: by providing direct access (for debugging) to the ! 37: CLNP (ISO 8473) network layer protocol. ! 38: .SH ADDRESSING ! 39: ISO addresses are based upon ISO 8348/AD2, ! 40: "Addendum to the Network Service Definition Covering Network Layer Addressing." ! 41: .PP ! 42: Sockets bound to the OSI protocol family use ! 43: the following address structure: ! 44: .sp 1 ! 45: .nf ! 46: ._f ! 47: struct iso_addr { ! 48: u_char isoa_len; /* length, not including this byte */ ! 49: char isoa_genaddr[20]; /* general opaque address */ ! 50: }; ! 51: ! 52: struct sockaddr_iso { ! 53: u_char siso_len; /* size of this sockaddr */ ! 54: u_char siso_family; /* addressing domain, AF_ISO */ ! 55: u_char siso_plen; /* presentation selector length */ ! 56: u_char siso_slen; /* session selector length */ ! 57: u_char siso_tlen; /* transport selector length */ ! 58: struct iso_addr siso_addr; /* network address */ ! 59: u_char siso_pad[6]; /* space for gosip v2 SELs */ ! 60: }; ! 61: #define siso_nlen siso_addr.isoa_len ! 62: #define siso_data siso_addr.isoa_genaddr ! 63: .sp 1 ! 64: .fi ! 65: .PP ! 66: The fields of this structure are: ! 67: .TP 10 ! 68: \fIsiso_len:\fR ! 69: Length of the entire address structure, in bytes, which may grow to ! 70: be longer than the 32 bytes show above. ! 71: .TP 10 ! 72: \fIsiso_family:\fR ! 73: Identifies the domain: AF_ISO. ! 74: .TP 10 ! 75: \fIsiso_tlen:\fR ! 76: Length of the transport selector. ! 77: .TP 10 ! 78: \fIsiso_slen:\fR ! 79: Length of the session selector. ! 80: This is not currently supported by the kernel and is provided as ! 81: a convenience for user level programs. ! 82: .TP 10 ! 83: \fIsiso_plen:\fR ! 84: Length of the presentation selector. ! 85: This is not currently supported by the kernel and is provided as ! 86: a convenience for user level programs. ! 87: .TP 10 ! 88: \fIsiso_addr:\fR ! 89: The network part of the address, described below. ! 90: .SS TRANSPORT ADDRESSING ! 91: .PP ! 92: An ISO transport address is similar to an Internet address in that ! 93: it contains a network-address portion and a portion that the ! 94: transport layer uses to multiplex its services among clients. ! 95: In the Internet domain, this portion of the address is called a \fIport\fR. ! 96: In the ISO domain, this is called a \fItransport selector\fR ! 97: (also known at one time as a \fItransport suffix\fR). ! 98: While ports are always 16 bits, ! 99: transport selectors may be ! 100: of (almost) arbitrary size. ! 101: .PP ! 102: Since the C language does not provide conveninent variable ! 103: length structures, we have separated the selector lengths ! 104: from the data themselves. ! 105: The network address and various selectors are stored contiguously, ! 106: with the network address first, then the transport selector, and so ! 107: on. Thus, if you had a nework address of less then 20 bytes, ! 108: the transport selector would encroach on space normally reserved ! 109: for the network address. ! 110: .PP ! 111: .SS NETWORK ADDRESSING. ! 112: ISO network addresses are limited to 20 bytes in length. ! 113: ISO network addresses can take any format. ! 114: .SH PROTOCOLS ! 115: The ARGO 1.0 implementation of the ! 116: ISO protocol family comprises ! 117: the Connectionless-Mode Network Protocol (CLNP), ! 118: and the Transport Protocol (TP), classes 4 and 0, ! 119: and X.25. ! 120: TP is used to support the SOCK_SEQPACKET ! 121: abstraction. ! 122: A raw interface to CLNP is available ! 123: by creating an ISO socket of type SOCK_RAW. ! 124: This is used for CLNP debugging only. ! 125: .SH SEE ALSO ! 126: tp(4), clnp(4), cltp(4)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.