net/vhost: support queue update
[dpdk.git] / drivers / crypto / octeontx2 / otx2_cryptodev_sec.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright (C) 2020 Marvell International Ltd.
3  */
4
5 #ifndef __OTX2_CRYPTODEV_SEC_H__
6 #define __OTX2_CRYPTODEV_SEC_H__
7
8 #include <rte_cryptodev.h>
9
10 #include "otx2_ipsec_po.h"
11
12 struct otx2_sec_session_ipsec_lp {
13         RTE_STD_C11
14         union {
15                 /* Inbound SA */
16                 struct otx2_ipsec_po_in_sa in_sa;
17                 /* Outbound SA */
18                 struct otx2_ipsec_po_out_sa out_sa;
19         };
20
21         uint64_t ucmd_w3;
22         union {
23                 uint64_t ucmd_w0;
24                 struct {
25                         uint16_t ucmd_dlen;
26                         uint16_t ucmd_param2;
27                         uint16_t ucmd_param1;
28                         uint16_t ucmd_opcode;
29                 };
30         };
31
32         uint8_t partial_len;
33         uint8_t roundup_len;
34         uint8_t roundup_byte;
35         uint16_t ip_id;
36         union {
37                 uint64_t esn;
38                 struct {
39                         uint32_t seq_lo;
40                         uint32_t seq_hi;
41                 };
42         };
43
44         /** Context length in 8-byte words */
45         size_t ctx_len;
46         /** Auth IV offset in bytes */
47         uint16_t auth_iv_offset;
48         /** IV offset in bytes */
49         uint16_t iv_offset;
50         /** AAD length */
51         uint16_t aad_length;
52         /** MAC len in bytes */
53         uint8_t mac_len;
54         /** IV length in bytes */
55         uint8_t iv_length;
56         /** Auth IV length in bytes */
57         uint8_t auth_iv_length;
58 };
59
60 int otx2_crypto_sec_ctx_create(struct rte_cryptodev *crypto_dev);
61
62 void otx2_crypto_sec_ctx_destroy(struct rte_cryptodev *crypto_dev);
63
64 #endif /* __OTX2_CRYPTODEV_SEC_H__ */