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_IF_TUNNEL_H_ 8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_IF_TUNNEL_H_ 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #include <linux/if.h> 11*8d67ca89SAndroid Build Coastguard Worker #include <linux/ip.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 SIOCGETTUNNEL (SIOCDEVPRIVATE + 0) 15*8d67ca89SAndroid Build Coastguard Worker #define SIOCADDTUNNEL (SIOCDEVPRIVATE + 1) 16*8d67ca89SAndroid Build Coastguard Worker #define SIOCDELTUNNEL (SIOCDEVPRIVATE + 2) 17*8d67ca89SAndroid Build Coastguard Worker #define SIOCCHGTUNNEL (SIOCDEVPRIVATE + 3) 18*8d67ca89SAndroid Build Coastguard Worker #define SIOCGETPRL (SIOCDEVPRIVATE + 4) 19*8d67ca89SAndroid Build Coastguard Worker #define SIOCADDPRL (SIOCDEVPRIVATE + 5) 20*8d67ca89SAndroid Build Coastguard Worker #define SIOCDELPRL (SIOCDEVPRIVATE + 6) 21*8d67ca89SAndroid Build Coastguard Worker #define SIOCCHGPRL (SIOCDEVPRIVATE + 7) 22*8d67ca89SAndroid Build Coastguard Worker #define SIOCGET6RD (SIOCDEVPRIVATE + 8) 23*8d67ca89SAndroid Build Coastguard Worker #define SIOCADD6RD (SIOCDEVPRIVATE + 9) 24*8d67ca89SAndroid Build Coastguard Worker #define SIOCDEL6RD (SIOCDEVPRIVATE + 10) 25*8d67ca89SAndroid Build Coastguard Worker #define SIOCCHG6RD (SIOCDEVPRIVATE + 11) 26*8d67ca89SAndroid Build Coastguard Worker #define GRE_CSUM __cpu_to_be16(0x8000) 27*8d67ca89SAndroid Build Coastguard Worker #define GRE_ROUTING __cpu_to_be16(0x4000) 28*8d67ca89SAndroid Build Coastguard Worker #define GRE_KEY __cpu_to_be16(0x2000) 29*8d67ca89SAndroid Build Coastguard Worker #define GRE_SEQ __cpu_to_be16(0x1000) 30*8d67ca89SAndroid Build Coastguard Worker #define GRE_STRICT __cpu_to_be16(0x0800) 31*8d67ca89SAndroid Build Coastguard Worker #define GRE_REC __cpu_to_be16(0x0700) 32*8d67ca89SAndroid Build Coastguard Worker #define GRE_ACK __cpu_to_be16(0x0080) 33*8d67ca89SAndroid Build Coastguard Worker #define GRE_FLAGS __cpu_to_be16(0x0078) 34*8d67ca89SAndroid Build Coastguard Worker #define GRE_VERSION __cpu_to_be16(0x0007) 35*8d67ca89SAndroid Build Coastguard Worker #define GRE_IS_CSUM(f) ((f) & GRE_CSUM) 36*8d67ca89SAndroid Build Coastguard Worker #define GRE_IS_ROUTING(f) ((f) & GRE_ROUTING) 37*8d67ca89SAndroid Build Coastguard Worker #define GRE_IS_KEY(f) ((f) & GRE_KEY) 38*8d67ca89SAndroid Build Coastguard Worker #define GRE_IS_SEQ(f) ((f) & GRE_SEQ) 39*8d67ca89SAndroid Build Coastguard Worker #define GRE_IS_STRICT(f) ((f) & GRE_STRICT) 40*8d67ca89SAndroid Build Coastguard Worker #define GRE_IS_REC(f) ((f) & GRE_REC) 41*8d67ca89SAndroid Build Coastguard Worker #define GRE_IS_ACK(f) ((f) & GRE_ACK) 42*8d67ca89SAndroid Build Coastguard Worker #define GRE_VERSION_0 __cpu_to_be16(0x0000) 43*8d67ca89SAndroid Build Coastguard Worker #define GRE_VERSION_1 __cpu_to_be16(0x0001) 44*8d67ca89SAndroid Build Coastguard Worker #define GRE_PROTO_PPP __cpu_to_be16(0x880b) 45*8d67ca89SAndroid Build Coastguard Worker #define GRE_PPTP_KEY_MASK __cpu_to_be32(0xffff) 46*8d67ca89SAndroid Build Coastguard Worker struct ip_tunnel_parm { 47*8d67ca89SAndroid Build Coastguard Worker char name[IFNAMSIZ]; 48*8d67ca89SAndroid Build Coastguard Worker int link; 49*8d67ca89SAndroid Build Coastguard Worker __be16 i_flags; 50*8d67ca89SAndroid Build Coastguard Worker __be16 o_flags; 51*8d67ca89SAndroid Build Coastguard Worker __be32 i_key; 52*8d67ca89SAndroid Build Coastguard Worker __be32 o_key; 53*8d67ca89SAndroid Build Coastguard Worker struct iphdr iph; 54*8d67ca89SAndroid Build Coastguard Worker }; 55*8d67ca89SAndroid Build Coastguard Worker enum { 56*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_UNSPEC, 57*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_LINK, 58*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_LOCAL, 59*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_REMOTE, 60*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_TTL, 61*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_TOS, 62*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_ENCAP_LIMIT, 63*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_FLOWINFO, 64*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_FLAGS, 65*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_PROTO, 66*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_PMTUDISC, 67*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_6RD_PREFIX, 68*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_6RD_RELAY_PREFIX, 69*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_6RD_PREFIXLEN, 70*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_6RD_RELAY_PREFIXLEN, 71*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_ENCAP_TYPE, 72*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_ENCAP_FLAGS, 73*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_ENCAP_SPORT, 74*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_ENCAP_DPORT, 75*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_COLLECT_METADATA, 76*8d67ca89SAndroid Build Coastguard Worker IFLA_IPTUN_FWMARK, 77*8d67ca89SAndroid Build Coastguard Worker __IFLA_IPTUN_MAX, 78*8d67ca89SAndroid Build Coastguard Worker }; 79*8d67ca89SAndroid Build Coastguard Worker #define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1) 80*8d67ca89SAndroid Build Coastguard Worker enum tunnel_encap_types { 81*8d67ca89SAndroid Build Coastguard Worker TUNNEL_ENCAP_NONE, 82*8d67ca89SAndroid Build Coastguard Worker TUNNEL_ENCAP_FOU, 83*8d67ca89SAndroid Build Coastguard Worker TUNNEL_ENCAP_GUE, 84*8d67ca89SAndroid Build Coastguard Worker TUNNEL_ENCAP_MPLS, 85*8d67ca89SAndroid Build Coastguard Worker }; 86*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_ENCAP_FLAG_CSUM (1 << 0) 87*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_ENCAP_FLAG_CSUM6 (1 << 1) 88*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_ENCAP_FLAG_REMCSUM (1 << 2) 89*8d67ca89SAndroid Build Coastguard Worker #define SIT_ISATAP 0x0001 90*8d67ca89SAndroid Build Coastguard Worker struct ip_tunnel_prl { 91*8d67ca89SAndroid Build Coastguard Worker __be32 addr; 92*8d67ca89SAndroid Build Coastguard Worker __u16 flags; 93*8d67ca89SAndroid Build Coastguard Worker __u16 __reserved; 94*8d67ca89SAndroid Build Coastguard Worker __u32 datalen; 95*8d67ca89SAndroid Build Coastguard Worker __u32 __reserved2; 96*8d67ca89SAndroid Build Coastguard Worker }; 97*8d67ca89SAndroid Build Coastguard Worker #define PRL_DEFAULT 0x0001 98*8d67ca89SAndroid Build Coastguard Worker struct ip_tunnel_6rd { 99*8d67ca89SAndroid Build Coastguard Worker struct in6_addr prefix; 100*8d67ca89SAndroid Build Coastguard Worker __be32 relay_prefix; 101*8d67ca89SAndroid Build Coastguard Worker __u16 prefixlen; 102*8d67ca89SAndroid Build Coastguard Worker __u16 relay_prefixlen; 103*8d67ca89SAndroid Build Coastguard Worker }; 104*8d67ca89SAndroid Build Coastguard Worker enum { 105*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_UNSPEC, 106*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_LINK, 107*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_IFLAGS, 108*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_OFLAGS, 109*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_IKEY, 110*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_OKEY, 111*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_LOCAL, 112*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_REMOTE, 113*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_TTL, 114*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_TOS, 115*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_PMTUDISC, 116*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_ENCAP_LIMIT, 117*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_FLOWINFO, 118*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_FLAGS, 119*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_ENCAP_TYPE, 120*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_ENCAP_FLAGS, 121*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_ENCAP_SPORT, 122*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_ENCAP_DPORT, 123*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_COLLECT_METADATA, 124*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_IGNORE_DF, 125*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_FWMARK, 126*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_ERSPAN_INDEX, 127*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_ERSPAN_VER, 128*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_ERSPAN_DIR, 129*8d67ca89SAndroid Build Coastguard Worker IFLA_GRE_ERSPAN_HWID, 130*8d67ca89SAndroid Build Coastguard Worker __IFLA_GRE_MAX, 131*8d67ca89SAndroid Build Coastguard Worker }; 132*8d67ca89SAndroid Build Coastguard Worker #define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1) 133*8d67ca89SAndroid Build Coastguard Worker #define VTI_ISVTI (( __be16) 0x0001) 134*8d67ca89SAndroid Build Coastguard Worker enum { 135*8d67ca89SAndroid Build Coastguard Worker IFLA_VTI_UNSPEC, 136*8d67ca89SAndroid Build Coastguard Worker IFLA_VTI_LINK, 137*8d67ca89SAndroid Build Coastguard Worker IFLA_VTI_IKEY, 138*8d67ca89SAndroid Build Coastguard Worker IFLA_VTI_OKEY, 139*8d67ca89SAndroid Build Coastguard Worker IFLA_VTI_LOCAL, 140*8d67ca89SAndroid Build Coastguard Worker IFLA_VTI_REMOTE, 141*8d67ca89SAndroid Build Coastguard Worker IFLA_VTI_FWMARK, 142*8d67ca89SAndroid Build Coastguard Worker __IFLA_VTI_MAX, 143*8d67ca89SAndroid Build Coastguard Worker }; 144*8d67ca89SAndroid Build Coastguard Worker #define IFLA_VTI_MAX (__IFLA_VTI_MAX - 1) 145*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_CSUM __cpu_to_be16(0x01) 146*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_ROUTING __cpu_to_be16(0x02) 147*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_KEY __cpu_to_be16(0x04) 148*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_SEQ __cpu_to_be16(0x08) 149*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_STRICT __cpu_to_be16(0x10) 150*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_REC __cpu_to_be16(0x20) 151*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_VERSION __cpu_to_be16(0x40) 152*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_NO_KEY __cpu_to_be16(0x80) 153*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_DONT_FRAGMENT __cpu_to_be16(0x0100) 154*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_OAM __cpu_to_be16(0x0200) 155*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_CRIT_OPT __cpu_to_be16(0x0400) 156*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_GENEVE_OPT __cpu_to_be16(0x0800) 157*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_VXLAN_OPT __cpu_to_be16(0x1000) 158*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_NOCACHE __cpu_to_be16(0x2000) 159*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_ERSPAN_OPT __cpu_to_be16(0x4000) 160*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_GTP_OPT __cpu_to_be16(0x8000) 161*8d67ca89SAndroid Build Coastguard Worker #define TUNNEL_OPTIONS_PRESENT (TUNNEL_GENEVE_OPT | TUNNEL_VXLAN_OPT | TUNNEL_ERSPAN_OPT | TUNNEL_GTP_OPT) 162*8d67ca89SAndroid Build Coastguard Worker enum { 163*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_CSUM_BIT = 0U, 164*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_ROUTING_BIT, 165*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_KEY_BIT, 166*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_SEQ_BIT, 167*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_STRICT_BIT, 168*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_REC_BIT, 169*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_VERSION_BIT, 170*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_NO_KEY_BIT, 171*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_DONT_FRAGMENT_BIT, 172*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_OAM_BIT, 173*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_CRIT_OPT_BIT, 174*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_GENEVE_OPT_BIT, 175*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_VXLAN_OPT_BIT, 176*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_NOCACHE_BIT, 177*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_ERSPAN_OPT_BIT, 178*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_GTP_OPT_BIT, 179*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_VTI_BIT, 180*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_SIT_ISATAP_BIT = IP_TUNNEL_VTI_BIT, 181*8d67ca89SAndroid Build Coastguard Worker IP_TUNNEL_PFCP_OPT_BIT, 182*8d67ca89SAndroid Build Coastguard Worker __IP_TUNNEL_FLAG_NUM, 183*8d67ca89SAndroid Build Coastguard Worker }; 184*8d67ca89SAndroid Build Coastguard Worker #endif 185