122851890Sopenharmony_ci/**************************************************************************** 222851890Sopenharmony_ci **************************************************************************** 322851890Sopenharmony_ci *** 422851890Sopenharmony_ci *** This header was automatically generated from a Linux kernel header 522851890Sopenharmony_ci *** of the same name, to make information necessary for userspace to 622851890Sopenharmony_ci *** call into the kernel available to libc. It contains only constants, 722851890Sopenharmony_ci *** structures, and macros generated from the original header, and thus, 822851890Sopenharmony_ci *** contains no copyrightable information. 922851890Sopenharmony_ci *** 1022851890Sopenharmony_ci *** To edit the content of this header, modify the corresponding 1122851890Sopenharmony_ci *** source file (e.g. under external/kernel-headers/original/) then 1222851890Sopenharmony_ci *** run bionic/libc/kernel/tools/update_all.py 1322851890Sopenharmony_ci *** 1422851890Sopenharmony_ci *** Any manual change here will be lost the next time this script will 1522851890Sopenharmony_ci *** be run. You've been warned! 1622851890Sopenharmony_ci *** 1722851890Sopenharmony_ci **************************************************************************** 1822851890Sopenharmony_ci ****************************************************************************/ 1922851890Sopenharmony_ci#ifndef _UAPI_IF_TUNNEL_H_ 2022851890Sopenharmony_ci#define _UAPI_IF_TUNNEL_H_ 2122851890Sopenharmony_ci#include <linux/types.h> 2222851890Sopenharmony_ci#include <linux/if.h> 2322851890Sopenharmony_ci#include <linux/ip.h> 2422851890Sopenharmony_ci#include <linux/in6.h> 2522851890Sopenharmony_ci#include <asm/byteorder.h> 2622851890Sopenharmony_ci#define SIOCGETTUNNEL (SIOCDEVPRIVATE + 0) 2722851890Sopenharmony_ci#define SIOCADDTUNNEL (SIOCDEVPRIVATE + 1) 2822851890Sopenharmony_ci#define SIOCDELTUNNEL (SIOCDEVPRIVATE + 2) 2922851890Sopenharmony_ci#define SIOCCHGTUNNEL (SIOCDEVPRIVATE + 3) 3022851890Sopenharmony_ci#define SIOCGETPRL (SIOCDEVPRIVATE + 4) 3122851890Sopenharmony_ci#define SIOCADDPRL (SIOCDEVPRIVATE + 5) 3222851890Sopenharmony_ci#define SIOCDELPRL (SIOCDEVPRIVATE + 6) 3322851890Sopenharmony_ci#define SIOCCHGPRL (SIOCDEVPRIVATE + 7) 3422851890Sopenharmony_ci#define SIOCGET6RD (SIOCDEVPRIVATE + 8) 3522851890Sopenharmony_ci#define SIOCADD6RD (SIOCDEVPRIVATE + 9) 3622851890Sopenharmony_ci#define SIOCDEL6RD (SIOCDEVPRIVATE + 10) 3722851890Sopenharmony_ci#define SIOCCHG6RD (SIOCDEVPRIVATE + 11) 3822851890Sopenharmony_ci#define GRE_CSUM __cpu_to_be16(0x8000) 3922851890Sopenharmony_ci#define GRE_ROUTING __cpu_to_be16(0x4000) 4022851890Sopenharmony_ci#define GRE_KEY __cpu_to_be16(0x2000) 4122851890Sopenharmony_ci#define GRE_SEQ __cpu_to_be16(0x1000) 4222851890Sopenharmony_ci#define GRE_STRICT __cpu_to_be16(0x0800) 4322851890Sopenharmony_ci#define GRE_REC __cpu_to_be16(0x0700) 4422851890Sopenharmony_ci#define GRE_ACK __cpu_to_be16(0x0080) 4522851890Sopenharmony_ci#define GRE_FLAGS __cpu_to_be16(0x0078) 4622851890Sopenharmony_ci#define GRE_VERSION __cpu_to_be16(0x0007) 4722851890Sopenharmony_ci#define GRE_IS_CSUM(f) ((f) & GRE_CSUM) 4822851890Sopenharmony_ci#define GRE_IS_ROUTING(f) ((f) & GRE_ROUTING) 4922851890Sopenharmony_ci#define GRE_IS_KEY(f) ((f) & GRE_KEY) 5022851890Sopenharmony_ci#define GRE_IS_SEQ(f) ((f) & GRE_SEQ) 5122851890Sopenharmony_ci#define GRE_IS_STRICT(f) ((f) & GRE_STRICT) 5222851890Sopenharmony_ci#define GRE_IS_REC(f) ((f) & GRE_REC) 5322851890Sopenharmony_ci#define GRE_IS_ACK(f) ((f) & GRE_ACK) 5422851890Sopenharmony_ci#define GRE_VERSION_0 __cpu_to_be16(0x0000) 5522851890Sopenharmony_ci#define GRE_VERSION_1 __cpu_to_be16(0x0001) 5622851890Sopenharmony_ci#define GRE_PROTO_PPP __cpu_to_be16(0x880b) 5722851890Sopenharmony_ci#define GRE_PPTP_KEY_MASK __cpu_to_be32(0xffff) 5822851890Sopenharmony_cistruct ip_tunnel_parm { 5922851890Sopenharmony_ci char name[IFNAMSIZ]; 6022851890Sopenharmony_ci int link; 6122851890Sopenharmony_ci __be16 i_flags; 6222851890Sopenharmony_ci __be16 o_flags; 6322851890Sopenharmony_ci __be32 i_key; 6422851890Sopenharmony_ci __be32 o_key; 6522851890Sopenharmony_ci struct iphdr iph; 6622851890Sopenharmony_ci}; 6722851890Sopenharmony_cienum { 6822851890Sopenharmony_ci IFLA_IPTUN_UNSPEC, 6922851890Sopenharmony_ci IFLA_IPTUN_LINK, 7022851890Sopenharmony_ci IFLA_IPTUN_LOCAL, 7122851890Sopenharmony_ci IFLA_IPTUN_REMOTE, 7222851890Sopenharmony_ci IFLA_IPTUN_TTL, 7322851890Sopenharmony_ci IFLA_IPTUN_TOS, 7422851890Sopenharmony_ci IFLA_IPTUN_ENCAP_LIMIT, 7522851890Sopenharmony_ci IFLA_IPTUN_FLOWINFO, 7622851890Sopenharmony_ci IFLA_IPTUN_FLAGS, 7722851890Sopenharmony_ci IFLA_IPTUN_PROTO, 7822851890Sopenharmony_ci IFLA_IPTUN_PMTUDISC, 7922851890Sopenharmony_ci IFLA_IPTUN_6RD_PREFIX, 8022851890Sopenharmony_ci IFLA_IPTUN_6RD_RELAY_PREFIX, 8122851890Sopenharmony_ci IFLA_IPTUN_6RD_PREFIXLEN, 8222851890Sopenharmony_ci IFLA_IPTUN_6RD_RELAY_PREFIXLEN, 8322851890Sopenharmony_ci IFLA_IPTUN_ENCAP_TYPE, 8422851890Sopenharmony_ci IFLA_IPTUN_ENCAP_FLAGS, 8522851890Sopenharmony_ci IFLA_IPTUN_ENCAP_SPORT, 8622851890Sopenharmony_ci IFLA_IPTUN_ENCAP_DPORT, 8722851890Sopenharmony_ci IFLA_IPTUN_COLLECT_METADATA, 8822851890Sopenharmony_ci IFLA_IPTUN_FWMARK, 8922851890Sopenharmony_ci __IFLA_IPTUN_MAX, 9022851890Sopenharmony_ci}; 9122851890Sopenharmony_ci#define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1) 9222851890Sopenharmony_cienum tunnel_encap_types { 9322851890Sopenharmony_ci TUNNEL_ENCAP_NONE, 9422851890Sopenharmony_ci TUNNEL_ENCAP_FOU, 9522851890Sopenharmony_ci TUNNEL_ENCAP_GUE, 9622851890Sopenharmony_ci TUNNEL_ENCAP_MPLS, 9722851890Sopenharmony_ci}; 9822851890Sopenharmony_ci#define TUNNEL_ENCAP_FLAG_CSUM (1 << 0) 9922851890Sopenharmony_ci#define TUNNEL_ENCAP_FLAG_CSUM6 (1 << 1) 10022851890Sopenharmony_ci#define TUNNEL_ENCAP_FLAG_REMCSUM (1 << 2) 10122851890Sopenharmony_ci#define SIT_ISATAP 0x0001 10222851890Sopenharmony_cistruct ip_tunnel_prl { 10322851890Sopenharmony_ci __be32 addr; 10422851890Sopenharmony_ci __u16 flags; 10522851890Sopenharmony_ci __u16 __reserved; 10622851890Sopenharmony_ci __u32 datalen; 10722851890Sopenharmony_ci __u32 __reserved2; 10822851890Sopenharmony_ci}; 10922851890Sopenharmony_ci#define PRL_DEFAULT 0x0001 11022851890Sopenharmony_cistruct ip_tunnel_6rd { 11122851890Sopenharmony_ci struct in6_addr prefix; 11222851890Sopenharmony_ci __be32 relay_prefix; 11322851890Sopenharmony_ci __u16 prefixlen; 11422851890Sopenharmony_ci __u16 relay_prefixlen; 11522851890Sopenharmony_ci}; 11622851890Sopenharmony_cienum { 11722851890Sopenharmony_ci IFLA_GRE_UNSPEC, 11822851890Sopenharmony_ci IFLA_GRE_LINK, 11922851890Sopenharmony_ci IFLA_GRE_IFLAGS, 12022851890Sopenharmony_ci IFLA_GRE_OFLAGS, 12122851890Sopenharmony_ci IFLA_GRE_IKEY, 12222851890Sopenharmony_ci IFLA_GRE_OKEY, 12322851890Sopenharmony_ci IFLA_GRE_LOCAL, 12422851890Sopenharmony_ci IFLA_GRE_REMOTE, 12522851890Sopenharmony_ci IFLA_GRE_TTL, 12622851890Sopenharmony_ci IFLA_GRE_TOS, 12722851890Sopenharmony_ci IFLA_GRE_PMTUDISC, 12822851890Sopenharmony_ci IFLA_GRE_ENCAP_LIMIT, 12922851890Sopenharmony_ci IFLA_GRE_FLOWINFO, 13022851890Sopenharmony_ci IFLA_GRE_FLAGS, 13122851890Sopenharmony_ci IFLA_GRE_ENCAP_TYPE, 13222851890Sopenharmony_ci IFLA_GRE_ENCAP_FLAGS, 13322851890Sopenharmony_ci IFLA_GRE_ENCAP_SPORT, 13422851890Sopenharmony_ci IFLA_GRE_ENCAP_DPORT, 13522851890Sopenharmony_ci IFLA_GRE_COLLECT_METADATA, 13622851890Sopenharmony_ci IFLA_GRE_IGNORE_DF, 13722851890Sopenharmony_ci IFLA_GRE_FWMARK, 13822851890Sopenharmony_ci IFLA_GRE_ERSPAN_INDEX, 13922851890Sopenharmony_ci IFLA_GRE_ERSPAN_VER, 14022851890Sopenharmony_ci IFLA_GRE_ERSPAN_DIR, 14122851890Sopenharmony_ci IFLA_GRE_ERSPAN_HWID, 14222851890Sopenharmony_ci __IFLA_GRE_MAX, 14322851890Sopenharmony_ci}; 14422851890Sopenharmony_ci#define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1) 14522851890Sopenharmony_ci#define VTI_ISVTI ((__force __be16) 0x0001) 14622851890Sopenharmony_cienum { 14722851890Sopenharmony_ci IFLA_VTI_UNSPEC, 14822851890Sopenharmony_ci IFLA_VTI_LINK, 14922851890Sopenharmony_ci IFLA_VTI_IKEY, 15022851890Sopenharmony_ci IFLA_VTI_OKEY, 15122851890Sopenharmony_ci IFLA_VTI_LOCAL, 15222851890Sopenharmony_ci IFLA_VTI_REMOTE, 15322851890Sopenharmony_ci IFLA_VTI_FWMARK, 15422851890Sopenharmony_ci __IFLA_VTI_MAX, 15522851890Sopenharmony_ci}; 15622851890Sopenharmony_ci#define IFLA_VTI_MAX (__IFLA_VTI_MAX - 1) 15722851890Sopenharmony_ci#define TUNNEL_CSUM __cpu_to_be16(0x01) 15822851890Sopenharmony_ci#define TUNNEL_ROUTING __cpu_to_be16(0x02) 15922851890Sopenharmony_ci#define TUNNEL_KEY __cpu_to_be16(0x04) 16022851890Sopenharmony_ci#define TUNNEL_SEQ __cpu_to_be16(0x08) 16122851890Sopenharmony_ci#define TUNNEL_STRICT __cpu_to_be16(0x10) 16222851890Sopenharmony_ci#define TUNNEL_REC __cpu_to_be16(0x20) 16322851890Sopenharmony_ci#define TUNNEL_VERSION __cpu_to_be16(0x40) 16422851890Sopenharmony_ci#define TUNNEL_NO_KEY __cpu_to_be16(0x80) 16522851890Sopenharmony_ci#define TUNNEL_DONT_FRAGMENT __cpu_to_be16(0x0100) 16622851890Sopenharmony_ci#define TUNNEL_OAM __cpu_to_be16(0x0200) 16722851890Sopenharmony_ci#define TUNNEL_CRIT_OPT __cpu_to_be16(0x0400) 16822851890Sopenharmony_ci#define TUNNEL_GENEVE_OPT __cpu_to_be16(0x0800) 16922851890Sopenharmony_ci#define TUNNEL_VXLAN_OPT __cpu_to_be16(0x1000) 17022851890Sopenharmony_ci#define TUNNEL_NOCACHE __cpu_to_be16(0x2000) 17122851890Sopenharmony_ci#define TUNNEL_ERSPAN_OPT __cpu_to_be16(0x4000) 17222851890Sopenharmony_ci#define TUNNEL_OPTIONS_PRESENT (TUNNEL_GENEVE_OPT | TUNNEL_VXLAN_OPT | TUNNEL_ERSPAN_OPT) 17322851890Sopenharmony_ci#endif 174