xref: /csrg-svn/sys/netns/ns_error.h (revision 21484)
1*21484Ssklower /*      ns_error.h     6.1     85/05/30     */
2*21484Ssklower 
3*21484Ssklower /*
4*21484Ssklower  * Xerox NS error messages
5*21484Ssklower  */
6*21484Ssklower 
7*21484Ssklower struct ns_errp {
8*21484Ssklower 	u_short		ns_err_num;		/* Error Number */
9*21484Ssklower 	u_short		ns_err_param;		/* Error Parameter */
10*21484Ssklower 	struct idp	ns_err_idp;		/* Initial segment of offending
11*21484Ssklower 						   packet */
12*21484Ssklower 	u_char		ns_err_lev2[12];	/* at least this much higher
13*21484Ssklower 						   level protocol */
14*21484Ssklower };
15*21484Ssklower struct  ns_epidp {
16*21484Ssklower 	struct idp ns_ep_idp;
17*21484Ssklower 	struct ns_errp ns_ep_errp;
18*21484Ssklower };
19*21484Ssklower 
20*21484Ssklower #define	NS_ERR_UNSPEC	0	/* Unspecified Error detected at dest. */
21*21484Ssklower #define	NS_ERR_BADSUM	1	/* Bad Checksum detected at dest */
22*21484Ssklower #define	NS_ERR_NOSOCK	2	/* Specified socket does not exist at dest*/
23*21484Ssklower #define	NS_ERR_FULLUP	3	/* Dest. refuses packet due to resource lim.*/
24*21484Ssklower #define	NS_ERR_UNSPEC_T	0x200	/* Unspec. Error occured before reaching dest*/
25*21484Ssklower #define	NS_ERR_BADSUM_T	0x201	/* Bad Checksum detected in transit */
26*21484Ssklower #define	NS_ERR_UNREACH_HOST	0x202	/* Dest cannot be reached from here*/
27*21484Ssklower #define	NS_ERR_TOO_OLD	0x203	/* Packet x'd 15 routers without delivery*/
28*21484Ssklower #define	NS_ERR_TOO_BIG	0x204	/* Packet too large to be forwarded through
29*21484Ssklower 				   some intermediate gateway.  The error
30*21484Ssklower 				   parameter field contains the max packet
31*21484Ssklower 				   size that can be accommodated */
32*21484Ssklower #define NS_ERR_ATHOST	4
33*21484Ssklower #define NS_ERR_ENROUTE	5
34*21484Ssklower #define NS_ERR_MAX (NS_ERR_ATHOST + NS_ERR_ENROUTE + 1)
35*21484Ssklower #define ns_err_x(c) (((c)&0x200) ? ((c) - 0x200 + NS_ERR_ATHOST) : c )
36*21484Ssklower 
37*21484Ssklower /*
38*21484Ssklower  * Variables related to this implementation
39*21484Ssklower  * of the network systems error message protocol.
40*21484Ssklower  */
41*21484Ssklower struct	ns_errstat {
42*21484Ssklower /* statistics related to ns_err packets generated */
43*21484Ssklower 	int	ns_es_error;		/* # of calls to ns_error */
44*21484Ssklower 	int	ns_es_oldshort;		/* no error 'cuz old ip too short */
45*21484Ssklower 	int	ns_es_oldns_err;	/* no error 'cuz old was ns_err */
46*21484Ssklower 	int	ns_es_outhist[NS_ERR_MAX];
47*21484Ssklower /* statistics related to input messages processed */
48*21484Ssklower 	int	ns_es_badcode;		/* ns_err_code out of range */
49*21484Ssklower 	int	ns_es_tooshort;		/* packet < IDP_MINLEN */
50*21484Ssklower 	int	ns_es_checksum;		/* bad checksum */
51*21484Ssklower 	int	ns_es_badlen;		/* calculated bound mismatch */
52*21484Ssklower 	int	ns_es_reflect;		/* number of responses */
53*21484Ssklower 	int	ns_es_inhist[NS_ERR_MAX];
54*21484Ssklower };
55*21484Ssklower 
56*21484Ssklower #ifdef KERNEL
57*21484Ssklower struct	ns_errstat ns_errstat;
58*21484Ssklower #endif
59