DPDK
19.11.4
lib
librte_ipsec
rte_ipsec_sa.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-3-Clause
2
* Copyright(c) 2018 Intel Corporation
3
*/
4
5
#ifndef _RTE_IPSEC_SA_H_
6
#define _RTE_IPSEC_SA_H_
7
15
#include <
rte_common.h
>
16
#include <
rte_cryptodev.h
>
17
#include <
rte_security.h
>
18
19
#ifdef __cplusplus
20
extern
"C"
{
21
#endif
22
26
struct
rte_ipsec_sa;
27
31
struct
rte_ipsec_sa_prm
{
32
33
uint64_t
userdata
;
34
uint64_t
flags
;
36
struct
rte_security_ipsec_xform
ipsec_xform
;
38
struct
rte_crypto_sym_xform
*
crypto_xform
;
39
union
{
40
struct
{
41
uint8_t
hdr_len
;
42
uint8_t
hdr_l3_off
;
43
uint8_t
next_proto
;
44
const
void
*
hdr
;
45
}
tun
;
46
struct
{
47
uint8_t
proto
;
48
}
trs
;
49
};
50
};
51
71
#define RTE_IPSEC_SAFLAG_SQN_ATOM (1ULL << 0)
72
85
enum
{
86
RTE_SATP_LOG2_IPV,
87
RTE_SATP_LOG2_PROTO,
88
RTE_SATP_LOG2_DIR,
89
RTE_SATP_LOG2_MODE,
90
RTE_SATP_LOG2_SQN = RTE_SATP_LOG2_MODE + 2,
91
RTE_SATP_LOG2_ESN,
92
RTE_SATP_LOG2_ECN,
93
RTE_SATP_LOG2_DSCP,
94
RTE_SATP_LOG2_NUM
95
};
96
97
#define RTE_IPSEC_SATP_IPV_MASK (1ULL << RTE_SATP_LOG2_IPV)
98
#define RTE_IPSEC_SATP_IPV4 (0ULL << RTE_SATP_LOG2_IPV)
99
#define RTE_IPSEC_SATP_IPV6 (1ULL << RTE_SATP_LOG2_IPV)
100
101
#define RTE_IPSEC_SATP_PROTO_MASK (1ULL << RTE_SATP_LOG2_PROTO)
102
#define RTE_IPSEC_SATP_PROTO_AH (0ULL << RTE_SATP_LOG2_PROTO)
103
#define RTE_IPSEC_SATP_PROTO_ESP (1ULL << RTE_SATP_LOG2_PROTO)
104
105
#define RTE_IPSEC_SATP_DIR_MASK (1ULL << RTE_SATP_LOG2_DIR)
106
#define RTE_IPSEC_SATP_DIR_IB (0ULL << RTE_SATP_LOG2_DIR)
107
#define RTE_IPSEC_SATP_DIR_OB (1ULL << RTE_SATP_LOG2_DIR)
108
109
#define RTE_IPSEC_SATP_MODE_MASK (3ULL << RTE_SATP_LOG2_MODE)
110
#define RTE_IPSEC_SATP_MODE_TRANS (0ULL << RTE_SATP_LOG2_MODE)
111
#define RTE_IPSEC_SATP_MODE_TUNLV4 (1ULL << RTE_SATP_LOG2_MODE)
112
#define RTE_IPSEC_SATP_MODE_TUNLV6 (2ULL << RTE_SATP_LOG2_MODE)
113
114
#define RTE_IPSEC_SATP_SQN_MASK (1ULL << RTE_SATP_LOG2_SQN)
115
#define RTE_IPSEC_SATP_SQN_RAW (0ULL << RTE_SATP_LOG2_SQN)
116
#define RTE_IPSEC_SATP_SQN_ATOM (1ULL << RTE_SATP_LOG2_SQN)
117
118
#define RTE_IPSEC_SATP_ESN_MASK (1ULL << RTE_SATP_LOG2_ESN)
119
#define RTE_IPSEC_SATP_ESN_DISABLE (0ULL << RTE_SATP_LOG2_ESN)
120
#define RTE_IPSEC_SATP_ESN_ENABLE (1ULL << RTE_SATP_LOG2_ESN)
121
122
#define RTE_IPSEC_SATP_ECN_MASK (1ULL << RTE_SATP_LOG2_ECN)
123
#define RTE_IPSEC_SATP_ECN_DISABLE (0ULL << RTE_SATP_LOG2_ECN)
124
#define RTE_IPSEC_SATP_ECN_ENABLE (1ULL << RTE_SATP_LOG2_ECN)
125
126
#define RTE_IPSEC_SATP_DSCP_MASK (1ULL << RTE_SATP_LOG2_DSCP)
127
#define RTE_IPSEC_SATP_DSCP_DISABLE (0ULL << RTE_SATP_LOG2_DSCP)
128
#define RTE_IPSEC_SATP_DSCP_ENABLE (1ULL << RTE_SATP_LOG2_DSCP)
129
135
__rte_experimental
136
uint64_t
137
rte_ipsec_sa_type
(
const
struct
rte_ipsec_sa *sa);
138
147
__rte_experimental
148
int
149
rte_ipsec_sa_size
(
const
struct
rte_ipsec_sa_prm
*prm);
150
164
__rte_experimental
165
int
166
rte_ipsec_sa_init
(
struct
rte_ipsec_sa *sa,
const
struct
rte_ipsec_sa_prm
*prm,
167
uint32_t size);
168
174
__rte_experimental
175
void
176
rte_ipsec_sa_fini
(
struct
rte_ipsec_sa *sa);
177
178
#ifdef __cplusplus
179
}
180
#endif
181
182
#endif
/* _RTE_IPSEC_SA_H_ */
rte_security.h
rte_ipsec_sa_prm::hdr
const void * hdr
Definition:
rte_ipsec_sa.h:44
rte_ipsec_sa_prm::trs
struct rte_ipsec_sa_prm::@1::@4 trs
rte_ipsec_sa_prm::userdata
uint64_t userdata
Definition:
rte_ipsec_sa.h:33
rte_cryptodev.h
rte_ipsec_sa_prm::hdr_len
uint8_t hdr_len
Definition:
rte_ipsec_sa.h:41
rte_ipsec_sa_prm::proto
uint8_t proto
Definition:
rte_ipsec_sa.h:47
rte_ipsec_sa_type
__rte_experimental uint64_t rte_ipsec_sa_type(const struct rte_ipsec_sa *sa)
rte_ipsec_sa_size
__rte_experimental int rte_ipsec_sa_size(const struct rte_ipsec_sa_prm *prm)
rte_ipsec_sa_fini
__rte_experimental void rte_ipsec_sa_fini(struct rte_ipsec_sa *sa)
rte_ipsec_sa_prm::hdr_l3_off
uint8_t hdr_l3_off
Definition:
rte_ipsec_sa.h:42
rte_ipsec_sa_prm
Definition:
rte_ipsec_sa.h:31
rte_common.h
rte_ipsec_sa_prm::ipsec_xform
struct rte_security_ipsec_xform ipsec_xform
Definition:
rte_ipsec_sa.h:36
rte_ipsec_sa_prm::crypto_xform
struct rte_crypto_sym_xform * crypto_xform
Definition:
rte_ipsec_sa.h:38
rte_crypto_sym_xform
Definition:
rte_crypto_sym.h:443
rte_ipsec_sa_prm::tun
struct rte_ipsec_sa_prm::@1::@3 tun
rte_ipsec_sa_init
__rte_experimental int rte_ipsec_sa_init(struct rte_ipsec_sa *sa, const struct rte_ipsec_sa_prm *prm, uint32_t size)
rte_ipsec_sa_prm::next_proto
uint8_t next_proto
Definition:
rte_ipsec_sa.h:43
rte_ipsec_sa_prm::flags
uint64_t flags
Definition:
rte_ipsec_sa.h:34
rte_security_ipsec_xform
Definition:
rte_security.h:198
Generated by
1.8.19