DPDK
19.11.7
lib
librte_ipsec
rte_ipsec.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_H_
6
#define _RTE_IPSEC_H_
7
21
#include <
rte_ipsec_sa.h
>
22
#include <
rte_mbuf.h
>
23
24
#ifdef __cplusplus
25
extern
"C"
{
26
#endif
27
28
struct
rte_ipsec_session
;
29
39
struct
rte_ipsec_sa_pkt_func
{
40
uint16_t (*prepare)(
const
struct
rte_ipsec_session
*ss,
41
struct
rte_mbuf
*mb[],
42
struct
rte_crypto_op
*cop[],
43
uint16_t num);
44
uint16_t (*process)(
const
struct
rte_ipsec_session
*ss,
45
struct
rte_mbuf
*mb[],
46
uint16_t num);
47
};
48
57
struct
rte_ipsec_session
{
62
struct
rte_ipsec_sa *
sa
;
64
enum
rte_security_session_action_type
type
;
66
union
{
67
struct
{
68
struct
rte_cryptodev_sym_session
*ses;
69
} crypto;
70
struct
{
71
struct
rte_security_session *ses;
72
struct
rte_security_ctx
*ctx;
73
uint32_t ol_flags;
74
} security;
75
};
77
struct
rte_ipsec_sa_pkt_func
pkt_func
;
78
}
__rte_cache_aligned
;
79
91
__rte_experimental
92
int
93
rte_ipsec_session_prepare
(
struct
rte_ipsec_session
*ss);
94
116
__rte_experimental
117
static
inline
uint16_t
118
rte_ipsec_pkt_crypto_prepare
(
const
struct
rte_ipsec_session
*ss,
119
struct
rte_mbuf
*mb[],
struct
rte_crypto_op
*cop[], uint16_t num)
120
{
121
return
ss->
pkt_func
.prepare(ss, mb, cop, num);
122
}
123
147
__rte_experimental
148
static
inline
uint16_t
149
rte_ipsec_pkt_process
(
const
struct
rte_ipsec_session
*ss,
struct
rte_mbuf
*mb[],
150
uint16_t num)
151
{
152
return
ss->
pkt_func
.process(ss, mb, num);
153
}
154
155
#include <
rte_ipsec_group.h
>
156
157
#ifdef __cplusplus
158
}
159
#endif
160
161
#endif
/* _RTE_IPSEC_H_ */
rte_security_session_action_type
rte_security_session_action_type
Definition:
rte_security.h:299
rte_security_ctx
Definition:
rte_security.h:66
rte_ipsec_sa_pkt_func
Definition:
rte_ipsec.h:39
rte_ipsec_pkt_crypto_prepare
static __rte_experimental uint16_t rte_ipsec_pkt_crypto_prepare(const struct rte_ipsec_session *ss, struct rte_mbuf *mb[], struct rte_crypto_op *cop[], uint16_t num)
Definition:
rte_ipsec.h:118
rte_mbuf
Definition:
rte_mbuf_core.h:482
__rte_cache_aligned
#define __rte_cache_aligned
Definition:
rte_common.h:317
rte_crypto_op
Definition:
rte_crypto.h:78
rte_ipsec_session::sa
struct rte_ipsec_sa * sa
Definition:
rte_ipsec.h:62
rte_ipsec_session::type
enum rte_security_session_action_type type
Definition:
rte_ipsec.h:64
rte_ipsec_group.h
rte_ipsec_session
Definition:
rte_ipsec.h:57
rte_cryptodev_sym_session
Definition:
rte_cryptodev.h:974
rte_ipsec_session::pkt_func
struct rte_ipsec_sa_pkt_func pkt_func
Definition:
rte_ipsec.h:77
rte_mbuf.h
rte_ipsec_session_prepare
__rte_experimental int rte_ipsec_session_prepare(struct rte_ipsec_session *ss)
rte_ipsec_sa.h
rte_ipsec_pkt_process
static __rte_experimental uint16_t rte_ipsec_pkt_process(const struct rte_ipsec_session *ss, struct rte_mbuf *mb[], uint16_t num)
Definition:
rte_ipsec.h:149
Generated by
1.8.18