xref: /aosp_15_r20/prebuilts/build-tools/sysroots/i686-unknown-linux-musl/include/linux/xfrm.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
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