xref: /aosp_15_r20/external/iputils/ping6_niquery.h (revision bd1f8aeb6080fa6544ec30aeca3eb4da100f359f)
1*bd1f8aebSAndroid Build Coastguard Worker #include <asm/byteorder.h>
2*bd1f8aebSAndroid Build Coastguard Worker 
3*bd1f8aebSAndroid Build Coastguard Worker #define NI_NONCE_SIZE			8
4*bd1f8aebSAndroid Build Coastguard Worker 
5*bd1f8aebSAndroid Build Coastguard Worker /* Node Information Query */
6*bd1f8aebSAndroid Build Coastguard Worker struct ni_hdr {
7*bd1f8aebSAndroid Build Coastguard Worker 	struct icmp6_hdr		ni_u;
8*bd1f8aebSAndroid Build Coastguard Worker 	__u8				ni_nonce[NI_NONCE_SIZE];
9*bd1f8aebSAndroid Build Coastguard Worker };
10*bd1f8aebSAndroid Build Coastguard Worker 
11*bd1f8aebSAndroid Build Coastguard Worker #define ni_type		ni_u.icmp6_type
12*bd1f8aebSAndroid Build Coastguard Worker #define ni_code		ni_u.icmp6_code
13*bd1f8aebSAndroid Build Coastguard Worker #define ni_cksum	ni_u.icmp6_cksum
14*bd1f8aebSAndroid Build Coastguard Worker #define ni_qtype	ni_u.icmp6_data16[0]
15*bd1f8aebSAndroid Build Coastguard Worker #define ni_flags	ni_u.icmp6_data16[1]
16*bd1f8aebSAndroid Build Coastguard Worker 
17*bd1f8aebSAndroid Build Coastguard Worker /* Types */
18*bd1f8aebSAndroid Build Coastguard Worker #ifndef ICMPV6_NI_QUERY
19*bd1f8aebSAndroid Build Coastguard Worker # define ICMPV6_NI_QUERY		139
20*bd1f8aebSAndroid Build Coastguard Worker # define ICMPV6_NI_REPLY		140
21*bd1f8aebSAndroid Build Coastguard Worker #endif
22*bd1f8aebSAndroid Build Coastguard Worker 
23*bd1f8aebSAndroid Build Coastguard Worker /* Query Codes */
24*bd1f8aebSAndroid Build Coastguard Worker #define NI_SUBJ_IPV6			0
25*bd1f8aebSAndroid Build Coastguard Worker #define NI_SUBJ_NAME			1
26*bd1f8aebSAndroid Build Coastguard Worker #define NI_SUBJ_IPV4			2
27*bd1f8aebSAndroid Build Coastguard Worker 
28*bd1f8aebSAndroid Build Coastguard Worker /* Reply Codes */
29*bd1f8aebSAndroid Build Coastguard Worker #define NI_SUCCESS			0
30*bd1f8aebSAndroid Build Coastguard Worker #define NI_REFUSED			1
31*bd1f8aebSAndroid Build Coastguard Worker #define NI_UNKNOWN			2
32*bd1f8aebSAndroid Build Coastguard Worker 
33*bd1f8aebSAndroid Build Coastguard Worker /* Qtypes */
34*bd1f8aebSAndroid Build Coastguard Worker #define NI_QTYPE_NOOP			0
35*bd1f8aebSAndroid Build Coastguard Worker #define NI_QTYPE_NAME			2
36*bd1f8aebSAndroid Build Coastguard Worker #define NI_QTYPE_IPV6ADDR		3
37*bd1f8aebSAndroid Build Coastguard Worker #define NI_QTYPE_IPV4ADDR		4
38*bd1f8aebSAndroid Build Coastguard Worker 
39*bd1f8aebSAndroid Build Coastguard Worker /* Flags */
40*bd1f8aebSAndroid Build Coastguard Worker #define NI_IPV6ADDR_F_TRUNCATE		__constant_cpu_to_be16(0x0001)
41*bd1f8aebSAndroid Build Coastguard Worker #define NI_IPV6ADDR_F_ALL		__constant_cpu_to_be16(0x0002)
42*bd1f8aebSAndroid Build Coastguard Worker #define NI_IPV6ADDR_F_COMPAT		__constant_cpu_to_be16(0x0004)
43*bd1f8aebSAndroid Build Coastguard Worker #define NI_IPV6ADDR_F_LINKLOCAL		__constant_cpu_to_be16(0x0008)
44*bd1f8aebSAndroid Build Coastguard Worker #define NI_IPV6ADDR_F_SITELOCAL		__constant_cpu_to_be16(0x0010)
45*bd1f8aebSAndroid Build Coastguard Worker #define NI_IPV6ADDR_F_GLOBAL		__constant_cpu_to_be16(0x0020)
46*bd1f8aebSAndroid Build Coastguard Worker 
47*bd1f8aebSAndroid Build Coastguard Worker #define NI_IPV4ADDR_F_TRUNCATE		NI_IPV6ADDR_F_TRUNCATE
48*bd1f8aebSAndroid Build Coastguard Worker #define NI_IPV4ADDR_F_ALL		NI_IPV6ADDR_F_ALL
49*bd1f8aebSAndroid Build Coastguard Worker 
50