|
|
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: .\" @(#)clnp.4 6.1 (Berkeley) 5/30/90
19: .\"
20: .TH CLNP 4 "May 30, 1990"
21: .UC 4
22: .SH NAME
23: clnp \- Connectionless-Mode Network Protocol
24: .SH SYNOPSIS
25: .B #include <sys/socket.h>
26: .br
27: .B #include <netargo/iso.h>
28: .br
29: .B #include <netargo/clnp.h>
30: .PP
31: .B s = socket(AF_ISO, SOCK_RAW, 0);
32: .SH DESCRIPTION
33: CLNP is the connectionless-mode network protocol used by the
34: connectionless-mode network service. This protocol is specified in
35: ISO 8473.
36: It may be accessed
37: through a \*(lqraw socket\*(rq for debugging purposes only.
38: CLNP sockets are connectionless,
39: and are normally used with the
40: .I sendto
41: and
42: .I recvfrom
43: calls, though the
44: .IR connect (2)
45: call may also be used to fix the destination for future
46: packets (in which case the
47: .IR read (2)
48: or
49: .IR recv (2)
50: and
51: .IR write (2)
52: or
53: .IR send (2)
54: system calls may be used).
55: .PP
56: Outgoing packets automatically have a CLNP header prepended to
57: them. Incoming packets received by the user contain the full CLNP header.
58: The following \fIsetsockopt\fR options apply to CLNP:
59: .TP
60: CLNPOPT_FLAGS
61: Sets the flags which are passed to clnp when sending a datagram.
62: Valid flags are:
63: .nf
64: .br
65: CLNP_NO_SEG-Do not allow segmentation
66: CLNP_NO_ER-Suppress ER pdus
67: CLNP_NO_CKSUM-Do not generate the CLNP checksum
68: .br
69: .fi
70: .TP
71: CLNPOPT_OPTS
72: Sets CLNP options. The options must be formatted exactly as specified by
73: ISO 8473, section 7.5 "Options Part." Once an option has been set, it will
74: be sent on all packets until a different option is set.
75: .SH "CONGESTION EXPERIENCE BIT"
76: Whenever a packet is transmitted, the globally unique quality of
77: service option is added to the packet. The sequencing preferred bit and
78: the low transit delay bit are set in this option.
79: .PP
80: If a packet is forwarded containing the globally unique quality of
81: service option, and the interface through which the packet will be
82: transmitted has a queue length greater than \fIcongest_threshold\fR,
83: then the congestion experienced bit is set in the quality of service option.
84: .PP
85: The threshold value stored in \fIcongest_threshold\fR may be changed
86: with the \fIclnlutil\fR utility.
87: .PP
88: When a packet is received with the
89: globally unique quality of service option present, and the
90: congestion experienced bit is set, then the transport congestion
91: control function is called.
92: .SH DIAGNOSTICS
93: A socket operation may fail with one of the following errors returned:
94: .TP 15
95: [EISCONN]
96: when trying to establish a connection on a socket which
97: already has one, or when trying to send a datagram with the destination
98: address specified and the socket is already connected;
99: .TP 15
100: [ENOTCONN]
101: when trying to send a datagram, but
102: no destination address is specified, and the socket hasn't been
103: connected;
104: .TP 15
105: [ENOBUFS]
106: when the system runs out of memory for
107: an internal data structure;
108: .TP 15
109: [EADDRNOTAVAIL]
110: when an attempt is made to create a
111: socket with a network address for which no network interface
112: exists;
113: .TP 15
114: [EHOSTUNREACH]
115: when trying to send a datagram, but no route to the destination
116: address exists.
117: .TP 15
118: [EINVAL]
119: when specifying unsupported options.
120: .SH SEE ALSO
121: send(2), recv(2), intro(4), iso(4)
122: .SH BUGS
123: Packets are sent with the type code of 0x1d (technically an invalid
124: packet type) for lack of a better way to identify raw CLNP packets.
125: .PP
126: No more than MLEN bytes of options can be specified.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.