1*cda5da8dSAndroid Build Coastguard Worker /* 2*cda5da8dSAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*cda5da8dSAndroid Build Coastguard Worker * 4*cda5da8dSAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*cda5da8dSAndroid Build Coastguard Worker * for more information. 6*cda5da8dSAndroid Build Coastguard Worker */ 7*cda5da8dSAndroid Build Coastguard Worker #ifndef _LINUX_XFRM_H 8*cda5da8dSAndroid Build Coastguard Worker #define _LINUX_XFRM_H 9*cda5da8dSAndroid Build Coastguard Worker #include <linux/in6.h> 10*cda5da8dSAndroid Build Coastguard Worker #include <linux/types.h> 11*cda5da8dSAndroid Build Coastguard Worker #include <linux/stddef.h> 12*cda5da8dSAndroid Build Coastguard Worker typedef union { 13*cda5da8dSAndroid Build Coastguard Worker __be32 a4; 14*cda5da8dSAndroid Build Coastguard Worker __be32 a6[4]; 15*cda5da8dSAndroid Build Coastguard Worker struct in6_addr in6; 16*cda5da8dSAndroid Build Coastguard Worker } xfrm_address_t; 17*cda5da8dSAndroid Build Coastguard Worker struct xfrm_id { 18*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t daddr; 19*cda5da8dSAndroid Build Coastguard Worker __be32 spi; 20*cda5da8dSAndroid Build Coastguard Worker __u8 proto; 21*cda5da8dSAndroid Build Coastguard Worker }; 22*cda5da8dSAndroid Build Coastguard Worker struct xfrm_sec_ctx { 23*cda5da8dSAndroid Build Coastguard Worker __u8 ctx_doi; 24*cda5da8dSAndroid Build Coastguard Worker __u8 ctx_alg; 25*cda5da8dSAndroid Build Coastguard Worker __u16 ctx_len; 26*cda5da8dSAndroid Build Coastguard Worker __u32 ctx_sid; 27*cda5da8dSAndroid Build Coastguard Worker char ctx_str[] __counted_by(ctx_len); 28*cda5da8dSAndroid Build Coastguard Worker }; 29*cda5da8dSAndroid Build Coastguard Worker #define XFRM_SC_DOI_RESERVED 0 30*cda5da8dSAndroid Build Coastguard Worker #define XFRM_SC_DOI_LSM 1 31*cda5da8dSAndroid Build Coastguard Worker #define XFRM_SC_ALG_RESERVED 0 32*cda5da8dSAndroid Build Coastguard Worker #define XFRM_SC_ALG_SELINUX 1 33*cda5da8dSAndroid Build Coastguard Worker struct xfrm_selector { 34*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t daddr; 35*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t saddr; 36*cda5da8dSAndroid Build Coastguard Worker __be16 dport; 37*cda5da8dSAndroid Build Coastguard Worker __be16 dport_mask; 38*cda5da8dSAndroid Build Coastguard Worker __be16 sport; 39*cda5da8dSAndroid Build Coastguard Worker __be16 sport_mask; 40*cda5da8dSAndroid Build Coastguard Worker __u16 family; 41*cda5da8dSAndroid Build Coastguard Worker __u8 prefixlen_d; 42*cda5da8dSAndroid Build Coastguard Worker __u8 prefixlen_s; 43*cda5da8dSAndroid Build Coastguard Worker __u8 proto; 44*cda5da8dSAndroid Build Coastguard Worker int ifindex; 45*cda5da8dSAndroid Build Coastguard Worker __kernel_uid32_t user; 46*cda5da8dSAndroid Build Coastguard Worker }; 47*cda5da8dSAndroid Build Coastguard Worker #define XFRM_INF (~(__u64) 0) 48*cda5da8dSAndroid Build Coastguard Worker struct xfrm_lifetime_cfg { 49*cda5da8dSAndroid Build Coastguard Worker __u64 soft_byte_limit; 50*cda5da8dSAndroid Build Coastguard Worker __u64 hard_byte_limit; 51*cda5da8dSAndroid Build Coastguard Worker __u64 soft_packet_limit; 52*cda5da8dSAndroid Build Coastguard Worker __u64 hard_packet_limit; 53*cda5da8dSAndroid Build Coastguard Worker __u64 soft_add_expires_seconds; 54*cda5da8dSAndroid Build Coastguard Worker __u64 hard_add_expires_seconds; 55*cda5da8dSAndroid Build Coastguard Worker __u64 soft_use_expires_seconds; 56*cda5da8dSAndroid Build Coastguard Worker __u64 hard_use_expires_seconds; 57*cda5da8dSAndroid Build Coastguard Worker }; 58*cda5da8dSAndroid Build Coastguard Worker struct xfrm_lifetime_cur { 59*cda5da8dSAndroid Build Coastguard Worker __u64 bytes; 60*cda5da8dSAndroid Build Coastguard Worker __u64 packets; 61*cda5da8dSAndroid Build Coastguard Worker __u64 add_time; 62*cda5da8dSAndroid Build Coastguard Worker __u64 use_time; 63*cda5da8dSAndroid Build Coastguard Worker }; 64*cda5da8dSAndroid Build Coastguard Worker struct xfrm_replay_state { 65*cda5da8dSAndroid Build Coastguard Worker __u32 oseq; 66*cda5da8dSAndroid Build Coastguard Worker __u32 seq; 67*cda5da8dSAndroid Build Coastguard Worker __u32 bitmap; 68*cda5da8dSAndroid Build Coastguard Worker }; 69*cda5da8dSAndroid Build Coastguard Worker #define XFRMA_REPLAY_ESN_MAX 4096 70*cda5da8dSAndroid Build Coastguard Worker struct xfrm_replay_state_esn { 71*cda5da8dSAndroid Build Coastguard Worker unsigned int bmp_len; 72*cda5da8dSAndroid Build Coastguard Worker __u32 oseq; 73*cda5da8dSAndroid Build Coastguard Worker __u32 seq; 74*cda5da8dSAndroid Build Coastguard Worker __u32 oseq_hi; 75*cda5da8dSAndroid Build Coastguard Worker __u32 seq_hi; 76*cda5da8dSAndroid Build Coastguard Worker __u32 replay_window; 77*cda5da8dSAndroid Build Coastguard Worker __u32 bmp[]; 78*cda5da8dSAndroid Build Coastguard Worker }; 79*cda5da8dSAndroid Build Coastguard Worker struct xfrm_algo { 80*cda5da8dSAndroid Build Coastguard Worker char alg_name[64]; 81*cda5da8dSAndroid Build Coastguard Worker unsigned int alg_key_len; 82*cda5da8dSAndroid Build Coastguard Worker char alg_key[]; 83*cda5da8dSAndroid Build Coastguard Worker }; 84*cda5da8dSAndroid Build Coastguard Worker struct xfrm_algo_auth { 85*cda5da8dSAndroid Build Coastguard Worker char alg_name[64]; 86*cda5da8dSAndroid Build Coastguard Worker unsigned int alg_key_len; 87*cda5da8dSAndroid Build Coastguard Worker unsigned int alg_trunc_len; 88*cda5da8dSAndroid Build Coastguard Worker char alg_key[]; 89*cda5da8dSAndroid Build Coastguard Worker }; 90*cda5da8dSAndroid Build Coastguard Worker struct xfrm_algo_aead { 91*cda5da8dSAndroid Build Coastguard Worker char alg_name[64]; 92*cda5da8dSAndroid Build Coastguard Worker unsigned int alg_key_len; 93*cda5da8dSAndroid Build Coastguard Worker unsigned int alg_icv_len; 94*cda5da8dSAndroid Build Coastguard Worker char alg_key[]; 95*cda5da8dSAndroid Build Coastguard Worker }; 96*cda5da8dSAndroid Build Coastguard Worker struct xfrm_stats { 97*cda5da8dSAndroid Build Coastguard Worker __u32 replay_window; 98*cda5da8dSAndroid Build Coastguard Worker __u32 replay; 99*cda5da8dSAndroid Build Coastguard Worker __u32 integrity_failed; 100*cda5da8dSAndroid Build Coastguard Worker }; 101*cda5da8dSAndroid Build Coastguard Worker enum { 102*cda5da8dSAndroid Build Coastguard Worker XFRM_POLICY_TYPE_MAIN = 0, 103*cda5da8dSAndroid Build Coastguard Worker XFRM_POLICY_TYPE_SUB = 1, 104*cda5da8dSAndroid Build Coastguard Worker XFRM_POLICY_TYPE_MAX = 2, 105*cda5da8dSAndroid Build Coastguard Worker XFRM_POLICY_TYPE_ANY = 255 106*cda5da8dSAndroid Build Coastguard Worker }; 107*cda5da8dSAndroid Build Coastguard Worker enum { 108*cda5da8dSAndroid Build Coastguard Worker XFRM_POLICY_IN = 0, 109*cda5da8dSAndroid Build Coastguard Worker XFRM_POLICY_OUT = 1, 110*cda5da8dSAndroid Build Coastguard Worker XFRM_POLICY_FWD = 2, 111*cda5da8dSAndroid Build Coastguard Worker XFRM_POLICY_MASK = 3, 112*cda5da8dSAndroid Build Coastguard Worker XFRM_POLICY_MAX = 3 113*cda5da8dSAndroid Build Coastguard Worker }; 114*cda5da8dSAndroid Build Coastguard Worker enum xfrm_sa_dir { 115*cda5da8dSAndroid Build Coastguard Worker XFRM_SA_DIR_IN = 1, 116*cda5da8dSAndroid Build Coastguard Worker XFRM_SA_DIR_OUT = 2 117*cda5da8dSAndroid Build Coastguard Worker }; 118*cda5da8dSAndroid Build Coastguard Worker enum { 119*cda5da8dSAndroid Build Coastguard Worker XFRM_SHARE_ANY, 120*cda5da8dSAndroid Build Coastguard Worker XFRM_SHARE_SESSION, 121*cda5da8dSAndroid Build Coastguard Worker XFRM_SHARE_USER, 122*cda5da8dSAndroid Build Coastguard Worker XFRM_SHARE_UNIQUE 123*cda5da8dSAndroid Build Coastguard Worker }; 124*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MODE_TRANSPORT 0 125*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MODE_TUNNEL 1 126*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MODE_ROUTEOPTIMIZATION 2 127*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MODE_IN_TRIGGER 3 128*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MODE_BEET 4 129*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MODE_MAX 5 130*cda5da8dSAndroid Build Coastguard Worker enum { 131*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_BASE = 0x10, 132*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_NEWSA = 0x10, 133*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_NEWSA XFRM_MSG_NEWSA 134*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_DELSA, 135*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_DELSA XFRM_MSG_DELSA 136*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_GETSA, 137*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_GETSA XFRM_MSG_GETSA 138*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_NEWPOLICY, 139*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_NEWPOLICY XFRM_MSG_NEWPOLICY 140*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_DELPOLICY, 141*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_DELPOLICY XFRM_MSG_DELPOLICY 142*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_GETPOLICY, 143*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_GETPOLICY XFRM_MSG_GETPOLICY 144*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_ALLOCSPI, 145*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_ALLOCSPI XFRM_MSG_ALLOCSPI 146*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_ACQUIRE, 147*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_ACQUIRE XFRM_MSG_ACQUIRE 148*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_EXPIRE, 149*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_EXPIRE XFRM_MSG_EXPIRE 150*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_UPDPOLICY, 151*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_UPDPOLICY XFRM_MSG_UPDPOLICY 152*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_UPDSA, 153*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_UPDSA XFRM_MSG_UPDSA 154*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_POLEXPIRE, 155*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_POLEXPIRE XFRM_MSG_POLEXPIRE 156*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_FLUSHSA, 157*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_FLUSHSA XFRM_MSG_FLUSHSA 158*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_FLUSHPOLICY, 159*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_FLUSHPOLICY XFRM_MSG_FLUSHPOLICY 160*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_NEWAE, 161*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_NEWAE XFRM_MSG_NEWAE 162*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_GETAE, 163*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_GETAE XFRM_MSG_GETAE 164*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_REPORT, 165*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_REPORT XFRM_MSG_REPORT 166*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_MIGRATE, 167*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_MIGRATE XFRM_MSG_MIGRATE 168*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_NEWSADINFO, 169*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_NEWSADINFO XFRM_MSG_NEWSADINFO 170*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_GETSADINFO, 171*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_GETSADINFO XFRM_MSG_GETSADINFO 172*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_NEWSPDINFO, 173*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_NEWSPDINFO XFRM_MSG_NEWSPDINFO 174*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_GETSPDINFO, 175*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_GETSPDINFO XFRM_MSG_GETSPDINFO 176*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_MAPPING, 177*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_MAPPING XFRM_MSG_MAPPING 178*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_SETDEFAULT, 179*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_SETDEFAULT XFRM_MSG_SETDEFAULT 180*cda5da8dSAndroid Build Coastguard Worker XFRM_MSG_GETDEFAULT, 181*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_GETDEFAULT XFRM_MSG_GETDEFAULT 182*cda5da8dSAndroid Build Coastguard Worker __XFRM_MSG_MAX 183*cda5da8dSAndroid Build Coastguard Worker }; 184*cda5da8dSAndroid Build Coastguard Worker #define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1) 185*cda5da8dSAndroid Build Coastguard Worker #define XFRM_NR_MSGTYPES (XFRM_MSG_MAX + 1 - XFRM_MSG_BASE) 186*cda5da8dSAndroid Build Coastguard Worker struct xfrm_user_sec_ctx { 187*cda5da8dSAndroid Build Coastguard Worker __u16 len; 188*cda5da8dSAndroid Build Coastguard Worker __u16 exttype; 189*cda5da8dSAndroid Build Coastguard Worker __u8 ctx_alg; 190*cda5da8dSAndroid Build Coastguard Worker __u8 ctx_doi; 191*cda5da8dSAndroid Build Coastguard Worker __u16 ctx_len; 192*cda5da8dSAndroid Build Coastguard Worker }; 193*cda5da8dSAndroid Build Coastguard Worker struct xfrm_user_tmpl { 194*cda5da8dSAndroid Build Coastguard Worker struct xfrm_id id; 195*cda5da8dSAndroid Build Coastguard Worker __u16 family; 196*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t saddr; 197*cda5da8dSAndroid Build Coastguard Worker __u32 reqid; 198*cda5da8dSAndroid Build Coastguard Worker __u8 mode; 199*cda5da8dSAndroid Build Coastguard Worker __u8 share; 200*cda5da8dSAndroid Build Coastguard Worker __u8 optional; 201*cda5da8dSAndroid Build Coastguard Worker __u32 aalgos; 202*cda5da8dSAndroid Build Coastguard Worker __u32 ealgos; 203*cda5da8dSAndroid Build Coastguard Worker __u32 calgos; 204*cda5da8dSAndroid Build Coastguard Worker }; 205*cda5da8dSAndroid Build Coastguard Worker struct xfrm_encap_tmpl { 206*cda5da8dSAndroid Build Coastguard Worker __u16 encap_type; 207*cda5da8dSAndroid Build Coastguard Worker __be16 encap_sport; 208*cda5da8dSAndroid Build Coastguard Worker __be16 encap_dport; 209*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t encap_oa; 210*cda5da8dSAndroid Build Coastguard Worker }; 211*cda5da8dSAndroid Build Coastguard Worker enum xfrm_ae_ftype_t { 212*cda5da8dSAndroid Build Coastguard Worker XFRM_AE_UNSPEC, 213*cda5da8dSAndroid Build Coastguard Worker XFRM_AE_RTHR = 1, 214*cda5da8dSAndroid Build Coastguard Worker XFRM_AE_RVAL = 2, 215*cda5da8dSAndroid Build Coastguard Worker XFRM_AE_LVAL = 4, 216*cda5da8dSAndroid Build Coastguard Worker XFRM_AE_ETHR = 8, 217*cda5da8dSAndroid Build Coastguard Worker XFRM_AE_CR = 16, 218*cda5da8dSAndroid Build Coastguard Worker XFRM_AE_CE = 32, 219*cda5da8dSAndroid Build Coastguard Worker XFRM_AE_CU = 64, 220*cda5da8dSAndroid Build Coastguard Worker __XFRM_AE_MAX 221*cda5da8dSAndroid Build Coastguard Worker #define XFRM_AE_MAX (__XFRM_AE_MAX - 1) 222*cda5da8dSAndroid Build Coastguard Worker }; 223*cda5da8dSAndroid Build Coastguard Worker struct xfrm_userpolicy_type { 224*cda5da8dSAndroid Build Coastguard Worker __u8 type; 225*cda5da8dSAndroid Build Coastguard Worker __u16 reserved1; 226*cda5da8dSAndroid Build Coastguard Worker __u8 reserved2; 227*cda5da8dSAndroid Build Coastguard Worker }; 228*cda5da8dSAndroid Build Coastguard Worker enum xfrm_attr_type_t { 229*cda5da8dSAndroid Build Coastguard Worker XFRMA_UNSPEC, 230*cda5da8dSAndroid Build Coastguard Worker XFRMA_ALG_AUTH, 231*cda5da8dSAndroid Build Coastguard Worker XFRMA_ALG_CRYPT, 232*cda5da8dSAndroid Build Coastguard Worker XFRMA_ALG_COMP, 233*cda5da8dSAndroid Build Coastguard Worker XFRMA_ENCAP, 234*cda5da8dSAndroid Build Coastguard Worker XFRMA_TMPL, 235*cda5da8dSAndroid Build Coastguard Worker XFRMA_SA, 236*cda5da8dSAndroid Build Coastguard Worker XFRMA_POLICY, 237*cda5da8dSAndroid Build Coastguard Worker XFRMA_SEC_CTX, 238*cda5da8dSAndroid Build Coastguard Worker XFRMA_LTIME_VAL, 239*cda5da8dSAndroid Build Coastguard Worker XFRMA_REPLAY_VAL, 240*cda5da8dSAndroid Build Coastguard Worker XFRMA_REPLAY_THRESH, 241*cda5da8dSAndroid Build Coastguard Worker XFRMA_ETIMER_THRESH, 242*cda5da8dSAndroid Build Coastguard Worker XFRMA_SRCADDR, 243*cda5da8dSAndroid Build Coastguard Worker XFRMA_COADDR, 244*cda5da8dSAndroid Build Coastguard Worker XFRMA_LASTUSED, 245*cda5da8dSAndroid Build Coastguard Worker XFRMA_POLICY_TYPE, 246*cda5da8dSAndroid Build Coastguard Worker XFRMA_MIGRATE, 247*cda5da8dSAndroid Build Coastguard Worker XFRMA_ALG_AEAD, 248*cda5da8dSAndroid Build Coastguard Worker XFRMA_KMADDRESS, 249*cda5da8dSAndroid Build Coastguard Worker XFRMA_ALG_AUTH_TRUNC, 250*cda5da8dSAndroid Build Coastguard Worker XFRMA_MARK, 251*cda5da8dSAndroid Build Coastguard Worker XFRMA_TFCPAD, 252*cda5da8dSAndroid Build Coastguard Worker XFRMA_REPLAY_ESN_VAL, 253*cda5da8dSAndroid Build Coastguard Worker XFRMA_SA_EXTRA_FLAGS, 254*cda5da8dSAndroid Build Coastguard Worker XFRMA_PROTO, 255*cda5da8dSAndroid Build Coastguard Worker XFRMA_ADDRESS_FILTER, 256*cda5da8dSAndroid Build Coastguard Worker XFRMA_PAD, 257*cda5da8dSAndroid Build Coastguard Worker XFRMA_OFFLOAD_DEV, 258*cda5da8dSAndroid Build Coastguard Worker XFRMA_SET_MARK, 259*cda5da8dSAndroid Build Coastguard Worker XFRMA_SET_MARK_MASK, 260*cda5da8dSAndroid Build Coastguard Worker XFRMA_IF_ID, 261*cda5da8dSAndroid Build Coastguard Worker XFRMA_MTIMER_THRESH, 262*cda5da8dSAndroid Build Coastguard Worker XFRMA_SA_DIR, 263*cda5da8dSAndroid Build Coastguard Worker XFRMA_NAT_KEEPALIVE_INTERVAL, 264*cda5da8dSAndroid Build Coastguard Worker __XFRMA_MAX 265*cda5da8dSAndroid Build Coastguard Worker #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK 266*cda5da8dSAndroid Build Coastguard Worker #define XFRMA_MAX (__XFRMA_MAX - 1) 267*cda5da8dSAndroid Build Coastguard Worker }; 268*cda5da8dSAndroid Build Coastguard Worker struct xfrm_mark { 269*cda5da8dSAndroid Build Coastguard Worker __u32 v; 270*cda5da8dSAndroid Build Coastguard Worker __u32 m; 271*cda5da8dSAndroid Build Coastguard Worker }; 272*cda5da8dSAndroid Build Coastguard Worker enum xfrm_sadattr_type_t { 273*cda5da8dSAndroid Build Coastguard Worker XFRMA_SAD_UNSPEC, 274*cda5da8dSAndroid Build Coastguard Worker XFRMA_SAD_CNT, 275*cda5da8dSAndroid Build Coastguard Worker XFRMA_SAD_HINFO, 276*cda5da8dSAndroid Build Coastguard Worker __XFRMA_SAD_MAX 277*cda5da8dSAndroid Build Coastguard Worker #define XFRMA_SAD_MAX (__XFRMA_SAD_MAX - 1) 278*cda5da8dSAndroid Build Coastguard Worker }; 279*cda5da8dSAndroid Build Coastguard Worker struct xfrmu_sadhinfo { 280*cda5da8dSAndroid Build Coastguard Worker __u32 sadhcnt; 281*cda5da8dSAndroid Build Coastguard Worker __u32 sadhmcnt; 282*cda5da8dSAndroid Build Coastguard Worker }; 283*cda5da8dSAndroid Build Coastguard Worker enum xfrm_spdattr_type_t { 284*cda5da8dSAndroid Build Coastguard Worker XFRMA_SPD_UNSPEC, 285*cda5da8dSAndroid Build Coastguard Worker XFRMA_SPD_INFO, 286*cda5da8dSAndroid Build Coastguard Worker XFRMA_SPD_HINFO, 287*cda5da8dSAndroid Build Coastguard Worker XFRMA_SPD_IPV4_HTHRESH, 288*cda5da8dSAndroid Build Coastguard Worker XFRMA_SPD_IPV6_HTHRESH, 289*cda5da8dSAndroid Build Coastguard Worker __XFRMA_SPD_MAX 290*cda5da8dSAndroid Build Coastguard Worker #define XFRMA_SPD_MAX (__XFRMA_SPD_MAX - 1) 291*cda5da8dSAndroid Build Coastguard Worker }; 292*cda5da8dSAndroid Build Coastguard Worker struct xfrmu_spdinfo { 293*cda5da8dSAndroid Build Coastguard Worker __u32 incnt; 294*cda5da8dSAndroid Build Coastguard Worker __u32 outcnt; 295*cda5da8dSAndroid Build Coastguard Worker __u32 fwdcnt; 296*cda5da8dSAndroid Build Coastguard Worker __u32 inscnt; 297*cda5da8dSAndroid Build Coastguard Worker __u32 outscnt; 298*cda5da8dSAndroid Build Coastguard Worker __u32 fwdscnt; 299*cda5da8dSAndroid Build Coastguard Worker }; 300*cda5da8dSAndroid Build Coastguard Worker struct xfrmu_spdhinfo { 301*cda5da8dSAndroid Build Coastguard Worker __u32 spdhcnt; 302*cda5da8dSAndroid Build Coastguard Worker __u32 spdhmcnt; 303*cda5da8dSAndroid Build Coastguard Worker }; 304*cda5da8dSAndroid Build Coastguard Worker struct xfrmu_spdhthresh { 305*cda5da8dSAndroid Build Coastguard Worker __u8 lbits; 306*cda5da8dSAndroid Build Coastguard Worker __u8 rbits; 307*cda5da8dSAndroid Build Coastguard Worker }; 308*cda5da8dSAndroid Build Coastguard Worker struct xfrm_usersa_info { 309*cda5da8dSAndroid Build Coastguard Worker struct xfrm_selector sel; 310*cda5da8dSAndroid Build Coastguard Worker struct xfrm_id id; 311*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t saddr; 312*cda5da8dSAndroid Build Coastguard Worker struct xfrm_lifetime_cfg lft; 313*cda5da8dSAndroid Build Coastguard Worker struct xfrm_lifetime_cur curlft; 314*cda5da8dSAndroid Build Coastguard Worker struct xfrm_stats stats; 315*cda5da8dSAndroid Build Coastguard Worker __u32 seq; 316*cda5da8dSAndroid Build Coastguard Worker __u32 reqid; 317*cda5da8dSAndroid Build Coastguard Worker __u16 family; 318*cda5da8dSAndroid Build Coastguard Worker __u8 mode; 319*cda5da8dSAndroid Build Coastguard Worker __u8 replay_window; 320*cda5da8dSAndroid Build Coastguard Worker __u8 flags; 321*cda5da8dSAndroid Build Coastguard Worker #define XFRM_STATE_NOECN 1 322*cda5da8dSAndroid Build Coastguard Worker #define XFRM_STATE_DECAP_DSCP 2 323*cda5da8dSAndroid Build Coastguard Worker #define XFRM_STATE_NOPMTUDISC 4 324*cda5da8dSAndroid Build Coastguard Worker #define XFRM_STATE_WILDRECV 8 325*cda5da8dSAndroid Build Coastguard Worker #define XFRM_STATE_ICMP 16 326*cda5da8dSAndroid Build Coastguard Worker #define XFRM_STATE_AF_UNSPEC 32 327*cda5da8dSAndroid Build Coastguard Worker #define XFRM_STATE_ALIGN4 64 328*cda5da8dSAndroid Build Coastguard Worker #define XFRM_STATE_ESN 128 329*cda5da8dSAndroid Build Coastguard Worker }; 330*cda5da8dSAndroid Build Coastguard Worker #define XFRM_SA_XFLAG_DONT_ENCAP_DSCP 1 331*cda5da8dSAndroid Build Coastguard Worker #define XFRM_SA_XFLAG_OSEQ_MAY_WRAP 2 332*cda5da8dSAndroid Build Coastguard Worker struct xfrm_usersa_id { 333*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t daddr; 334*cda5da8dSAndroid Build Coastguard Worker __be32 spi; 335*cda5da8dSAndroid Build Coastguard Worker __u16 family; 336*cda5da8dSAndroid Build Coastguard Worker __u8 proto; 337*cda5da8dSAndroid Build Coastguard Worker }; 338*cda5da8dSAndroid Build Coastguard Worker struct xfrm_aevent_id { 339*cda5da8dSAndroid Build Coastguard Worker struct xfrm_usersa_id sa_id; 340*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t saddr; 341*cda5da8dSAndroid Build Coastguard Worker __u32 flags; 342*cda5da8dSAndroid Build Coastguard Worker __u32 reqid; 343*cda5da8dSAndroid Build Coastguard Worker }; 344*cda5da8dSAndroid Build Coastguard Worker struct xfrm_userspi_info { 345*cda5da8dSAndroid Build Coastguard Worker struct xfrm_usersa_info info; 346*cda5da8dSAndroid Build Coastguard Worker __u32 min; 347*cda5da8dSAndroid Build Coastguard Worker __u32 max; 348*cda5da8dSAndroid Build Coastguard Worker }; 349*cda5da8dSAndroid Build Coastguard Worker struct xfrm_userpolicy_info { 350*cda5da8dSAndroid Build Coastguard Worker struct xfrm_selector sel; 351*cda5da8dSAndroid Build Coastguard Worker struct xfrm_lifetime_cfg lft; 352*cda5da8dSAndroid Build Coastguard Worker struct xfrm_lifetime_cur curlft; 353*cda5da8dSAndroid Build Coastguard Worker __u32 priority; 354*cda5da8dSAndroid Build Coastguard Worker __u32 index; 355*cda5da8dSAndroid Build Coastguard Worker __u8 dir; 356*cda5da8dSAndroid Build Coastguard Worker __u8 action; 357*cda5da8dSAndroid Build Coastguard Worker #define XFRM_POLICY_ALLOW 0 358*cda5da8dSAndroid Build Coastguard Worker #define XFRM_POLICY_BLOCK 1 359*cda5da8dSAndroid Build Coastguard Worker __u8 flags; 360*cda5da8dSAndroid Build Coastguard Worker #define XFRM_POLICY_LOCALOK 1 361*cda5da8dSAndroid Build Coastguard Worker #define XFRM_POLICY_ICMP 2 362*cda5da8dSAndroid Build Coastguard Worker __u8 share; 363*cda5da8dSAndroid Build Coastguard Worker }; 364*cda5da8dSAndroid Build Coastguard Worker struct xfrm_userpolicy_id { 365*cda5da8dSAndroid Build Coastguard Worker struct xfrm_selector sel; 366*cda5da8dSAndroid Build Coastguard Worker __u32 index; 367*cda5da8dSAndroid Build Coastguard Worker __u8 dir; 368*cda5da8dSAndroid Build Coastguard Worker }; 369*cda5da8dSAndroid Build Coastguard Worker struct xfrm_user_acquire { 370*cda5da8dSAndroid Build Coastguard Worker struct xfrm_id id; 371*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t saddr; 372*cda5da8dSAndroid Build Coastguard Worker struct xfrm_selector sel; 373*cda5da8dSAndroid Build Coastguard Worker struct xfrm_userpolicy_info policy; 374*cda5da8dSAndroid Build Coastguard Worker __u32 aalgos; 375*cda5da8dSAndroid Build Coastguard Worker __u32 ealgos; 376*cda5da8dSAndroid Build Coastguard Worker __u32 calgos; 377*cda5da8dSAndroid Build Coastguard Worker __u32 seq; 378*cda5da8dSAndroid Build Coastguard Worker }; 379*cda5da8dSAndroid Build Coastguard Worker struct xfrm_user_expire { 380*cda5da8dSAndroid Build Coastguard Worker struct xfrm_usersa_info state; 381*cda5da8dSAndroid Build Coastguard Worker __u8 hard; 382*cda5da8dSAndroid Build Coastguard Worker }; 383*cda5da8dSAndroid Build Coastguard Worker struct xfrm_user_polexpire { 384*cda5da8dSAndroid Build Coastguard Worker struct xfrm_userpolicy_info pol; 385*cda5da8dSAndroid Build Coastguard Worker __u8 hard; 386*cda5da8dSAndroid Build Coastguard Worker }; 387*cda5da8dSAndroid Build Coastguard Worker struct xfrm_usersa_flush { 388*cda5da8dSAndroid Build Coastguard Worker __u8 proto; 389*cda5da8dSAndroid Build Coastguard Worker }; 390*cda5da8dSAndroid Build Coastguard Worker struct xfrm_user_report { 391*cda5da8dSAndroid Build Coastguard Worker __u8 proto; 392*cda5da8dSAndroid Build Coastguard Worker struct xfrm_selector sel; 393*cda5da8dSAndroid Build Coastguard Worker }; 394*cda5da8dSAndroid Build Coastguard Worker struct xfrm_user_kmaddress { 395*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t local; 396*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t remote; 397*cda5da8dSAndroid Build Coastguard Worker __u32 reserved; 398*cda5da8dSAndroid Build Coastguard Worker __u16 family; 399*cda5da8dSAndroid Build Coastguard Worker }; 400*cda5da8dSAndroid Build Coastguard Worker struct xfrm_user_migrate { 401*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t old_daddr; 402*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t old_saddr; 403*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t new_daddr; 404*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t new_saddr; 405*cda5da8dSAndroid Build Coastguard Worker __u8 proto; 406*cda5da8dSAndroid Build Coastguard Worker __u8 mode; 407*cda5da8dSAndroid Build Coastguard Worker __u16 reserved; 408*cda5da8dSAndroid Build Coastguard Worker __u32 reqid; 409*cda5da8dSAndroid Build Coastguard Worker __u16 old_family; 410*cda5da8dSAndroid Build Coastguard Worker __u16 new_family; 411*cda5da8dSAndroid Build Coastguard Worker }; 412*cda5da8dSAndroid Build Coastguard Worker struct xfrm_user_mapping { 413*cda5da8dSAndroid Build Coastguard Worker struct xfrm_usersa_id id; 414*cda5da8dSAndroid Build Coastguard Worker __u32 reqid; 415*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t old_saddr; 416*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t new_saddr; 417*cda5da8dSAndroid Build Coastguard Worker __be16 old_sport; 418*cda5da8dSAndroid Build Coastguard Worker __be16 new_sport; 419*cda5da8dSAndroid Build Coastguard Worker }; 420*cda5da8dSAndroid Build Coastguard Worker struct xfrm_address_filter { 421*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t saddr; 422*cda5da8dSAndroid Build Coastguard Worker xfrm_address_t daddr; 423*cda5da8dSAndroid Build Coastguard Worker __u16 family; 424*cda5da8dSAndroid Build Coastguard Worker __u8 splen; 425*cda5da8dSAndroid Build Coastguard Worker __u8 dplen; 426*cda5da8dSAndroid Build Coastguard Worker }; 427*cda5da8dSAndroid Build Coastguard Worker struct xfrm_user_offload { 428*cda5da8dSAndroid Build Coastguard Worker int ifindex; 429*cda5da8dSAndroid Build Coastguard Worker __u8 flags; 430*cda5da8dSAndroid Build Coastguard Worker }; 431*cda5da8dSAndroid Build Coastguard Worker #define XFRM_OFFLOAD_IPV6 1 432*cda5da8dSAndroid Build Coastguard Worker #define XFRM_OFFLOAD_INBOUND 2 433*cda5da8dSAndroid Build Coastguard Worker #define XFRM_OFFLOAD_PACKET 4 434*cda5da8dSAndroid Build Coastguard Worker struct xfrm_userpolicy_default { 435*cda5da8dSAndroid Build Coastguard Worker #define XFRM_USERPOLICY_UNSPEC 0 436*cda5da8dSAndroid Build Coastguard Worker #define XFRM_USERPOLICY_BLOCK 1 437*cda5da8dSAndroid Build Coastguard Worker #define XFRM_USERPOLICY_ACCEPT 2 438*cda5da8dSAndroid Build Coastguard Worker __u8 in; 439*cda5da8dSAndroid Build Coastguard Worker __u8 fwd; 440*cda5da8dSAndroid Build Coastguard Worker __u8 out; 441*cda5da8dSAndroid Build Coastguard Worker }; 442*cda5da8dSAndroid Build Coastguard Worker #define XFRMGRP_ACQUIRE 1 443*cda5da8dSAndroid Build Coastguard Worker #define XFRMGRP_EXPIRE 2 444*cda5da8dSAndroid Build Coastguard Worker #define XFRMGRP_SA 4 445*cda5da8dSAndroid Build Coastguard Worker #define XFRMGRP_POLICY 8 446*cda5da8dSAndroid Build Coastguard Worker #define XFRMGRP_REPORT 0x20 447*cda5da8dSAndroid Build Coastguard Worker enum xfrm_nlgroups { 448*cda5da8dSAndroid Build Coastguard Worker XFRMNLGRP_NONE, 449*cda5da8dSAndroid Build Coastguard Worker #define XFRMNLGRP_NONE XFRMNLGRP_NONE 450*cda5da8dSAndroid Build Coastguard Worker XFRMNLGRP_ACQUIRE, 451*cda5da8dSAndroid Build Coastguard Worker #define XFRMNLGRP_ACQUIRE XFRMNLGRP_ACQUIRE 452*cda5da8dSAndroid Build Coastguard Worker XFRMNLGRP_EXPIRE, 453*cda5da8dSAndroid Build Coastguard Worker #define XFRMNLGRP_EXPIRE XFRMNLGRP_EXPIRE 454*cda5da8dSAndroid Build Coastguard Worker XFRMNLGRP_SA, 455*cda5da8dSAndroid Build Coastguard Worker #define XFRMNLGRP_SA XFRMNLGRP_SA 456*cda5da8dSAndroid Build Coastguard Worker XFRMNLGRP_POLICY, 457*cda5da8dSAndroid Build Coastguard Worker #define XFRMNLGRP_POLICY XFRMNLGRP_POLICY 458*cda5da8dSAndroid Build Coastguard Worker XFRMNLGRP_AEVENTS, 459*cda5da8dSAndroid Build Coastguard Worker #define XFRMNLGRP_AEVENTS XFRMNLGRP_AEVENTS 460*cda5da8dSAndroid Build Coastguard Worker XFRMNLGRP_REPORT, 461*cda5da8dSAndroid Build Coastguard Worker #define XFRMNLGRP_REPORT XFRMNLGRP_REPORT 462*cda5da8dSAndroid Build Coastguard Worker XFRMNLGRP_MIGRATE, 463*cda5da8dSAndroid Build Coastguard Worker #define XFRMNLGRP_MIGRATE XFRMNLGRP_MIGRATE 464*cda5da8dSAndroid Build Coastguard Worker XFRMNLGRP_MAPPING, 465*cda5da8dSAndroid Build Coastguard Worker #define XFRMNLGRP_MAPPING XFRMNLGRP_MAPPING 466*cda5da8dSAndroid Build Coastguard Worker __XFRMNLGRP_MAX 467*cda5da8dSAndroid Build Coastguard Worker }; 468*cda5da8dSAndroid Build Coastguard Worker #define XFRMNLGRP_MAX (__XFRMNLGRP_MAX - 1) 469*cda5da8dSAndroid Build Coastguard Worker #endif 470