numam-dpdk/drivers/crypto/octeontx2/otx2_cryptodev_sec.h
Archana Muniganti 6045c06a87 common/cpt: prepopulate word7 in session
CPT inst word7 is an immutable data for a session.
This data can be populated in a session.

Signed-off-by: Archana Muniganti <marchana@marvell.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
2020-11-12 21:26:42 +01:00

67 lines
1.3 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright (C) 2020 Marvell International Ltd.
*/
#ifndef __OTX2_CRYPTODEV_SEC_H__
#define __OTX2_CRYPTODEV_SEC_H__
#include <rte_cryptodev.h>
#include "otx2_ipsec_po.h"
struct otx2_sec_session_ipsec_lp {
RTE_STD_C11
union {
/* Inbound SA */
struct otx2_ipsec_po_in_sa in_sa;
/* Outbound SA */
struct otx2_ipsec_po_out_sa out_sa;
};
uint64_t cpt_inst_w7;
union {
uint64_t ucmd_w0;
struct {
uint16_t ucmd_dlen;
uint16_t ucmd_param2;
uint16_t ucmd_param1;
uint16_t ucmd_opcode;
};
};
uint8_t partial_len;
uint8_t roundup_len;
uint8_t roundup_byte;
uint16_t ip_id;
union {
uint64_t esn;
struct {
uint32_t seq_lo;
uint32_t seq_hi;
};
};
/** Context length in 8-byte words */
size_t ctx_len;
/** Auth IV offset in bytes */
uint16_t auth_iv_offset;
/** IV offset in bytes */
uint16_t iv_offset;
/** AAD length */
uint16_t aad_length;
/** MAC len in bytes */
uint8_t mac_len;
/** IV length in bytes */
uint8_t iv_length;
/** Auth IV length in bytes */
uint8_t auth_iv_length;
/** IPsec tunnel type */
enum rte_security_ipsec_tunnel_type tunnel_type;
};
int otx2_crypto_sec_ctx_create(struct rte_cryptodev *crypto_dev);
void otx2_crypto_sec_ctx_destroy(struct rte_cryptodev *crypto_dev);
#endif /* __OTX2_CRYPTODEV_SEC_H__ */