DPDK
20.11.0
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
14
#include <
rte_common.h
>
15
#include <
rte_cryptodev.h
>
16
#include <
rte_security.h
>
17
18
#ifdef __cplusplus
19
extern
"C"
{
20
#endif
21
25
struct
rte_ipsec_sa;
26
30
struct
rte_ipsec_sa_prm
{
31
32
uint64_t
userdata
;
33
uint64_t
flags
;
35
struct
rte_security_ipsec_xform
ipsec_xform
;
37
struct
rte_crypto_sym_xform
*
crypto_xform
;
38
union
{
39
struct
{
40
uint8_t
hdr_len
;
41
uint8_t
hdr_l3_off
;
42
uint8_t
next_proto
;
43
const
void
*
hdr
;
44
}
tun
;
45
struct
{
46
uint8_t
proto
;
47
}
trs
;
48
};
49
};
50
70
#define RTE_IPSEC_SAFLAG_SQN_ATOM (1ULL << 0)
71
84
enum
{
85
RTE_SATP_LOG2_IPV,
86
RTE_SATP_LOG2_PROTO,
87
RTE_SATP_LOG2_DIR,
88
RTE_SATP_LOG2_MODE,
89
RTE_SATP_LOG2_SQN = RTE_SATP_LOG2_MODE + 2,
90
RTE_SATP_LOG2_ESN,
91
RTE_SATP_LOG2_ECN,
92
RTE_SATP_LOG2_DSCP
93
};
94
95
#define RTE_IPSEC_SATP_IPV_MASK (1ULL << RTE_SATP_LOG2_IPV)
96
#define RTE_IPSEC_SATP_IPV4 (0ULL << RTE_SATP_LOG2_IPV)
97
#define RTE_IPSEC_SATP_IPV6 (1ULL << RTE_SATP_LOG2_IPV)
98
99
#define RTE_IPSEC_SATP_PROTO_MASK (1ULL << RTE_SATP_LOG2_PROTO)
100
#define RTE_IPSEC_SATP_PROTO_AH (0ULL << RTE_SATP_LOG2_PROTO)
101
#define RTE_IPSEC_SATP_PROTO_ESP (1ULL << RTE_SATP_LOG2_PROTO)
102
103
#define RTE_IPSEC_SATP_DIR_MASK (1ULL << RTE_SATP_LOG2_DIR)
104
#define RTE_IPSEC_SATP_DIR_IB (0ULL << RTE_SATP_LOG2_DIR)
105
#define RTE_IPSEC_SATP_DIR_OB (1ULL << RTE_SATP_LOG2_DIR)
106
107
#define RTE_IPSEC_SATP_MODE_MASK (3ULL << RTE_SATP_LOG2_MODE)
108
#define RTE_IPSEC_SATP_MODE_TRANS (0ULL << RTE_SATP_LOG2_MODE)
109
#define RTE_IPSEC_SATP_MODE_TUNLV4 (1ULL << RTE_SATP_LOG2_MODE)
110
#define RTE_IPSEC_SATP_MODE_TUNLV6 (2ULL << RTE_SATP_LOG2_MODE)
111
112
#define RTE_IPSEC_SATP_SQN_MASK (1ULL << RTE_SATP_LOG2_SQN)
113
#define RTE_IPSEC_SATP_SQN_RAW (0ULL << RTE_SATP_LOG2_SQN)
114
#define RTE_IPSEC_SATP_SQN_ATOM (1ULL << RTE_SATP_LOG2_SQN)
115
116
#define RTE_IPSEC_SATP_ESN_MASK (1ULL << RTE_SATP_LOG2_ESN)
117
#define RTE_IPSEC_SATP_ESN_DISABLE (0ULL << RTE_SATP_LOG2_ESN)
118
#define RTE_IPSEC_SATP_ESN_ENABLE (1ULL << RTE_SATP_LOG2_ESN)
119
120
#define RTE_IPSEC_SATP_ECN_MASK (1ULL << RTE_SATP_LOG2_ECN)
121
#define RTE_IPSEC_SATP_ECN_DISABLE (0ULL << RTE_SATP_LOG2_ECN)
122
#define RTE_IPSEC_SATP_ECN_ENABLE (1ULL << RTE_SATP_LOG2_ECN)
123
124
#define RTE_IPSEC_SATP_DSCP_MASK (1ULL << RTE_SATP_LOG2_DSCP)
125
#define RTE_IPSEC_SATP_DSCP_DISABLE (0ULL << RTE_SATP_LOG2_DSCP)
126
#define RTE_IPSEC_SATP_DSCP_ENABLE (1ULL << RTE_SATP_LOG2_DSCP)
127
133
uint64_t
134
rte_ipsec_sa_type
(
const
struct
rte_ipsec_sa *sa);
135
144
int
145
rte_ipsec_sa_size
(
const
struct
rte_ipsec_sa_prm
*prm);
146
160
int
161
rte_ipsec_sa_init
(
struct
rte_ipsec_sa *sa,
const
struct
rte_ipsec_sa_prm
*prm,
162
uint32_t size);
163
169
void
170
rte_ipsec_sa_fini
(
struct
rte_ipsec_sa *sa);
171
172
#ifdef __cplusplus
173
}
174
#endif
175
176
#endif
/* _RTE_IPSEC_SA_H_ */
rte_security.h
rte_ipsec_sa_prm::hdr
const void * hdr
Definition:
rte_ipsec_sa.h:43
rte_ipsec_sa_type
uint64_t rte_ipsec_sa_type(const struct rte_ipsec_sa *sa)
rte_ipsec_sa_prm::userdata
uint64_t userdata
Definition:
rte_ipsec_sa.h:32
rte_ipsec_sa_fini
void rte_ipsec_sa_fini(struct rte_ipsec_sa *sa)
rte_cryptodev.h
rte_ipsec_sa_prm::hdr_len
uint8_t hdr_len
Definition:
rte_ipsec_sa.h:40
rte_ipsec_sa_prm::proto
uint8_t proto
Definition:
rte_ipsec_sa.h:46
rte_ipsec_sa_prm::trs
struct rte_ipsec_sa_prm::@229::@232 trs
rte_ipsec_sa_prm::hdr_l3_off
uint8_t hdr_l3_off
Definition:
rte_ipsec_sa.h:41
rte_ipsec_sa_init
int rte_ipsec_sa_init(struct rte_ipsec_sa *sa, const struct rte_ipsec_sa_prm *prm, uint32_t size)
rte_ipsec_sa_size
int rte_ipsec_sa_size(const struct rte_ipsec_sa_prm *prm)
rte_ipsec_sa_prm
Definition:
rte_ipsec_sa.h:30
rte_common.h
rte_ipsec_sa_prm::ipsec_xform
struct rte_security_ipsec_xform ipsec_xform
Definition:
rte_ipsec_sa.h:35
rte_ipsec_sa_prm::tun
struct rte_ipsec_sa_prm::@229::@231 tun
rte_ipsec_sa_prm::crypto_xform
struct rte_crypto_sym_xform * crypto_xform
Definition:
rte_ipsec_sa.h:37
rte_crypto_sym_xform
Definition:
rte_crypto_sym.h:543
rte_ipsec_sa_prm::next_proto
uint8_t next_proto
Definition:
rte_ipsec_sa.h:42
rte_ipsec_sa_prm::flags
uint64_t flags
Definition:
rte_ipsec_sa.h:33
rte_security_ipsec_xform
Definition:
rte_security.h:199
Generated by
1.8.20