1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _UAPI_IPV6_H
20 #define _UAPI_IPV6_H
21 #include <linux/libc-compat.h>
22 #include <linux/types.h>
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #include <linux/in6.h>
25 #include <asm/byteorder.h>
26 #define IPV6_MIN_MTU 1280
27 #if __UAPI_DEF_IN6_PKTINFO
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 struct in6_pktinfo {
30   struct in6_addr ipi6_addr;
31   int ipi6_ifindex;
32 };
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 #endif
35 #if __UAPI_DEF_IP6_MTUINFO
36 struct ip6_mtuinfo {
37   struct sockaddr_in6 ip6m_addr;
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39   __u32 ip6m_mtu;
40 };
41 #endif
42 struct in6_ifreq {
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44   struct in6_addr ifr6_addr;
45   __u32 ifr6_prefixlen;
46   int ifr6_ifindex;
47 };
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define IPV6_SRCRT_STRICT 0x01
50 #define IPV6_SRCRT_TYPE_0 0
51 #define IPV6_SRCRT_TYPE_2 2
52 #define IPV6_SRCRT_TYPE_4 4
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 struct ipv6_rt_hdr {
55   __u8 nexthdr;
56   __u8 hdrlen;
57   __u8 type;
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59   __u8 segments_left;
60 };
61 struct ipv6_opt_hdr {
62   __u8 nexthdr;
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64   __u8 hdrlen;
65 } __attribute__((packed));
66 #define ipv6_destopt_hdr ipv6_opt_hdr
67 #define ipv6_hopopt_hdr ipv6_opt_hdr
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 #define IPV6_OPT_ROUTERALERT_MLD 0x0000
70 struct rt0_hdr {
71   struct ipv6_rt_hdr rt_hdr;
72   __u32 reserved;
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74   struct in6_addr addr[0];
75 #define rt0_type rt_hdr.type
76 };
77 struct rt2_hdr {
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79   struct ipv6_rt_hdr rt_hdr;
80   __u32 reserved;
81   struct in6_addr addr;
82 #define rt2_type rt_hdr.type
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84 };
85 struct ipv6_destopt_hao {
86   __u8 type;
87   __u8 length;
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89   struct in6_addr addr;
90 } __attribute__((packed));
91 struct ipv6hdr {
92 #ifdef __LITTLE_ENDIAN_BITFIELD
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94   __u8 priority : 4, version : 4;
95 #elif defined(__BIG_ENDIAN_BITFIELD)
96   __u8 version : 4, priority : 4;
97 #else
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99 #error "Please fix <asm/byteorder.h>"
100 #endif
101   __u8 flow_lbl[3];
102   __be16 payload_len;
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104   __u8 nexthdr;
105   __u8 hop_limit;
106   struct in6_addr saddr;
107   struct in6_addr daddr;
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 };
110 enum {
111   DEVCONF_FORWARDING = 0,
112   DEVCONF_HOPLIMIT,
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114   DEVCONF_MTU6,
115   DEVCONF_ACCEPT_RA,
116   DEVCONF_ACCEPT_REDIRECTS,
117   DEVCONF_AUTOCONF,
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119   DEVCONF_DAD_TRANSMITS,
120   DEVCONF_RTR_SOLICITS,
121   DEVCONF_RTR_SOLICIT_INTERVAL,
122   DEVCONF_RTR_SOLICIT_DELAY,
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124   DEVCONF_USE_TEMPADDR,
125   DEVCONF_TEMP_VALID_LFT,
126   DEVCONF_TEMP_PREFERED_LFT,
127   DEVCONF_REGEN_MAX_RETRY,
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129   DEVCONF_MAX_DESYNC_FACTOR,
130   DEVCONF_MAX_ADDRESSES,
131   DEVCONF_FORCE_MLD_VERSION,
132   DEVCONF_ACCEPT_RA_DEFRTR,
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134   DEVCONF_ACCEPT_RA_PINFO,
135   DEVCONF_ACCEPT_RA_RTR_PREF,
136   DEVCONF_RTR_PROBE_INTERVAL,
137   DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN,
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139   DEVCONF_PROXY_NDP,
140   DEVCONF_OPTIMISTIC_DAD,
141   DEVCONF_ACCEPT_SOURCE_ROUTE,
142   DEVCONF_MC_FORWARDING,
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144   DEVCONF_DISABLE_IPV6,
145   DEVCONF_ACCEPT_DAD,
146   DEVCONF_FORCE_TLLAO,
147   DEVCONF_NDISC_NOTIFY,
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149   DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL,
150   DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL,
151   DEVCONF_SUPPRESS_FRAG_NDISC,
152   DEVCONF_ACCEPT_RA_FROM_LOCAL,
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154   DEVCONF_USE_OPTIMISTIC,
155   DEVCONF_ACCEPT_RA_MTU,
156   DEVCONF_STABLE_SECRET,
157   DEVCONF_USE_OIF_ADDRS_ONLY,
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159   DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT,
160   DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN,
161   DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
162   DEVCONF_DROP_UNSOLICITED_NA,
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164   DEVCONF_KEEP_ADDR_ON_DOWN,
165   DEVCONF_RTR_SOLICIT_MAX_INTERVAL,
166   DEVCONF_SEG6_ENABLED,
167   DEVCONF_SEG6_REQUIRE_HMAC,
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169   DEVCONF_ENHANCED_DAD,
170   DEVCONF_MAX
171 };
172 #endif
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174