DPDK
25.11.0
Toggle main menu visibility
Loading...
Searching...
No Matches
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
13
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
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_NATT
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
130
#define RTE_IPSEC_SATP_NATT_MASK (1ULL << RTE_SATP_LOG2_NATT)
131
#define RTE_IPSEC_SATP_NATT_DISABLE (0ULL << RTE_SATP_LOG2_NATT)
132
#define RTE_IPSEC_SATP_NATT_ENABLE (1ULL << RTE_SATP_LOG2_NATT)
133
134
140
uint64_t
141
rte_ipsec_sa_type
(
const
struct
rte_ipsec_sa *sa);
142
151
int
152
rte_ipsec_sa_size
(
const
struct
rte_ipsec_sa_prm
*prm);
153
167
int
168
rte_ipsec_sa_init
(
struct
rte_ipsec_sa *sa,
const
struct
rte_ipsec_sa_prm
*prm,
169
uint32_t size);
170
176
void
177
rte_ipsec_sa_fini
(
struct
rte_ipsec_sa *sa);
178
179
#ifdef __cplusplus
180
}
181
#endif
182
183
#endif
/* _RTE_IPSEC_SA_H_ */
rte_common.h
rte_cryptodev.h
rte_ipsec_sa_type
uint64_t rte_ipsec_sa_type(const struct rte_ipsec_sa *sa)
rte_ipsec_sa_fini
void rte_ipsec_sa_fini(struct rte_ipsec_sa *sa)
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_security.h
rte_crypto_sym_xform
Definition
rte_crypto_sym.h:581
rte_ipsec_sa_prm
Definition
rte_ipsec_sa.h:30
rte_ipsec_sa_prm::crypto_xform
struct rte_crypto_sym_xform * crypto_xform
Definition
rte_ipsec_sa.h:37
rte_ipsec_sa_prm::userdata
uint64_t userdata
Definition
rte_ipsec_sa.h:32
rte_ipsec_sa_prm::hdr_l3_off
uint8_t hdr_l3_off
Definition
rte_ipsec_sa.h:41
rte_ipsec_sa_prm::hdr
const void * hdr
Definition
rte_ipsec_sa.h:43
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_ipsec_sa_prm::ipsec_xform
struct rte_security_ipsec_xform ipsec_xform
Definition
rte_ipsec_sa.h:35
rte_ipsec_sa_prm::proto
uint8_t proto
Definition
rte_ipsec_sa.h:46
rte_ipsec_sa_prm::hdr_len
uint8_t hdr_len
Definition
rte_ipsec_sa.h:40
rte_security_ipsec_xform
Definition
rte_security.h:301
lib
ipsec
rte_ipsec_sa.h
Generated by
1.17.0