xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/icmp.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_ICMP_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_LINUX_ICMP_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker #include <asm/byteorder.h>
11*8d67ca89SAndroid Build Coastguard Worker #include <linux/if.h>
12*8d67ca89SAndroid Build Coastguard Worker #include <linux/in6.h>
13*8d67ca89SAndroid Build Coastguard Worker #define ICMP_ECHOREPLY 0
14*8d67ca89SAndroid Build Coastguard Worker #define ICMP_DEST_UNREACH 3
15*8d67ca89SAndroid Build Coastguard Worker #define ICMP_SOURCE_QUENCH 4
16*8d67ca89SAndroid Build Coastguard Worker #define ICMP_REDIRECT 5
17*8d67ca89SAndroid Build Coastguard Worker #define ICMP_ECHO 8
18*8d67ca89SAndroid Build Coastguard Worker #define ICMP_TIME_EXCEEDED 11
19*8d67ca89SAndroid Build Coastguard Worker #define ICMP_PARAMETERPROB 12
20*8d67ca89SAndroid Build Coastguard Worker #define ICMP_TIMESTAMP 13
21*8d67ca89SAndroid Build Coastguard Worker #define ICMP_TIMESTAMPREPLY 14
22*8d67ca89SAndroid Build Coastguard Worker #define ICMP_INFO_REQUEST 15
23*8d67ca89SAndroid Build Coastguard Worker #define ICMP_INFO_REPLY 16
24*8d67ca89SAndroid Build Coastguard Worker #define ICMP_ADDRESS 17
25*8d67ca89SAndroid Build Coastguard Worker #define ICMP_ADDRESSREPLY 18
26*8d67ca89SAndroid Build Coastguard Worker #define NR_ICMP_TYPES 18
27*8d67ca89SAndroid Build Coastguard Worker #define ICMP_NET_UNREACH 0
28*8d67ca89SAndroid Build Coastguard Worker #define ICMP_HOST_UNREACH 1
29*8d67ca89SAndroid Build Coastguard Worker #define ICMP_PROT_UNREACH 2
30*8d67ca89SAndroid Build Coastguard Worker #define ICMP_PORT_UNREACH 3
31*8d67ca89SAndroid Build Coastguard Worker #define ICMP_FRAG_NEEDED 4
32*8d67ca89SAndroid Build Coastguard Worker #define ICMP_SR_FAILED 5
33*8d67ca89SAndroid Build Coastguard Worker #define ICMP_NET_UNKNOWN 6
34*8d67ca89SAndroid Build Coastguard Worker #define ICMP_HOST_UNKNOWN 7
35*8d67ca89SAndroid Build Coastguard Worker #define ICMP_HOST_ISOLATED 8
36*8d67ca89SAndroid Build Coastguard Worker #define ICMP_NET_ANO 9
37*8d67ca89SAndroid Build Coastguard Worker #define ICMP_HOST_ANO 10
38*8d67ca89SAndroid Build Coastguard Worker #define ICMP_NET_UNR_TOS 11
39*8d67ca89SAndroid Build Coastguard Worker #define ICMP_HOST_UNR_TOS 12
40*8d67ca89SAndroid Build Coastguard Worker #define ICMP_PKT_FILTERED 13
41*8d67ca89SAndroid Build Coastguard Worker #define ICMP_PREC_VIOLATION 14
42*8d67ca89SAndroid Build Coastguard Worker #define ICMP_PREC_CUTOFF 15
43*8d67ca89SAndroid Build Coastguard Worker #define NR_ICMP_UNREACH 15
44*8d67ca89SAndroid Build Coastguard Worker #define ICMP_REDIR_NET 0
45*8d67ca89SAndroid Build Coastguard Worker #define ICMP_REDIR_HOST 1
46*8d67ca89SAndroid Build Coastguard Worker #define ICMP_REDIR_NETTOS 2
47*8d67ca89SAndroid Build Coastguard Worker #define ICMP_REDIR_HOSTTOS 3
48*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXC_TTL 0
49*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXC_FRAGTIME 1
50*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXT_ECHO 42
51*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXT_ECHOREPLY 43
52*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXT_CODE_MAL_QUERY 1
53*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXT_CODE_NO_IF 2
54*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXT_CODE_NO_TABLE_ENT 3
55*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXT_CODE_MULT_IFS 4
56*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXT_ECHOREPLY_ACTIVE (1 << 2)
57*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXT_ECHOREPLY_IPV4 (1 << 1)
58*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXT_ECHOREPLY_IPV6 1
59*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXT_ECHO_CTYPE_NAME 1
60*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXT_ECHO_CTYPE_INDEX 2
61*8d67ca89SAndroid Build Coastguard Worker #define ICMP_EXT_ECHO_CTYPE_ADDR 3
62*8d67ca89SAndroid Build Coastguard Worker #define ICMP_AFI_IP 1
63*8d67ca89SAndroid Build Coastguard Worker #define ICMP_AFI_IP6 2
64*8d67ca89SAndroid Build Coastguard Worker struct icmphdr {
65*8d67ca89SAndroid Build Coastguard Worker   __u8 type;
66*8d67ca89SAndroid Build Coastguard Worker   __u8 code;
67*8d67ca89SAndroid Build Coastguard Worker   __sum16 checksum;
68*8d67ca89SAndroid Build Coastguard Worker   union {
69*8d67ca89SAndroid Build Coastguard Worker     struct {
70*8d67ca89SAndroid Build Coastguard Worker       __be16 id;
71*8d67ca89SAndroid Build Coastguard Worker       __be16 sequence;
72*8d67ca89SAndroid Build Coastguard Worker     } echo;
73*8d67ca89SAndroid Build Coastguard Worker     __be32 gateway;
74*8d67ca89SAndroid Build Coastguard Worker     struct {
75*8d67ca89SAndroid Build Coastguard Worker #ifdef __BIONIC__
76*8d67ca89SAndroid Build Coastguard Worker       __be16 __linux_unused;
77*8d67ca89SAndroid Build Coastguard Worker #else
78*8d67ca89SAndroid Build Coastguard Worker       __be16 __linux_unused;
79*8d67ca89SAndroid Build Coastguard Worker #endif
80*8d67ca89SAndroid Build Coastguard Worker       __be16 mtu;
81*8d67ca89SAndroid Build Coastguard Worker     } frag;
82*8d67ca89SAndroid Build Coastguard Worker     __u8 reserved[4];
83*8d67ca89SAndroid Build Coastguard Worker   } un;
84*8d67ca89SAndroid Build Coastguard Worker };
85*8d67ca89SAndroid Build Coastguard Worker #define ICMP_FILTER 1
86*8d67ca89SAndroid Build Coastguard Worker struct icmp_filter {
87*8d67ca89SAndroid Build Coastguard Worker   __u32 data;
88*8d67ca89SAndroid Build Coastguard Worker };
89*8d67ca89SAndroid Build Coastguard Worker struct icmp_ext_hdr {
90*8d67ca89SAndroid Build Coastguard Worker #ifdef __LITTLE_ENDIAN_BITFIELD
91*8d67ca89SAndroid Build Coastguard Worker   __u8 reserved1 : 4, version : 4;
92*8d67ca89SAndroid Build Coastguard Worker #elif defined(__BIG_ENDIAN_BITFIELD)
93*8d67ca89SAndroid Build Coastguard Worker   __u8 version : 4, reserved1 : 4;
94*8d67ca89SAndroid Build Coastguard Worker #else
95*8d67ca89SAndroid Build Coastguard Worker #error "Please fix <asm/byteorder.h>"
96*8d67ca89SAndroid Build Coastguard Worker #endif
97*8d67ca89SAndroid Build Coastguard Worker   __u8 reserved2;
98*8d67ca89SAndroid Build Coastguard Worker   __sum16 checksum;
99*8d67ca89SAndroid Build Coastguard Worker };
100*8d67ca89SAndroid Build Coastguard Worker struct icmp_extobj_hdr {
101*8d67ca89SAndroid Build Coastguard Worker   __be16 length;
102*8d67ca89SAndroid Build Coastguard Worker   __u8 class_num;
103*8d67ca89SAndroid Build Coastguard Worker   __u8 class_type;
104*8d67ca89SAndroid Build Coastguard Worker };
105*8d67ca89SAndroid Build Coastguard Worker struct icmp_ext_echo_ctype3_hdr {
106*8d67ca89SAndroid Build Coastguard Worker   __be16 afi;
107*8d67ca89SAndroid Build Coastguard Worker   __u8 addrlen;
108*8d67ca89SAndroid Build Coastguard Worker   __u8 reserved;
109*8d67ca89SAndroid Build Coastguard Worker };
110*8d67ca89SAndroid Build Coastguard Worker struct icmp_ext_echo_iio {
111*8d67ca89SAndroid Build Coastguard Worker   struct icmp_extobj_hdr extobj_hdr;
112*8d67ca89SAndroid Build Coastguard Worker   union {
113*8d67ca89SAndroid Build Coastguard Worker     char name[IFNAMSIZ];
114*8d67ca89SAndroid Build Coastguard Worker     __be32 ifindex;
115*8d67ca89SAndroid Build Coastguard Worker     struct {
116*8d67ca89SAndroid Build Coastguard Worker       struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
117*8d67ca89SAndroid Build Coastguard Worker       union {
118*8d67ca89SAndroid Build Coastguard Worker         __be32 ipv4_addr;
119*8d67ca89SAndroid Build Coastguard Worker         struct in6_addr ipv6_addr;
120*8d67ca89SAndroid Build Coastguard Worker       } ip_addr;
121*8d67ca89SAndroid Build Coastguard Worker     } addr;
122*8d67ca89SAndroid Build Coastguard Worker   } ident;
123*8d67ca89SAndroid Build Coastguard Worker };
124*8d67ca89SAndroid Build Coastguard Worker #endif
125