1951a39d68df598db08dfced8b4707755864a0492Ying Wang/****************************************************************************
2951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
3951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
4951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   This header was automatically generated from a Linux kernel header
5951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   of the same name, to make information necessary for userspace to
6951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   call into the kernel available to libc.  It contains only constants,
7951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   structures, and macros generated from the original header, and thus,
8951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   contains no copyrightable information.
9951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
10951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/
12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _LINUX_ICMP_H
13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _LINUX_ICMP_H
14951a39d68df598db08dfced8b4707755864a0492Ying Wang
15951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/types.h>
16951a39d68df598db08dfced8b4707755864a0492Ying Wang
17951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_ECHOREPLY 0
18951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_DEST_UNREACH 3
19951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_SOURCE_QUENCH 4
20951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_REDIRECT 5
21951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_ECHO 8
22951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_TIME_EXCEEDED 11
23951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_PARAMETERPROB 12
24951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_TIMESTAMP 13
25951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_TIMESTAMPREPLY 14
26951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_INFO_REQUEST 15
27951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_INFO_REPLY 16
28951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_ADDRESS 17
29951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_ADDRESSREPLY 18
30951a39d68df598db08dfced8b4707755864a0492Ying Wang#define NR_ICMP_TYPES 18
31951a39d68df598db08dfced8b4707755864a0492Ying Wang
32951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_NET_UNREACH 0
33951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_HOST_UNREACH 1
34951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_PROT_UNREACH 2
35951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_PORT_UNREACH 3
36951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_FRAG_NEEDED 4
37951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_SR_FAILED 5
38951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_NET_UNKNOWN 6
39951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_HOST_UNKNOWN 7
40951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_HOST_ISOLATED 8
41951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_NET_ANO 9
42951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_HOST_ANO 10
43951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_NET_UNR_TOS 11
44951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_HOST_UNR_TOS 12
45951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_PKT_FILTERED 13
46951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_PREC_VIOLATION 14
47951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_PREC_CUTOFF 15
48951a39d68df598db08dfced8b4707755864a0492Ying Wang#define NR_ICMP_UNREACH 15
49951a39d68df598db08dfced8b4707755864a0492Ying Wang
50951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_REDIR_NET 0
51951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_REDIR_HOST 1
52951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_REDIR_NETTOS 2
53951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_REDIR_HOSTTOS 3
54951a39d68df598db08dfced8b4707755864a0492Ying Wang
55951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_EXC_TTL 0
56951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_EXC_FRAGTIME 1
57951a39d68df598db08dfced8b4707755864a0492Ying Wang
58951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct icmphdr {
59951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 type;
60951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 code;
61951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 checksum;
62951a39d68df598db08dfced8b4707755864a0492Ying Wang union {
63951a39d68df598db08dfced8b4707755864a0492Ying Wang struct {
64951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 id;
65951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 sequence;
66951a39d68df598db08dfced8b4707755864a0492Ying Wang } echo;
67951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 gateway;
68951a39d68df598db08dfced8b4707755864a0492Ying Wang struct {
690fd55ba58eee50c65bc52ce44f7374e91ac83b54Andrew Hsieh __u16 __linux_unused;
70951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 mtu;
71951a39d68df598db08dfced8b4707755864a0492Ying Wang } frag;
72951a39d68df598db08dfced8b4707755864a0492Ying Wang } un;
73951a39d68df598db08dfced8b4707755864a0492Ying Wang};
74951a39d68df598db08dfced8b4707755864a0492Ying Wang
75951a39d68df598db08dfced8b4707755864a0492Ying Wang#define ICMP_FILTER 1
76951a39d68df598db08dfced8b4707755864a0492Ying Wang
77951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct icmp_filter {
78951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 data;
79951a39d68df598db08dfced8b4707755864a0492Ying Wang};
80951a39d68df598db08dfced8b4707755864a0492Ying Wang
81951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
82