New upstream version 18.11-rc1
[deb_dpdk.git] / lib / librte_port / rte_port_sym_crypto.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2018 Intel Corporation
3  */
4
5 #ifndef __INCLUDE_RTE_PORT_SYM_CRYPTO_H__
6 #define __INCLUDE_RTE_PORT_SYM_CRYPTO_H__
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 /**
13  * @file
14  * RTE Port sym crypto Interface
15  *
16  * crypto_reader: input port built on top of pre-initialized crypto interface
17  * crypto_writer: output port built on top of pre-initialized crypto interface
18  *
19  **/
20
21 #include <stdint.h>
22
23 #include <rte_cryptodev.h>
24
25 #include "rte_port.h"
26
27 /** Function prototype for reader post action. */
28 typedef void (*rte_port_sym_crypto_reader_callback_fn)(struct rte_mbuf **pkts,
29                 uint16_t n_pkts, void *arg);
30
31 /** Crypto_reader port parameters */
32 struct rte_port_sym_crypto_reader_params {
33         /** Target cryptodev ID. */
34         uint8_t cryptodev_id;
35
36         /** Target cryptodev Queue Pair ID. */
37         uint16_t queue_id;
38
39         /** Crypto reader post callback function. */
40         rte_port_sym_crypto_reader_callback_fn f_callback;
41
42         /** Crypto reader post callback function arguments. */
43         void *arg_callback;
44 };
45
46 /** Crypto_reader port operations. */
47 extern struct rte_port_in_ops rte_port_sym_crypto_reader_ops;
48
49
50 /** Crypto_writer port parameters. */
51 struct rte_port_sym_crypto_writer_params {
52         /** Target cryptodev ID. */
53         uint8_t cryptodev_id;
54
55         /** Target cryptodev Queue Pair ID. */
56         uint16_t queue_id;
57
58         /** offset to rte_crypto_op in the mbufs. */
59         uint16_t crypto_op_offset;
60
61         /** Burst size to crypto interface. */
62         uint32_t tx_burst_sz;
63 };
64
65 /** Crypto_writer port operations. */
66 extern struct rte_port_out_ops rte_port_sym_crypto_writer_ops;
67
68 /** Crypto_writer_nodrop port parameters. */
69 struct rte_port_sym_crypto_writer_nodrop_params {
70         /** Target cryptodev ID. */
71         uint8_t cryptodev_id;
72
73         /** Target cryptodev queue pair id. */
74         uint16_t queue_id;
75
76         /** Offset to rte_crypto_op in the mbufs. */
77         uint16_t crypto_op_offset;
78
79         /** Burst size to crypto interface. */
80         uint32_t tx_burst_sz;
81
82         /** Maximum number of retries, 0 for no limit. */
83         uint32_t n_retries;
84 };
85
86 /** Crypto_writer_nodrop port operations. */
87 extern struct rte_port_out_ops rte_port_sym_crypto_writer_nodrop_ops;
88
89 #ifdef __cplusplus
90 }
91 #endif
92
93 #endif