diff options
Diffstat (limited to 'include/uapi/linux/icmp.h')
| -rw-r--r-- | include/uapi/linux/icmp.h | 97 | 
1 files changed, 97 insertions, 0 deletions
diff --git a/include/uapi/linux/icmp.h b/include/uapi/linux/icmp.h new file mode 100644 index 00000000000..16fff055f73 --- /dev/null +++ b/include/uapi/linux/icmp.h @@ -0,0 +1,97 @@ +/* + * INET		An implementation of the TCP/IP protocol suite for the LINUX + *		operating system.  INET is implemented using the  BSD Socket + *		interface as the means of communication with the user level. + * + *		Definitions for the ICMP protocol. + * + * Version:	@(#)icmp.h	1.0.3	04/28/93 + * + * Author:	Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> + * + *		This program is free software; you can redistribute it and/or + *		modify it under the terms of the GNU General Public License + *		as published by the Free Software Foundation; either version + *		2 of the License, or (at your option) any later version. + */ +#ifndef _UAPI_LINUX_ICMP_H +#define _UAPI_LINUX_ICMP_H + +#include <linux/types.h> + +#define ICMP_ECHOREPLY		0	/* Echo Reply			*/ +#define ICMP_DEST_UNREACH	3	/* Destination Unreachable	*/ +#define ICMP_SOURCE_QUENCH	4	/* Source Quench		*/ +#define ICMP_REDIRECT		5	/* Redirect (change route)	*/ +#define ICMP_ECHO		8	/* Echo Request			*/ +#define ICMP_TIME_EXCEEDED	11	/* Time Exceeded		*/ +#define ICMP_PARAMETERPROB	12	/* Parameter Problem		*/ +#define ICMP_TIMESTAMP		13	/* Timestamp Request		*/ +#define ICMP_TIMESTAMPREPLY	14	/* Timestamp Reply		*/ +#define ICMP_INFO_REQUEST	15	/* Information Request		*/ +#define ICMP_INFO_REPLY		16	/* Information Reply		*/ +#define ICMP_ADDRESS		17	/* Address Mask Request		*/ +#define ICMP_ADDRESSREPLY	18	/* Address Mask Reply		*/ +#define NR_ICMP_TYPES		18 + + +/* Codes for UNREACH. */ +#define ICMP_NET_UNREACH	0	/* Network Unreachable		*/ +#define ICMP_HOST_UNREACH	1	/* Host Unreachable		*/ +#define ICMP_PROT_UNREACH	2	/* Protocol Unreachable		*/ +#define ICMP_PORT_UNREACH	3	/* Port Unreachable		*/ +#define ICMP_FRAG_NEEDED	4	/* Fragmentation Needed/DF set	*/ +#define ICMP_SR_FAILED		5	/* Source Route failed		*/ +#define ICMP_NET_UNKNOWN	6 +#define ICMP_HOST_UNKNOWN	7 +#define ICMP_HOST_ISOLATED	8 +#define ICMP_NET_ANO		9 +#define ICMP_HOST_ANO		10 +#define ICMP_NET_UNR_TOS	11 +#define ICMP_HOST_UNR_TOS	12 +#define ICMP_PKT_FILTERED	13	/* Packet filtered */ +#define ICMP_PREC_VIOLATION	14	/* Precedence violation */ +#define ICMP_PREC_CUTOFF	15	/* Precedence cut off */ +#define NR_ICMP_UNREACH		15	/* instead of hardcoding immediate value */ + +/* Codes for REDIRECT. */ +#define ICMP_REDIR_NET		0	/* Redirect Net			*/ +#define ICMP_REDIR_HOST		1	/* Redirect Host		*/ +#define ICMP_REDIR_NETTOS	2	/* Redirect Net for TOS		*/ +#define ICMP_REDIR_HOSTTOS	3	/* Redirect Host for TOS	*/ + +/* Codes for TIME_EXCEEDED. */ +#define ICMP_EXC_TTL		0	/* TTL count exceeded		*/ +#define ICMP_EXC_FRAGTIME	1	/* Fragment Reass time exceeded	*/ + + +struct icmphdr { +  __u8		type; +  __u8		code; +  __sum16	checksum; +  union { +	struct { +		__be16	id; +		__be16	sequence; +	} echo; +	__be32	gateway; +	struct { +		__be16	__unused; +		__be16	mtu; +	} frag; +  } un; +}; + + +/* + *	constants for (set|get)sockopt + */ + +#define ICMP_FILTER			1 + +struct icmp_filter { +	__u32		data; +}; + + +#endif /* _UAPI_LINUX_ICMP_H */  |