DPDK  24.03.0
rte_security_driver.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright 2017 NXP.
3  * Copyright(c) 2017 Intel Corporation.
4  */
5 
6 #ifndef _RTE_SECURITY_DRIVER_H_
7 #define _RTE_SECURITY_DRIVER_H_
8 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 #include <rte_compat.h>
20 #include "rte_security.h"
21 
26 struct rte_security_session {
27  RTE_MARKER cacheline0;
28  uint64_t opaque_data;
30  uint64_t fast_mdata;
32  rte_iova_t driver_priv_data_iova;
35  alignas(RTE_CACHE_LINE_MIN_SIZE) RTE_MARKER cacheline1;
36  uint8_t driver_priv_data[];
38 };
39 
50  void *device;
52  const struct rte_security_ops *ops;
54  uint32_t flags;
56  uint16_t sess_cnt;
58  uint16_t macsec_sc_cnt;
60  uint16_t macsec_sa_cnt;
62 };
63 
67 #define SECURITY_GET_SESS_PRIV(s) \
68  ((void *)(((struct rte_security_session *)s)->driver_priv_data))
69 #define SECURITY_GET_SESS_PRIV_IOVA(s) \
70  (((struct rte_security_session *)s)->driver_priv_data_iova)
71 
84 typedef int (*security_session_create_t)(void *device,
85  struct rte_security_session_conf *conf,
86  struct rte_security_session *sess);
87 
94 typedef int (*security_session_destroy_t)(void *device,
95  struct rte_security_session *sess);
96 
109 typedef int (*security_session_update_t)(void *device,
110  struct rte_security_session *sess,
111  struct rte_security_session_conf *conf);
112 
125 typedef int (*security_macsec_sc_create_t)(void *device, struct rte_security_macsec_sc *conf);
126 
134 typedef int (*security_macsec_sc_destroy_t)(void *device, uint16_t sc_id,
136 
149 typedef int (*security_macsec_sa_create_t)(void *device, struct rte_security_macsec_sa *conf);
150 
158 typedef int (*security_macsec_sa_destroy_t)(void *device, uint16_t sa_id,
160 
170 typedef unsigned int (*security_session_get_size)(void *device);
171 
183 typedef int (*security_session_stats_get_t)(void *device,
184  struct rte_security_session *sess,
185  struct rte_security_stats *stats);
186 
199 typedef int (*security_macsec_sc_stats_get_t)(void *device, uint16_t sc_id,
201  struct rte_security_macsec_sc_stats *stats);
202 
215 typedef int (*security_macsec_sa_stats_get_t)(void *device, uint16_t sa_id,
217  struct rte_security_macsec_sa_stats *stats);
218 
219 
220 
221 __rte_internal
222 int rte_security_dynfield_register(void);
223 
229 __rte_internal
230 int rte_security_oop_dynfield_register(void);
231 
244 typedef int (*security_set_pkt_metadata_t)(void *device,
245  struct rte_security_session *sess, struct rte_mbuf *mb,
246  void *params);
247 
257 typedef const struct rte_security_capability *(*security_capabilities_get_t)(
258  void *device);
259 
274 typedef int (*security_rx_inject_configure)(void *device, uint16_t port_id, bool enable);
275 
296 typedef uint16_t (*security_inb_pkt_rx_inject)(void *device,
297  struct rte_mbuf **pkts, struct rte_security_session **sess,
298  uint16_t nb_pkts);
299 
332 };
333 
334 #ifdef __cplusplus
335 }
336 #endif
337 
338 #endif /* _RTE_SECURITY_DRIVER_H_ */
security_macsec_sc_destroy_t macsec_sc_destroy
int(* security_session_update_t)(void *device, struct rte_security_session *sess, struct rte_security_session_conf *conf)
int(* security_rx_inject_configure)(void *device, uint16_t port_id, bool enable)
uint64_t rte_iova_t
Definition: rte_common.h:584
enum rte_security_macsec_direction dir
Definition: rte_security.h:354
security_session_stats_get_t session_stats_get
const struct rte_security_capability *(* security_capabilities_get_t)(void *device)
security_macsec_sc_create_t macsec_sc_create
security_macsec_sa_destroy_t macsec_sa_destroy
uint16_t(* security_inb_pkt_rx_inject)(void *device, struct rte_mbuf **pkts, struct rte_security_session **sess, uint16_t nb_pkts)
int(* security_session_stats_get_t)(void *device, struct rte_security_session *sess, struct rte_security_stats *stats)
security_session_update_t session_update
security_capabilities_get_t capabilities_get
security_session_destroy_t session_destroy
int(* security_macsec_sa_create_t)(void *device, struct rte_security_macsec_sa *conf)
__extension__ typedef void * RTE_MARKER[0]
Definition: rte_common.h:592
int(* security_set_pkt_metadata_t)(void *device, struct rte_security_session *sess, struct rte_mbuf *mb, void *params)
int(* security_macsec_sa_stats_get_t)(void *device, uint16_t sa_id, enum rte_security_macsec_direction dir, struct rte_security_macsec_sa_stats *stats)
security_session_create_t session_create
#define RTE_CACHE_LINE_MIN_SIZE
Definition: rte_common.h:550
security_inb_pkt_rx_inject inb_pkt_rx_inject
security_set_pkt_metadata_t set_pkt_metadata
security_macsec_sa_create_t macsec_sa_create
int(* security_macsec_sc_create_t)(void *device, struct rte_security_macsec_sc *conf)
int(* security_macsec_sc_destroy_t)(void *device, uint16_t sc_id, enum rte_security_macsec_direction dir)
rte_security_macsec_direction
Definition: rte_security.h:337
security_rx_inject_configure rx_inject_configure
security_macsec_sc_stats_get_t macsec_sc_stats_get
int(* security_session_create_t)(void *device, struct rte_security_session_conf *conf, struct rte_security_session *sess)
security_session_get_size session_get_size
int(* security_session_destroy_t)(void *device, struct rte_security_session *sess)
int(* security_macsec_sa_destroy_t)(void *device, uint16_t sa_id, enum rte_security_macsec_direction dir)
security_macsec_sa_stats_get_t macsec_sa_stats_get
int(* security_macsec_sc_stats_get_t)(void *device, uint16_t sc_id, enum rte_security_macsec_direction dir, struct rte_security_macsec_sc_stats *stats)
const struct rte_security_ops * ops
enum rte_security_macsec_direction dir
Definition: rte_security.h:377
unsigned int(* security_session_get_size)(void *device)