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