1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/**************************************************************************** 2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** This header was automatically generated from a Linux kernel header 5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** of the same name, to make information necessary for userspace to 6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** call into the kernel available to libc. It contains only constants, 7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** structures, and macros generated from the original header, and thus, 8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** contains no copyrightable information. 9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** To edit the content of this header, modify the corresponding 11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** source file (e.g. under external/kernel-headers/original/) then 12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** run bionic/libc/kernel/tools/update_all.py 13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** Any manual change here will be lost the next time this script will 15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** be run. You've been warned! 16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _UAPI_IPV6_H 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _UAPI_IPV6_H 2105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#include <linux/libc-compat.h> 22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h> 2305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#include <linux/in6.h> 24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <asm/byteorder.h> 25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IPV6_MIN_MTU 1280 2605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#if __UAPI_DEF_IN6_PKTINFO 27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct in6_pktinfo { 28d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct in6_addr ipi6_addr; 29d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int ipi6_ifindex; 30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 3105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#endif 3205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#if __UAPI_DEF_IP6_MTUINFO 33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ip6_mtuinfo { 34d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct sockaddr_in6 ip6m_addr; 35d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 ip6m_mtu; 36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 3705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#endif 38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct in6_ifreq { 3905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris struct in6_addr ifr6_addr; 40d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 ifr6_prefixlen; 41d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int ifr6_ifindex; 42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 4305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define IPV6_SRCRT_STRICT 0x01 44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IPV6_SRCRT_TYPE_0 0 45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IPV6_SRCRT_TYPE_2 2 4648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define IPV6_SRCRT_TYPE_4 4 4748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisstruct ipv6_rt_hdr { 4805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u8 nexthdr; 49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 hdrlen; 50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 type; 5148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris __u8 segments_left; 5205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris}; 53655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ipv6_opt_hdr { 54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 nexthdr; 5548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris __u8 hdrlen; 5605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __attribute__((packed)); 57655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define ipv6_destopt_hdr ipv6_opt_hdr 58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define ipv6_hopopt_hdr ipv6_opt_hdr 5948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#define IPV6_OPT_ROUTERALERT_MLD 0x0000 6005d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct rt0_hdr { 61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct ipv6_rt_hdr rt_hdr; 62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 reserved; 6348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris struct in6_addr addr[0]; 6405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define rt0_type rt_hdr.type 65655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 66655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct rt2_hdr { 6748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris struct ipv6_rt_hdr rt_hdr; 6805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 reserved; 69d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct in6_addr addr; 70655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define rt2_type rt_hdr.type 7148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris}; 7205d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct ipv6_destopt_hao { 73d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 type; 74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 length; 7548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris struct in6_addr addr; 7605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __attribute__((packed)); 77655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ipv6hdr { 78655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifdef __LITTLE_ENDIAN_BITFIELD 7948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris __u8 priority : 4, version : 4; 8005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#elif defined(__BIG_ENDIAN_BITFIELD) 81d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 version : 4, priority : 4; 82d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#else 8348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris#error "Please fix <asm/byteorder.h>" 8405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#endif 85d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 flow_lbl[3]; 86d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be16 payload_len; 8748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris __u8 nexthdr; 8805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u8 hop_limit; 89d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct in6_addr saddr; 90d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct in6_addr daddr; 9148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris}; 9205d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum { 93d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_FORWARDING = 0, 94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_HOPLIMIT, 9548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_MTU6, 9605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris DEVCONF_ACCEPT_RA, 97d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_ACCEPT_REDIRECTS, 98d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_AUTOCONF, 9948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_DAD_TRANSMITS, 10005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris DEVCONF_RTR_SOLICITS, 101d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_RTR_SOLICIT_INTERVAL, 102d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_RTR_SOLICIT_DELAY, 10348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_USE_TEMPADDR, 10405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris DEVCONF_TEMP_VALID_LFT, 105d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_TEMP_PREFERED_LFT, 106d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_REGEN_MAX_RETRY, 10748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_MAX_DESYNC_FACTOR, 10805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris DEVCONF_MAX_ADDRESSES, 109d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_FORCE_MLD_VERSION, 110d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_ACCEPT_RA_DEFRTR, 11148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_ACCEPT_RA_PINFO, 11205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris DEVCONF_ACCEPT_RA_RTR_PREF, 113d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_RTR_PROBE_INTERVAL, 114d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN, 11548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_PROXY_NDP, 11605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris DEVCONF_OPTIMISTIC_DAD, 117d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_ACCEPT_SOURCE_ROUTE, 118d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_MC_FORWARDING, 11948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_DISABLE_IPV6, 12005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris DEVCONF_ACCEPT_DAD, 121d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_FORCE_TLLAO, 122d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_NDISC_NOTIFY, 12348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL, 12405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL, 125d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_SUPPRESS_FRAG_NDISC, 126d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_ACCEPT_RA_FROM_LOCAL, 12748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_USE_OPTIMISTIC, 12805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris DEVCONF_ACCEPT_RA_MTU, 12905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris DEVCONF_STABLE_SECRET, 13005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris DEVCONF_USE_OIF_ADDRS_ONLY, 13148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT, 13205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN, 133106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris DEVCONF_DROP_UNICAST_IN_L2_MULTICAST, 134106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris DEVCONF_DROP_UNSOLICITED_NA, 13548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_KEEP_ADDR_ON_DOWN, 1366a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris DEVCONF_RTR_SOLICIT_MAX_INTERVAL, 13748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_SEG6_ENABLED, 13848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_SEG6_REQUIRE_HMAC, 13948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris DEVCONF_ENHANCED_DAD, 140525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris DEVCONF_ADDR_GEN_MODE, 141525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris DEVCONF_DISABLE_POLICY, 142525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN, 143934ec9495505d234b2c2fa284470c2f44aae9de9Christopher Ferris DEVCONF_NDISC_TCLASS, 144d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao DEVCONF_MAX 145655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 146655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 147