|
|
1.1 root 1: /*
2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * The contents of this file constitute Original Code as defined in and
7: * are subject to the Apple Public Source License Version 1.1 (the
8: * "License"). You may not use this file except in compliance with the
9: * License. Please obtain a copy of the License at
10: * http://www.apple.com/publicsource and read it before using this file.
11: *
12: * This Original Code and all software distributed under the License are
13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17: * License for the specific language governing rights and limitations
18: * under the License.
19: *
20: * @APPLE_LICENSE_HEADER_END@
21: */
22: /*
23: * Copyright (c) 1984, 1988, 1993
24: * The Regents of the University of California. All rights reserved.
25: *
26: * Redistribution and use in source and binary forms, with or without
27: * modification, are permitted provided that the following conditions
28: * are met:
29: * 1. Redistributions of source code must retain the above copyright
30: * notice, this list of conditions and the following disclaimer.
31: * 2. Redistributions in binary form must reproduce the above copyright
32: * notice, this list of conditions and the following disclaimer in the
33: * documentation and/or other materials provided with the distribution.
34: * 3. All advertising materials mentioning features or use of this software
35: * must display the following acknowledgement:
36: * This product includes software developed by the University of
37: * California, Berkeley and its contributors.
38: * 4. Neither the name of the University nor the names of its contributors
39: * may be used to endorse or promote products derived from this software
40: * without specific prior written permission.
41: *
42: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
43: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
44: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
45: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
46: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
47: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
48: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
49: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
50: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
51: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
52: * SUCH DAMAGE.
53: *
54: * @(#)ns_error.h 8.1 (Berkeley) 6/10/93
55: */
56:
57: /*
58: * Xerox NS error messages
59: */
60:
61: struct ns_errp {
62: u_short ns_err_num; /* Error Number */
63: u_short ns_err_param; /* Error Parameter */
64: struct idp ns_err_idp; /* Initial segment of offending
65: packet */
66: u_char ns_err_lev2[12]; /* at least this much higher
67: level protocol */
68: };
69: struct ns_epidp {
70: struct idp ns_ep_idp;
71: struct ns_errp ns_ep_errp;
72: };
73:
74: #define NS_ERR_UNSPEC 0 /* Unspecified Error detected at dest. */
75: #define NS_ERR_BADSUM 1 /* Bad Checksum detected at dest */
76: #define NS_ERR_NOSOCK 2 /* Specified socket does not exist at dest*/
77: #define NS_ERR_FULLUP 3 /* Dest. refuses packet due to resource lim.*/
78: #define NS_ERR_UNSPEC_T 0x200 /* Unspec. Error occured before reaching dest*/
79: #define NS_ERR_BADSUM_T 0x201 /* Bad Checksum detected in transit */
80: #define NS_ERR_UNREACH_HOST 0x202 /* Dest cannot be reached from here*/
81: #define NS_ERR_TOO_OLD 0x203 /* Packet x'd 15 routers without delivery*/
82: #define NS_ERR_TOO_BIG 0x204 /* Packet too large to be forwarded through
83: some intermediate gateway. The error
84: parameter field contains the max packet
85: size that can be accommodated */
86: #define NS_ERR_MAX 20
87:
88: /*
89: * Variables related to this implementation
90: * of the network systems error message protocol.
91: */
92: struct ns_errstat {
93: /* statistics related to ns_err packets generated */
94: int ns_es_error; /* # of calls to ns_error */
95: int ns_es_oldshort; /* no error 'cuz old ip too short */
96: int ns_es_oldns_err; /* no error 'cuz old was ns_err */
97: int ns_es_outhist[NS_ERR_MAX];
98: /* statistics related to input messages processed */
99: int ns_es_badcode; /* ns_err_code out of range */
100: int ns_es_tooshort; /* packet < IDP_MINLEN */
101: int ns_es_checksum; /* bad checksum */
102: int ns_es_badlen; /* calculated bound mismatch */
103: int ns_es_reflect; /* number of responses */
104: int ns_es_inhist[NS_ERR_MAX];
105: u_short ns_es_codes[NS_ERR_MAX];/* which error code for outhist
106: since we might not know all */
107: };
108:
109: #ifdef KERNEL
110: struct ns_errstat ns_errstat;
111: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.