|
|
1.1 ! root 1: .\" Copyright (c) 1985 The Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted provided ! 5: .\" that: (1) source distributions retain this entire copyright notice and ! 6: .\" comment, and (2) distributions including binaries display the following ! 7: .\" acknowledgement: ``This product includes software developed by the ! 8: .\" University of California, Berkeley and its contributors'' in the ! 9: .\" documentation or other materials provided with the distribution and in ! 10: .\" all advertising materials mentioning features or use of this software. ! 11: .\" Neither the name of the University nor the names of its contributors may ! 12: .\" be used to endorse or promote products derived from this software without ! 13: .\" specific prior written permission. ! 14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 17: .\" ! 18: .\" @(#)idp.4 1.3 (Berkeley) 6/23/90 ! 19: .\" ! 20: .TH IDP 4 "July 30, 1985" ! 21: .UC 6 ! 22: .SH NAME ! 23: idp \- Xerox Internet Datagram Protocol ! 24: .SH SYNOPSIS ! 25: .B #include <sys/socket.h> ! 26: .br ! 27: .B #include <netns/ns.h> ! 28: .br ! 29: .B #include <netns/idp.h> ! 30: .PP ! 31: .B s = socket(AF_NS, SOCK_DGRAM, 0); ! 32: .SH DESCRIPTION ! 33: IDP is a simple, unreliable datagram protocol which is used ! 34: to support the SOCK_DGRAM abstraction for the Internet ! 35: protocol family. IDP sockets are connectionless, and are ! 36: normally used with the ! 37: .I sendto ! 38: and ! 39: .IR recvfrom ! 40: calls, though the ! 41: .IR connect (2) ! 42: call may also be used to fix the destination for future ! 43: packets (in which case the ! 44: .IR recv (2) ! 45: or ! 46: .IR read (2) ! 47: and ! 48: .IR send (2) ! 49: or ! 50: .IR write(2) ! 51: system calls may be used). ! 52: .PP ! 53: Xerox protocols are built vertically on top of IDP. ! 54: Thus, IDP address formats are identical to those used by ! 55: SPP. ! 56: Note that the IDP port ! 57: space is the same as the SPP port space (i.e. a IDP port ! 58: may be \*(lqconnected\*(rq to a SPP port, with certain ! 59: options enabled below). ! 60: In addition broadcast packets may be sent ! 61: (assuming the underlying network supports ! 62: this) by using a reserved \*(lqbroadcast address\*(rq; this address ! 63: is network interface dependent. ! 64: .SH DIAGNOSTICS ! 65: A socket operation may fail with one of the following errors returned: ! 66: .TP 15 ! 67: [EISCONN] ! 68: when trying to establish a connection on a socket which ! 69: already has one, or when trying to send a datagram with the destination ! 70: address specified and the socket is already connected; ! 71: .TP 15 ! 72: [ENOTCONN] ! 73: when trying to send a datagram, but ! 74: no destination address is specified, and the socket hasn't been ! 75: connected; ! 76: .TP 15 ! 77: [ENOBUFS] ! 78: when the system runs out of memory for ! 79: an internal data structure; ! 80: .TP 15 ! 81: [EADDRINUSE] ! 82: when an attempt ! 83: is made to create a socket with a port which has already been ! 84: allocated; ! 85: .TP 15 ! 86: [EADDRNOTAVAIL] ! 87: when an attempt is made to create a ! 88: socket with a network address for which no network interface ! 89: exists. ! 90: .SH SOCKET OPTIONS ! 91: .TP 15 ! 92: [SO_HEADERS_ON_INPUT] ! 93: When set, the first 30 bytes of any data returned from a read ! 94: or recv from will be the initial 30 bytes of the IDP packet, ! 95: as described by ! 96: .nf ! 97: struct idp { ! 98: u_short idp_sum; ! 99: u_short idp_len; ! 100: u_char idp_tc; ! 101: u_char idp_pt; ! 102: struct ns_addr idp_dna; ! 103: struct ns_addr idp_sna; ! 104: }; ! 105: .fi ! 106: This allows the user to determine the packet type, and whether ! 107: the packet was a multi-cast packet or directed specifically at ! 108: the local host. ! 109: When requested, gives the current state of the option, ! 110: (NSP_RAWIN or 0). ! 111: .TP 15 ! 112: [SO_HEADERS_ON_OUTPUT] ! 113: When set, the first 30 bytes of any data sent ! 114: will be the initial 30 bytes of the IDP packet. ! 115: This allows the user to determine the packet type, and whether ! 116: the packet should be multi-cast packet or directed specifically at ! 117: the local host. ! 118: You can also misrepresent the sender of the packet. ! 119: When requested, gives the current state of the option. ! 120: (NSP_RAWOUT or 0). ! 121: .TP 15 ! 122: [SO_DEFAULT_HEADERS] ! 123: The user provides the kernel an IDP header, from which ! 124: it gleans the Packet Type. ! 125: When requested, the kernel will provide an IDP header, showing ! 126: the default packet type, and local and foreign addresses, if ! 127: connected. ! 128: .TP 15 ! 129: [SO_ALL_PACKETS] ! 130: When set, this option defeats automatic processing of Error packets, ! 131: and Sequence Protocol packets. ! 132: .TP 15 ! 133: [SO_SEQNO] ! 134: When requested, this returns a sequence number which is not likely ! 135: to be repeated until the machine crashes or a very long time has passed. ! 136: It is useful in constructing Packet Exchange Protocol packets. ! 137: .SH SEE ALSO ! 138: send(2), recv(2), intro(4), ns(4)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.