122851890Sopenharmony_ci/****************************************************************************
222851890Sopenharmony_ci ****************************************************************************
322851890Sopenharmony_ci ***
422851890Sopenharmony_ci ***   This header was automatically generated from a Linux kernel header
522851890Sopenharmony_ci ***   of the same name, to make information necessary for userspace to
622851890Sopenharmony_ci ***   call into the kernel available to libc.  It contains only constants,
722851890Sopenharmony_ci ***   structures, and macros generated from the original header, and thus,
822851890Sopenharmony_ci ***   contains no copyrightable information.
922851890Sopenharmony_ci ***
1022851890Sopenharmony_ci ***   To edit the content of this header, modify the corresponding
1122851890Sopenharmony_ci ***   source file (e.g. under external/kernel-headers/original/) then
1222851890Sopenharmony_ci ***   run bionic/libc/kernel/tools/update_all.py
1322851890Sopenharmony_ci ***
1422851890Sopenharmony_ci ***   Any manual change here will be lost the next time this script will
1522851890Sopenharmony_ci ***   be run. You've been warned!
1622851890Sopenharmony_ci ***
1722851890Sopenharmony_ci ****************************************************************************
1822851890Sopenharmony_ci ****************************************************************************/
1922851890Sopenharmony_ci#ifndef _LINUX_XFRM_H
2022851890Sopenharmony_ci#define _LINUX_XFRM_H
2122851890Sopenharmony_ci#include <linux/in6.h>
2222851890Sopenharmony_ci#include <linux/types.h>
2322851890Sopenharmony_citypedef union {
2422851890Sopenharmony_ci  __be32 a4;
2522851890Sopenharmony_ci  __be32 a6[4];
2622851890Sopenharmony_ci  struct in6_addr in6;
2722851890Sopenharmony_ci} xfrm_address_t;
2822851890Sopenharmony_cistruct xfrm_id {
2922851890Sopenharmony_ci  xfrm_address_t daddr;
3022851890Sopenharmony_ci  __be32 spi;
3122851890Sopenharmony_ci  __u8 proto;
3222851890Sopenharmony_ci};
3322851890Sopenharmony_cistruct xfrm_sec_ctx {
3422851890Sopenharmony_ci  __u8 ctx_doi;
3522851890Sopenharmony_ci  __u8 ctx_alg;
3622851890Sopenharmony_ci  __u16 ctx_len;
3722851890Sopenharmony_ci  __u32 ctx_sid;
3822851890Sopenharmony_ci  char ctx_str[0];
3922851890Sopenharmony_ci};
4022851890Sopenharmony_ci#define XFRM_SC_DOI_RESERVED 0
4122851890Sopenharmony_ci#define XFRM_SC_DOI_LSM 1
4222851890Sopenharmony_ci#define XFRM_SC_ALG_RESERVED 0
4322851890Sopenharmony_ci#define XFRM_SC_ALG_SELINUX 1
4422851890Sopenharmony_cistruct xfrm_selector {
4522851890Sopenharmony_ci  xfrm_address_t daddr;
4622851890Sopenharmony_ci  xfrm_address_t saddr;
4722851890Sopenharmony_ci  __be16 dport;
4822851890Sopenharmony_ci  __be16 dport_mask;
4922851890Sopenharmony_ci  __be16 sport;
5022851890Sopenharmony_ci  __be16 sport_mask;
5122851890Sopenharmony_ci  __u16 family;
5222851890Sopenharmony_ci  __u8 prefixlen_d;
5322851890Sopenharmony_ci  __u8 prefixlen_s;
5422851890Sopenharmony_ci  __u8 proto;
5522851890Sopenharmony_ci  int ifindex;
5622851890Sopenharmony_ci  __kernel_uid32_t user;
5722851890Sopenharmony_ci};
5822851890Sopenharmony_ci#define XFRM_INF (~(__u64) 0)
5922851890Sopenharmony_cistruct xfrm_lifetime_cfg {
6022851890Sopenharmony_ci  __u64 soft_byte_limit;
6122851890Sopenharmony_ci  __u64 hard_byte_limit;
6222851890Sopenharmony_ci  __u64 soft_packet_limit;
6322851890Sopenharmony_ci  __u64 hard_packet_limit;
6422851890Sopenharmony_ci  __u64 soft_add_expires_seconds;
6522851890Sopenharmony_ci  __u64 hard_add_expires_seconds;
6622851890Sopenharmony_ci  __u64 soft_use_expires_seconds;
6722851890Sopenharmony_ci  __u64 hard_use_expires_seconds;
6822851890Sopenharmony_ci};
6922851890Sopenharmony_cistruct xfrm_lifetime_cur {
7022851890Sopenharmony_ci  __u64 bytes;
7122851890Sopenharmony_ci  __u64 packets;
7222851890Sopenharmony_ci  __u64 add_time;
7322851890Sopenharmony_ci  __u64 use_time;
7422851890Sopenharmony_ci};
7522851890Sopenharmony_cistruct xfrm_replay_state {
7622851890Sopenharmony_ci  __u32 oseq;
7722851890Sopenharmony_ci  __u32 seq;
7822851890Sopenharmony_ci  __u32 bitmap;
7922851890Sopenharmony_ci};
8022851890Sopenharmony_ci#define XFRMA_REPLAY_ESN_MAX 4096
8122851890Sopenharmony_cistruct xfrm_replay_state_esn {
8222851890Sopenharmony_ci  unsigned int bmp_len;
8322851890Sopenharmony_ci  __u32 oseq;
8422851890Sopenharmony_ci  __u32 seq;
8522851890Sopenharmony_ci  __u32 oseq_hi;
8622851890Sopenharmony_ci  __u32 seq_hi;
8722851890Sopenharmony_ci  __u32 replay_window;
8822851890Sopenharmony_ci  __u32 bmp[0];
8922851890Sopenharmony_ci};
9022851890Sopenharmony_cistruct xfrm_algo {
9122851890Sopenharmony_ci  char alg_name[64];
9222851890Sopenharmony_ci  unsigned int alg_key_len;
9322851890Sopenharmony_ci  char alg_key[0];
9422851890Sopenharmony_ci};
9522851890Sopenharmony_cistruct xfrm_algo_auth {
9622851890Sopenharmony_ci  char alg_name[64];
9722851890Sopenharmony_ci  unsigned int alg_key_len;
9822851890Sopenharmony_ci  unsigned int alg_trunc_len;
9922851890Sopenharmony_ci  char alg_key[0];
10022851890Sopenharmony_ci};
10122851890Sopenharmony_cistruct xfrm_algo_aead {
10222851890Sopenharmony_ci  char alg_name[64];
10322851890Sopenharmony_ci  unsigned int alg_key_len;
10422851890Sopenharmony_ci  unsigned int alg_icv_len;
10522851890Sopenharmony_ci  char alg_key[0];
10622851890Sopenharmony_ci};
10722851890Sopenharmony_cistruct xfrm_stats {
10822851890Sopenharmony_ci  __u32 replay_window;
10922851890Sopenharmony_ci  __u32 replay;
11022851890Sopenharmony_ci  __u32 integrity_failed;
11122851890Sopenharmony_ci};
11222851890Sopenharmony_cienum {
11322851890Sopenharmony_ci  XFRM_POLICY_TYPE_MAIN = 0,
11422851890Sopenharmony_ci  XFRM_POLICY_TYPE_SUB = 1,
11522851890Sopenharmony_ci  XFRM_POLICY_TYPE_MAX = 2,
11622851890Sopenharmony_ci  XFRM_POLICY_TYPE_ANY = 255
11722851890Sopenharmony_ci};
11822851890Sopenharmony_cienum {
11922851890Sopenharmony_ci  XFRM_POLICY_IN = 0,
12022851890Sopenharmony_ci  XFRM_POLICY_OUT = 1,
12122851890Sopenharmony_ci  XFRM_POLICY_FWD = 2,
12222851890Sopenharmony_ci  XFRM_POLICY_MASK = 3,
12322851890Sopenharmony_ci  XFRM_POLICY_MAX = 3
12422851890Sopenharmony_ci};
12522851890Sopenharmony_cienum {
12622851890Sopenharmony_ci  XFRM_SHARE_ANY,
12722851890Sopenharmony_ci  XFRM_SHARE_SESSION,
12822851890Sopenharmony_ci  XFRM_SHARE_USER,
12922851890Sopenharmony_ci  XFRM_SHARE_UNIQUE
13022851890Sopenharmony_ci};
13122851890Sopenharmony_ci#define XFRM_MODE_TRANSPORT 0
13222851890Sopenharmony_ci#define XFRM_MODE_TUNNEL 1
13322851890Sopenharmony_ci#define XFRM_MODE_ROUTEOPTIMIZATION 2
13422851890Sopenharmony_ci#define XFRM_MODE_IN_TRIGGER 3
13522851890Sopenharmony_ci#define XFRM_MODE_BEET 4
13622851890Sopenharmony_ci#define XFRM_MODE_MAX 5
13722851890Sopenharmony_cienum {
13822851890Sopenharmony_ci  XFRM_MSG_BASE = 0x10,
13922851890Sopenharmony_ci  XFRM_MSG_NEWSA = 0x10,
14022851890Sopenharmony_ci#define XFRM_MSG_NEWSA XFRM_MSG_NEWSA
14122851890Sopenharmony_ci  XFRM_MSG_DELSA,
14222851890Sopenharmony_ci#define XFRM_MSG_DELSA XFRM_MSG_DELSA
14322851890Sopenharmony_ci  XFRM_MSG_GETSA,
14422851890Sopenharmony_ci#define XFRM_MSG_GETSA XFRM_MSG_GETSA
14522851890Sopenharmony_ci  XFRM_MSG_NEWPOLICY,
14622851890Sopenharmony_ci#define XFRM_MSG_NEWPOLICY XFRM_MSG_NEWPOLICY
14722851890Sopenharmony_ci  XFRM_MSG_DELPOLICY,
14822851890Sopenharmony_ci#define XFRM_MSG_DELPOLICY XFRM_MSG_DELPOLICY
14922851890Sopenharmony_ci  XFRM_MSG_GETPOLICY,
15022851890Sopenharmony_ci#define XFRM_MSG_GETPOLICY XFRM_MSG_GETPOLICY
15122851890Sopenharmony_ci  XFRM_MSG_ALLOCSPI,
15222851890Sopenharmony_ci#define XFRM_MSG_ALLOCSPI XFRM_MSG_ALLOCSPI
15322851890Sopenharmony_ci  XFRM_MSG_ACQUIRE,
15422851890Sopenharmony_ci#define XFRM_MSG_ACQUIRE XFRM_MSG_ACQUIRE
15522851890Sopenharmony_ci  XFRM_MSG_EXPIRE,
15622851890Sopenharmony_ci#define XFRM_MSG_EXPIRE XFRM_MSG_EXPIRE
15722851890Sopenharmony_ci  XFRM_MSG_UPDPOLICY,
15822851890Sopenharmony_ci#define XFRM_MSG_UPDPOLICY XFRM_MSG_UPDPOLICY
15922851890Sopenharmony_ci  XFRM_MSG_UPDSA,
16022851890Sopenharmony_ci#define XFRM_MSG_UPDSA XFRM_MSG_UPDSA
16122851890Sopenharmony_ci  XFRM_MSG_POLEXPIRE,
16222851890Sopenharmony_ci#define XFRM_MSG_POLEXPIRE XFRM_MSG_POLEXPIRE
16322851890Sopenharmony_ci  XFRM_MSG_FLUSHSA,
16422851890Sopenharmony_ci#define XFRM_MSG_FLUSHSA XFRM_MSG_FLUSHSA
16522851890Sopenharmony_ci  XFRM_MSG_FLUSHPOLICY,
16622851890Sopenharmony_ci#define XFRM_MSG_FLUSHPOLICY XFRM_MSG_FLUSHPOLICY
16722851890Sopenharmony_ci  XFRM_MSG_NEWAE,
16822851890Sopenharmony_ci#define XFRM_MSG_NEWAE XFRM_MSG_NEWAE
16922851890Sopenharmony_ci  XFRM_MSG_GETAE,
17022851890Sopenharmony_ci#define XFRM_MSG_GETAE XFRM_MSG_GETAE
17122851890Sopenharmony_ci  XFRM_MSG_REPORT,
17222851890Sopenharmony_ci#define XFRM_MSG_REPORT XFRM_MSG_REPORT
17322851890Sopenharmony_ci  XFRM_MSG_MIGRATE,
17422851890Sopenharmony_ci#define XFRM_MSG_MIGRATE XFRM_MSG_MIGRATE
17522851890Sopenharmony_ci  XFRM_MSG_NEWSADINFO,
17622851890Sopenharmony_ci#define XFRM_MSG_NEWSADINFO XFRM_MSG_NEWSADINFO
17722851890Sopenharmony_ci  XFRM_MSG_GETSADINFO,
17822851890Sopenharmony_ci#define XFRM_MSG_GETSADINFO XFRM_MSG_GETSADINFO
17922851890Sopenharmony_ci  XFRM_MSG_NEWSPDINFO,
18022851890Sopenharmony_ci#define XFRM_MSG_NEWSPDINFO XFRM_MSG_NEWSPDINFO
18122851890Sopenharmony_ci  XFRM_MSG_GETSPDINFO,
18222851890Sopenharmony_ci#define XFRM_MSG_GETSPDINFO XFRM_MSG_GETSPDINFO
18322851890Sopenharmony_ci  XFRM_MSG_MAPPING,
18422851890Sopenharmony_ci#define XFRM_MSG_MAPPING XFRM_MSG_MAPPING
18522851890Sopenharmony_ci  __XFRM_MSG_MAX
18622851890Sopenharmony_ci};
18722851890Sopenharmony_ci#define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1)
18822851890Sopenharmony_ci#define XFRM_NR_MSGTYPES (XFRM_MSG_MAX + 1 - XFRM_MSG_BASE)
18922851890Sopenharmony_cistruct xfrm_user_sec_ctx {
19022851890Sopenharmony_ci  __u16 len;
19122851890Sopenharmony_ci  __u16 exttype;
19222851890Sopenharmony_ci  __u8 ctx_alg;
19322851890Sopenharmony_ci  __u8 ctx_doi;
19422851890Sopenharmony_ci  __u16 ctx_len;
19522851890Sopenharmony_ci};
19622851890Sopenharmony_cistruct xfrm_user_tmpl {
19722851890Sopenharmony_ci  struct xfrm_id id;
19822851890Sopenharmony_ci  __u16 family;
19922851890Sopenharmony_ci  xfrm_address_t saddr;
20022851890Sopenharmony_ci  __u32 reqid;
20122851890Sopenharmony_ci  __u8 mode;
20222851890Sopenharmony_ci  __u8 share;
20322851890Sopenharmony_ci  __u8 optional;
20422851890Sopenharmony_ci  __u32 aalgos;
20522851890Sopenharmony_ci  __u32 ealgos;
20622851890Sopenharmony_ci  __u32 calgos;
20722851890Sopenharmony_ci};
20822851890Sopenharmony_cistruct xfrm_encap_tmpl {
20922851890Sopenharmony_ci  __u16 encap_type;
21022851890Sopenharmony_ci  __be16 encap_sport;
21122851890Sopenharmony_ci  __be16 encap_dport;
21222851890Sopenharmony_ci  xfrm_address_t encap_oa;
21322851890Sopenharmony_ci};
21422851890Sopenharmony_cienum xfrm_ae_ftype_t {
21522851890Sopenharmony_ci  XFRM_AE_UNSPEC,
21622851890Sopenharmony_ci  XFRM_AE_RTHR = 1,
21722851890Sopenharmony_ci  XFRM_AE_RVAL = 2,
21822851890Sopenharmony_ci  XFRM_AE_LVAL = 4,
21922851890Sopenharmony_ci  XFRM_AE_ETHR = 8,
22022851890Sopenharmony_ci  XFRM_AE_CR = 16,
22122851890Sopenharmony_ci  XFRM_AE_CE = 32,
22222851890Sopenharmony_ci  XFRM_AE_CU = 64,
22322851890Sopenharmony_ci  __XFRM_AE_MAX
22422851890Sopenharmony_ci#define XFRM_AE_MAX (__XFRM_AE_MAX - 1)
22522851890Sopenharmony_ci};
22622851890Sopenharmony_cistruct xfrm_userpolicy_type {
22722851890Sopenharmony_ci  __u8 type;
22822851890Sopenharmony_ci  __u16 reserved1;
22922851890Sopenharmony_ci  __u8 reserved2;
23022851890Sopenharmony_ci};
23122851890Sopenharmony_cienum xfrm_attr_type_t {
23222851890Sopenharmony_ci  XFRMA_UNSPEC,
23322851890Sopenharmony_ci  XFRMA_ALG_AUTH,
23422851890Sopenharmony_ci  XFRMA_ALG_CRYPT,
23522851890Sopenharmony_ci  XFRMA_ALG_COMP,
23622851890Sopenharmony_ci  XFRMA_ENCAP,
23722851890Sopenharmony_ci  XFRMA_TMPL,
23822851890Sopenharmony_ci  XFRMA_SA,
23922851890Sopenharmony_ci  XFRMA_POLICY,
24022851890Sopenharmony_ci  XFRMA_SEC_CTX,
24122851890Sopenharmony_ci  XFRMA_LTIME_VAL,
24222851890Sopenharmony_ci  XFRMA_REPLAY_VAL,
24322851890Sopenharmony_ci  XFRMA_REPLAY_THRESH,
24422851890Sopenharmony_ci  XFRMA_ETIMER_THRESH,
24522851890Sopenharmony_ci  XFRMA_SRCADDR,
24622851890Sopenharmony_ci  XFRMA_COADDR,
24722851890Sopenharmony_ci  XFRMA_LASTUSED,
24822851890Sopenharmony_ci  XFRMA_POLICY_TYPE,
24922851890Sopenharmony_ci  XFRMA_MIGRATE,
25022851890Sopenharmony_ci  XFRMA_ALG_AEAD,
25122851890Sopenharmony_ci  XFRMA_KMADDRESS,
25222851890Sopenharmony_ci  XFRMA_ALG_AUTH_TRUNC,
25322851890Sopenharmony_ci  XFRMA_MARK,
25422851890Sopenharmony_ci  XFRMA_TFCPAD,
25522851890Sopenharmony_ci  XFRMA_REPLAY_ESN_VAL,
25622851890Sopenharmony_ci  XFRMA_SA_EXTRA_FLAGS,
25722851890Sopenharmony_ci  XFRMA_PROTO,
25822851890Sopenharmony_ci  XFRMA_ADDRESS_FILTER,
25922851890Sopenharmony_ci  XFRMA_PAD,
26022851890Sopenharmony_ci  XFRMA_OFFLOAD_DEV,
26122851890Sopenharmony_ci  XFRMA_SET_MARK,
26222851890Sopenharmony_ci  XFRMA_SET_MARK_MASK,
26322851890Sopenharmony_ci  XFRMA_IF_ID,
26422851890Sopenharmony_ci  __XFRMA_MAX
26522851890Sopenharmony_ci#define XFRMA_OUTPUT_MARK XFRMA_SET_MARK
26622851890Sopenharmony_ci#define XFRMA_MAX (__XFRMA_MAX - 1)
26722851890Sopenharmony_ci};
26822851890Sopenharmony_cistruct xfrm_mark {
26922851890Sopenharmony_ci  __u32 v;
27022851890Sopenharmony_ci  __u32 m;
27122851890Sopenharmony_ci};
27222851890Sopenharmony_cienum xfrm_sadattr_type_t {
27322851890Sopenharmony_ci  XFRMA_SAD_UNSPEC,
27422851890Sopenharmony_ci  XFRMA_SAD_CNT,
27522851890Sopenharmony_ci  XFRMA_SAD_HINFO,
27622851890Sopenharmony_ci  __XFRMA_SAD_MAX
27722851890Sopenharmony_ci#define XFRMA_SAD_MAX (__XFRMA_SAD_MAX - 1)
27822851890Sopenharmony_ci};
27922851890Sopenharmony_cistruct xfrmu_sadhinfo {
28022851890Sopenharmony_ci  __u32 sadhcnt;
28122851890Sopenharmony_ci  __u32 sadhmcnt;
28222851890Sopenharmony_ci};
28322851890Sopenharmony_cienum xfrm_spdattr_type_t {
28422851890Sopenharmony_ci  XFRMA_SPD_UNSPEC,
28522851890Sopenharmony_ci  XFRMA_SPD_INFO,
28622851890Sopenharmony_ci  XFRMA_SPD_HINFO,
28722851890Sopenharmony_ci  XFRMA_SPD_IPV4_HTHRESH,
28822851890Sopenharmony_ci  XFRMA_SPD_IPV6_HTHRESH,
28922851890Sopenharmony_ci  __XFRMA_SPD_MAX
29022851890Sopenharmony_ci#define XFRMA_SPD_MAX (__XFRMA_SPD_MAX - 1)
29122851890Sopenharmony_ci};
29222851890Sopenharmony_cistruct xfrmu_spdinfo {
29322851890Sopenharmony_ci  __u32 incnt;
29422851890Sopenharmony_ci  __u32 outcnt;
29522851890Sopenharmony_ci  __u32 fwdcnt;
29622851890Sopenharmony_ci  __u32 inscnt;
29722851890Sopenharmony_ci  __u32 outscnt;
29822851890Sopenharmony_ci  __u32 fwdscnt;
29922851890Sopenharmony_ci};
30022851890Sopenharmony_cistruct xfrmu_spdhinfo {
30122851890Sopenharmony_ci  __u32 spdhcnt;
30222851890Sopenharmony_ci  __u32 spdhmcnt;
30322851890Sopenharmony_ci};
30422851890Sopenharmony_cistruct xfrmu_spdhthresh {
30522851890Sopenharmony_ci  __u8 lbits;
30622851890Sopenharmony_ci  __u8 rbits;
30722851890Sopenharmony_ci};
30822851890Sopenharmony_cistruct xfrm_usersa_info {
30922851890Sopenharmony_ci  struct xfrm_selector sel;
31022851890Sopenharmony_ci  struct xfrm_id id;
31122851890Sopenharmony_ci  xfrm_address_t saddr;
31222851890Sopenharmony_ci  struct xfrm_lifetime_cfg lft;
31322851890Sopenharmony_ci  struct xfrm_lifetime_cur curlft;
31422851890Sopenharmony_ci  struct xfrm_stats stats;
31522851890Sopenharmony_ci  __u32 seq;
31622851890Sopenharmony_ci  __u32 reqid;
31722851890Sopenharmony_ci  __u16 family;
31822851890Sopenharmony_ci  __u8 mode;
31922851890Sopenharmony_ci  __u8 replay_window;
32022851890Sopenharmony_ci  __u8 flags;
32122851890Sopenharmony_ci#define XFRM_STATE_NOECN 1
32222851890Sopenharmony_ci#define XFRM_STATE_DECAP_DSCP 2
32322851890Sopenharmony_ci#define XFRM_STATE_NOPMTUDISC 4
32422851890Sopenharmony_ci#define XFRM_STATE_WILDRECV 8
32522851890Sopenharmony_ci#define XFRM_STATE_ICMP 16
32622851890Sopenharmony_ci#define XFRM_STATE_AF_UNSPEC 32
32722851890Sopenharmony_ci#define XFRM_STATE_ALIGN4 64
32822851890Sopenharmony_ci#define XFRM_STATE_ESN 128
32922851890Sopenharmony_ci};
33022851890Sopenharmony_ci#define XFRM_SA_XFLAG_DONT_ENCAP_DSCP 1
33122851890Sopenharmony_ci#define XFRM_SA_XFLAG_OSEQ_MAY_WRAP 2
33222851890Sopenharmony_cistruct xfrm_usersa_id {
33322851890Sopenharmony_ci  xfrm_address_t daddr;
33422851890Sopenharmony_ci  __be32 spi;
33522851890Sopenharmony_ci  __u16 family;
33622851890Sopenharmony_ci  __u8 proto;
33722851890Sopenharmony_ci};
33822851890Sopenharmony_cistruct xfrm_aevent_id {
33922851890Sopenharmony_ci  struct xfrm_usersa_id sa_id;
34022851890Sopenharmony_ci  xfrm_address_t saddr;
34122851890Sopenharmony_ci  __u32 flags;
34222851890Sopenharmony_ci  __u32 reqid;
34322851890Sopenharmony_ci};
34422851890Sopenharmony_cistruct xfrm_userspi_info {
34522851890Sopenharmony_ci  struct xfrm_usersa_info info;
34622851890Sopenharmony_ci  __u32 min;
34722851890Sopenharmony_ci  __u32 max;
34822851890Sopenharmony_ci};
34922851890Sopenharmony_cistruct xfrm_userpolicy_info {
35022851890Sopenharmony_ci  struct xfrm_selector sel;
35122851890Sopenharmony_ci  struct xfrm_lifetime_cfg lft;
35222851890Sopenharmony_ci  struct xfrm_lifetime_cur curlft;
35322851890Sopenharmony_ci  __u32 priority;
35422851890Sopenharmony_ci  __u32 index;
35522851890Sopenharmony_ci  __u8 dir;
35622851890Sopenharmony_ci  __u8 action;
35722851890Sopenharmony_ci#define XFRM_POLICY_ALLOW 0
35822851890Sopenharmony_ci#define XFRM_POLICY_BLOCK 1
35922851890Sopenharmony_ci  __u8 flags;
36022851890Sopenharmony_ci#define XFRM_POLICY_LOCALOK 1
36122851890Sopenharmony_ci#define XFRM_POLICY_ICMP 2
36222851890Sopenharmony_ci  __u8 share;
36322851890Sopenharmony_ci};
36422851890Sopenharmony_cistruct xfrm_userpolicy_id {
36522851890Sopenharmony_ci  struct xfrm_selector sel;
36622851890Sopenharmony_ci  __u32 index;
36722851890Sopenharmony_ci  __u8 dir;
36822851890Sopenharmony_ci};
36922851890Sopenharmony_cistruct xfrm_user_acquire {
37022851890Sopenharmony_ci  struct xfrm_id id;
37122851890Sopenharmony_ci  xfrm_address_t saddr;
37222851890Sopenharmony_ci  struct xfrm_selector sel;
37322851890Sopenharmony_ci  struct xfrm_userpolicy_info policy;
37422851890Sopenharmony_ci  __u32 aalgos;
37522851890Sopenharmony_ci  __u32 ealgos;
37622851890Sopenharmony_ci  __u32 calgos;
37722851890Sopenharmony_ci  __u32 seq;
37822851890Sopenharmony_ci};
37922851890Sopenharmony_cistruct xfrm_user_expire {
38022851890Sopenharmony_ci  struct xfrm_usersa_info state;
38122851890Sopenharmony_ci  __u8 hard;
38222851890Sopenharmony_ci};
38322851890Sopenharmony_cistruct xfrm_user_polexpire {
38422851890Sopenharmony_ci  struct xfrm_userpolicy_info pol;
38522851890Sopenharmony_ci  __u8 hard;
38622851890Sopenharmony_ci};
38722851890Sopenharmony_cistruct xfrm_usersa_flush {
38822851890Sopenharmony_ci  __u8 proto;
38922851890Sopenharmony_ci};
39022851890Sopenharmony_cistruct xfrm_user_report {
39122851890Sopenharmony_ci  __u8 proto;
39222851890Sopenharmony_ci  struct xfrm_selector sel;
39322851890Sopenharmony_ci};
39422851890Sopenharmony_cistruct xfrm_user_kmaddress {
39522851890Sopenharmony_ci  xfrm_address_t local;
39622851890Sopenharmony_ci  xfrm_address_t remote;
39722851890Sopenharmony_ci  __u32 reserved;
39822851890Sopenharmony_ci  __u16 family;
39922851890Sopenharmony_ci};
40022851890Sopenharmony_cistruct xfrm_user_migrate {
40122851890Sopenharmony_ci  xfrm_address_t old_daddr;
40222851890Sopenharmony_ci  xfrm_address_t old_saddr;
40322851890Sopenharmony_ci  xfrm_address_t new_daddr;
40422851890Sopenharmony_ci  xfrm_address_t new_saddr;
40522851890Sopenharmony_ci  __u8 proto;
40622851890Sopenharmony_ci  __u8 mode;
40722851890Sopenharmony_ci  __u16 reserved;
40822851890Sopenharmony_ci  __u32 reqid;
40922851890Sopenharmony_ci  __u16 old_family;
41022851890Sopenharmony_ci  __u16 new_family;
41122851890Sopenharmony_ci};
41222851890Sopenharmony_cistruct xfrm_user_mapping {
41322851890Sopenharmony_ci  struct xfrm_usersa_id id;
41422851890Sopenharmony_ci  __u32 reqid;
41522851890Sopenharmony_ci  xfrm_address_t old_saddr;
41622851890Sopenharmony_ci  xfrm_address_t new_saddr;
41722851890Sopenharmony_ci  __be16 old_sport;
41822851890Sopenharmony_ci  __be16 new_sport;
41922851890Sopenharmony_ci};
42022851890Sopenharmony_cistruct xfrm_address_filter {
42122851890Sopenharmony_ci  xfrm_address_t saddr;
42222851890Sopenharmony_ci  xfrm_address_t daddr;
42322851890Sopenharmony_ci  __u16 family;
42422851890Sopenharmony_ci  __u8 splen;
42522851890Sopenharmony_ci  __u8 dplen;
42622851890Sopenharmony_ci};
42722851890Sopenharmony_cistruct xfrm_user_offload {
42822851890Sopenharmony_ci  int ifindex;
42922851890Sopenharmony_ci  __u8 flags;
43022851890Sopenharmony_ci};
43122851890Sopenharmony_ci#define XFRM_OFFLOAD_IPV6 1
43222851890Sopenharmony_ci#define XFRM_OFFLOAD_INBOUND 2
43322851890Sopenharmony_ci#define XFRMGRP_ACQUIRE 1
43422851890Sopenharmony_ci#define XFRMGRP_EXPIRE 2
43522851890Sopenharmony_ci#define XFRMGRP_SA 4
43622851890Sopenharmony_ci#define XFRMGRP_POLICY 8
43722851890Sopenharmony_ci#define XFRMGRP_REPORT 0x20
43822851890Sopenharmony_cienum xfrm_nlgroups {
43922851890Sopenharmony_ci  XFRMNLGRP_NONE,
44022851890Sopenharmony_ci#define XFRMNLGRP_NONE XFRMNLGRP_NONE
44122851890Sopenharmony_ci  XFRMNLGRP_ACQUIRE,
44222851890Sopenharmony_ci#define XFRMNLGRP_ACQUIRE XFRMNLGRP_ACQUIRE
44322851890Sopenharmony_ci  XFRMNLGRP_EXPIRE,
44422851890Sopenharmony_ci#define XFRMNLGRP_EXPIRE XFRMNLGRP_EXPIRE
44522851890Sopenharmony_ci  XFRMNLGRP_SA,
44622851890Sopenharmony_ci#define XFRMNLGRP_SA XFRMNLGRP_SA
44722851890Sopenharmony_ci  XFRMNLGRP_POLICY,
44822851890Sopenharmony_ci#define XFRMNLGRP_POLICY XFRMNLGRP_POLICY
44922851890Sopenharmony_ci  XFRMNLGRP_AEVENTS,
45022851890Sopenharmony_ci#define XFRMNLGRP_AEVENTS XFRMNLGRP_AEVENTS
45122851890Sopenharmony_ci  XFRMNLGRP_REPORT,
45222851890Sopenharmony_ci#define XFRMNLGRP_REPORT XFRMNLGRP_REPORT
45322851890Sopenharmony_ci  XFRMNLGRP_MIGRATE,
45422851890Sopenharmony_ci#define XFRMNLGRP_MIGRATE XFRMNLGRP_MIGRATE
45522851890Sopenharmony_ci  XFRMNLGRP_MAPPING,
45622851890Sopenharmony_ci#define XFRMNLGRP_MAPPING XFRMNLGRP_MAPPING
45722851890Sopenharmony_ci  __XFRMNLGRP_MAX
45822851890Sopenharmony_ci};
45922851890Sopenharmony_ci#define XFRMNLGRP_MAX (__XFRMNLGRP_MAX - 1)
46022851890Sopenharmony_ci#endif
461