xref: /csrg-svn/sys/netns/ns_error.h (revision 23207)
1*23207Smckusick /*
2*23207Smckusick  * Copyright (c) 1982 Regents of the University of California.
3*23207Smckusick  * All rights reserved.  The Berkeley software License Agreement
4*23207Smckusick  * specifies the terms and conditions for redistribution.
5*23207Smckusick  *
6*23207Smckusick  *	@(#)ns_error.h	6.2 (Berkeley) 06/08/85
7*23207Smckusick  */
821484Ssklower 
921484Ssklower /*
1021484Ssklower  * Xerox NS error messages
1121484Ssklower  */
1221484Ssklower 
1321484Ssklower struct ns_errp {
1421484Ssklower 	u_short		ns_err_num;		/* Error Number */
1521484Ssklower 	u_short		ns_err_param;		/* Error Parameter */
1621484Ssklower 	struct idp	ns_err_idp;		/* Initial segment of offending
1721484Ssklower 						   packet */
1821484Ssklower 	u_char		ns_err_lev2[12];	/* at least this much higher
1921484Ssklower 						   level protocol */
2021484Ssklower };
2121484Ssklower struct  ns_epidp {
2221484Ssklower 	struct idp ns_ep_idp;
2321484Ssklower 	struct ns_errp ns_ep_errp;
2421484Ssklower };
2521484Ssklower 
2621484Ssklower #define	NS_ERR_UNSPEC	0	/* Unspecified Error detected at dest. */
2721484Ssklower #define	NS_ERR_BADSUM	1	/* Bad Checksum detected at dest */
2821484Ssklower #define	NS_ERR_NOSOCK	2	/* Specified socket does not exist at dest*/
2921484Ssklower #define	NS_ERR_FULLUP	3	/* Dest. refuses packet due to resource lim.*/
3021484Ssklower #define	NS_ERR_UNSPEC_T	0x200	/* Unspec. Error occured before reaching dest*/
3121484Ssklower #define	NS_ERR_BADSUM_T	0x201	/* Bad Checksum detected in transit */
3221484Ssklower #define	NS_ERR_UNREACH_HOST	0x202	/* Dest cannot be reached from here*/
3321484Ssklower #define	NS_ERR_TOO_OLD	0x203	/* Packet x'd 15 routers without delivery*/
3421484Ssklower #define	NS_ERR_TOO_BIG	0x204	/* Packet too large to be forwarded through
3521484Ssklower 				   some intermediate gateway.  The error
3621484Ssklower 				   parameter field contains the max packet
3721484Ssklower 				   size that can be accommodated */
3821484Ssklower #define NS_ERR_ATHOST	4
3921484Ssklower #define NS_ERR_ENROUTE	5
4021484Ssklower #define NS_ERR_MAX (NS_ERR_ATHOST + NS_ERR_ENROUTE + 1)
4121484Ssklower #define ns_err_x(c) (((c)&0x200) ? ((c) - 0x200 + NS_ERR_ATHOST) : c )
4221484Ssklower 
4321484Ssklower /*
4421484Ssklower  * Variables related to this implementation
4521484Ssklower  * of the network systems error message protocol.
4621484Ssklower  */
4721484Ssklower struct	ns_errstat {
4821484Ssklower /* statistics related to ns_err packets generated */
4921484Ssklower 	int	ns_es_error;		/* # of calls to ns_error */
5021484Ssklower 	int	ns_es_oldshort;		/* no error 'cuz old ip too short */
5121484Ssklower 	int	ns_es_oldns_err;	/* no error 'cuz old was ns_err */
5221484Ssklower 	int	ns_es_outhist[NS_ERR_MAX];
5321484Ssklower /* statistics related to input messages processed */
5421484Ssklower 	int	ns_es_badcode;		/* ns_err_code out of range */
5521484Ssklower 	int	ns_es_tooshort;		/* packet < IDP_MINLEN */
5621484Ssklower 	int	ns_es_checksum;		/* bad checksum */
5721484Ssklower 	int	ns_es_badlen;		/* calculated bound mismatch */
5821484Ssklower 	int	ns_es_reflect;		/* number of responses */
5921484Ssklower 	int	ns_es_inhist[NS_ERR_MAX];
6021484Ssklower };
6121484Ssklower 
6221484Ssklower #ifdef KERNEL
6321484Ssklower struct	ns_errstat ns_errstat;
6421484Ssklower #endif
65