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