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