xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/ipv6.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_IPV6_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_IPV6_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/libc-compat.h>
10*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
11*8d67ca89SAndroid Build Coastguard Worker #include <linux/stddef.h>
12*8d67ca89SAndroid Build Coastguard Worker #include <linux/in6.h>
13*8d67ca89SAndroid Build Coastguard Worker #include <asm/byteorder.h>
14*8d67ca89SAndroid Build Coastguard Worker #define IPV6_MIN_MTU 1280
15*8d67ca89SAndroid Build Coastguard Worker #if __UAPI_DEF_IN6_PKTINFO
16*8d67ca89SAndroid Build Coastguard Worker struct in6_pktinfo {
17*8d67ca89SAndroid Build Coastguard Worker   struct in6_addr ipi6_addr;
18*8d67ca89SAndroid Build Coastguard Worker   int ipi6_ifindex;
19*8d67ca89SAndroid Build Coastguard Worker };
20*8d67ca89SAndroid Build Coastguard Worker #endif
21*8d67ca89SAndroid Build Coastguard Worker #if __UAPI_DEF_IP6_MTUINFO
22*8d67ca89SAndroid Build Coastguard Worker struct ip6_mtuinfo {
23*8d67ca89SAndroid Build Coastguard Worker   struct sockaddr_in6 ip6m_addr;
24*8d67ca89SAndroid Build Coastguard Worker   __u32 ip6m_mtu;
25*8d67ca89SAndroid Build Coastguard Worker };
26*8d67ca89SAndroid Build Coastguard Worker #endif
27*8d67ca89SAndroid Build Coastguard Worker struct in6_ifreq {
28*8d67ca89SAndroid Build Coastguard Worker   struct in6_addr ifr6_addr;
29*8d67ca89SAndroid Build Coastguard Worker   __u32 ifr6_prefixlen;
30*8d67ca89SAndroid Build Coastguard Worker   int ifr6_ifindex;
31*8d67ca89SAndroid Build Coastguard Worker };
32*8d67ca89SAndroid Build Coastguard Worker #define IPV6_SRCRT_STRICT 0x01
33*8d67ca89SAndroid Build Coastguard Worker #define IPV6_SRCRT_TYPE_0 0
34*8d67ca89SAndroid Build Coastguard Worker #define IPV6_SRCRT_TYPE_2 2
35*8d67ca89SAndroid Build Coastguard Worker #define IPV6_SRCRT_TYPE_3 3
36*8d67ca89SAndroid Build Coastguard Worker #define IPV6_SRCRT_TYPE_4 4
37*8d67ca89SAndroid Build Coastguard Worker struct ipv6_rt_hdr {
38*8d67ca89SAndroid Build Coastguard Worker   __u8 nexthdr;
39*8d67ca89SAndroid Build Coastguard Worker   __u8 hdrlen;
40*8d67ca89SAndroid Build Coastguard Worker   __u8 type;
41*8d67ca89SAndroid Build Coastguard Worker   __u8 segments_left;
42*8d67ca89SAndroid Build Coastguard Worker };
43*8d67ca89SAndroid Build Coastguard Worker struct ipv6_opt_hdr {
44*8d67ca89SAndroid Build Coastguard Worker   __u8 nexthdr;
45*8d67ca89SAndroid Build Coastguard Worker   __u8 hdrlen;
46*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
47*8d67ca89SAndroid Build Coastguard Worker #define ipv6_destopt_hdr ipv6_opt_hdr
48*8d67ca89SAndroid Build Coastguard Worker #define ipv6_hopopt_hdr ipv6_opt_hdr
49*8d67ca89SAndroid Build Coastguard Worker #define IPV6_OPT_ROUTERALERT_MLD 0x0000
50*8d67ca89SAndroid Build Coastguard Worker struct rt0_hdr {
51*8d67ca89SAndroid Build Coastguard Worker   struct ipv6_rt_hdr rt_hdr;
52*8d67ca89SAndroid Build Coastguard Worker   __u32 reserved;
53*8d67ca89SAndroid Build Coastguard Worker   struct in6_addr addr[];
54*8d67ca89SAndroid Build Coastguard Worker #define rt0_type rt_hdr.type
55*8d67ca89SAndroid Build Coastguard Worker };
56*8d67ca89SAndroid Build Coastguard Worker struct rt2_hdr {
57*8d67ca89SAndroid Build Coastguard Worker   struct ipv6_rt_hdr rt_hdr;
58*8d67ca89SAndroid Build Coastguard Worker   __u32 reserved;
59*8d67ca89SAndroid Build Coastguard Worker   struct in6_addr addr;
60*8d67ca89SAndroid Build Coastguard Worker #define rt2_type rt_hdr.type
61*8d67ca89SAndroid Build Coastguard Worker };
62*8d67ca89SAndroid Build Coastguard Worker struct ipv6_destopt_hao {
63*8d67ca89SAndroid Build Coastguard Worker   __u8 type;
64*8d67ca89SAndroid Build Coastguard Worker   __u8 length;
65*8d67ca89SAndroid Build Coastguard Worker   struct in6_addr addr;
66*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
67*8d67ca89SAndroid Build Coastguard Worker struct ipv6hdr {
68*8d67ca89SAndroid Build Coastguard Worker #ifdef __LITTLE_ENDIAN_BITFIELD
69*8d67ca89SAndroid Build Coastguard Worker   __u8 priority : 4, version : 4;
70*8d67ca89SAndroid Build Coastguard Worker #elif defined(__BIG_ENDIAN_BITFIELD)
71*8d67ca89SAndroid Build Coastguard Worker   __u8 version : 4, priority : 4;
72*8d67ca89SAndroid Build Coastguard Worker #else
73*8d67ca89SAndroid Build Coastguard Worker #error "Please fix <asm/byteorder.h>"
74*8d67ca89SAndroid Build Coastguard Worker #endif
75*8d67ca89SAndroid Build Coastguard Worker   __u8 flow_lbl[3];
76*8d67ca89SAndroid Build Coastguard Worker   __be16 payload_len;
77*8d67ca89SAndroid Build Coastguard Worker   __u8 nexthdr;
78*8d67ca89SAndroid Build Coastguard Worker   __u8 hop_limit;
79*8d67ca89SAndroid Build Coastguard Worker   __struct_group(, addrs,, struct in6_addr saddr;
80*8d67ca89SAndroid Build Coastguard Worker   struct in6_addr daddr;
81*8d67ca89SAndroid Build Coastguard Worker  );
82*8d67ca89SAndroid Build Coastguard Worker };
83*8d67ca89SAndroid Build Coastguard Worker enum {
84*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_FORWARDING = 0,
85*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_HOPLIMIT,
86*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_MTU6,
87*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_RA,
88*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_REDIRECTS,
89*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_AUTOCONF,
90*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_DAD_TRANSMITS,
91*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_RTR_SOLICITS,
92*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_RTR_SOLICIT_INTERVAL,
93*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_RTR_SOLICIT_DELAY,
94*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_USE_TEMPADDR,
95*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_TEMP_VALID_LFT,
96*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_TEMP_PREFERED_LFT,
97*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_REGEN_MAX_RETRY,
98*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_MAX_DESYNC_FACTOR,
99*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_MAX_ADDRESSES,
100*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_FORCE_MLD_VERSION,
101*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_RA_DEFRTR,
102*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_RA_PINFO,
103*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_RA_RTR_PREF,
104*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_RTR_PROBE_INTERVAL,
105*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN,
106*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_PROXY_NDP,
107*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_OPTIMISTIC_DAD,
108*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_SOURCE_ROUTE,
109*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_MC_FORWARDING,
110*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_DISABLE_IPV6,
111*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_DAD,
112*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_FORCE_TLLAO,
113*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_NDISC_NOTIFY,
114*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL,
115*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL,
116*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_SUPPRESS_FRAG_NDISC,
117*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_RA_FROM_LOCAL,
118*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_USE_OPTIMISTIC,
119*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_RA_MTU,
120*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_STABLE_SECRET,
121*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_USE_OIF_ADDRS_ONLY,
122*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT,
123*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN,
124*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
125*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_DROP_UNSOLICITED_NA,
126*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_KEEP_ADDR_ON_DOWN,
127*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_RTR_SOLICIT_MAX_INTERVAL,
128*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_SEG6_ENABLED,
129*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_SEG6_REQUIRE_HMAC,
130*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ENHANCED_DAD,
131*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ADDR_GEN_MODE,
132*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_DISABLE_POLICY,
133*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN,
134*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_NDISC_TCLASS,
135*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_RPL_SEG_ENABLED,
136*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_RA_DEFRTR_METRIC,
137*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_IOAM6_ENABLED,
138*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_IOAM6_ID,
139*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_IOAM6_ID_WIDE,
140*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_NDISC_EVICT_NOCARRIER,
141*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_UNTRACKED_NA,
142*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_ACCEPT_RA_MIN_LFT,
143*8d67ca89SAndroid Build Coastguard Worker   DEVCONF_MAX
144*8d67ca89SAndroid Build Coastguard Worker };
145*8d67ca89SAndroid Build Coastguard Worker #endif
146