#define CPT_BLOCK_TYPE1 0
#define CPT_BLOCK_TYPE2 1
-#define CPT_BYTE_16 16
-#define CPT_BYTE_24 24
-#define CPT_BYTE_32 32
#define CPT_MAX_SG_IN_OUT_CNT 32
#define CPT_MAX_SG_CNT (CPT_MAX_SG_IN_OUT_CNT/2)
SHA2_SHA384 = 5,
SHA2_SHA512 = 6,
GMAC_TYPE = 7,
- XCBC_TYPE = 8,
+ POLY1305 = 8,
SHA3_SHA224 = 10,
SHA3_SHA256 = 11,
SHA3_SHA384 = 12,
AES_CTR = 0x6,
AES_GCM = 0x7,
AES_XTS = 0x8,
+ CHACHA20 = 0x9,
/* These are only for software use */
ZUC_EEA3 = 0x90,
uint16_t aes_gcm:1;
/** Flag for AES CTR */
uint16_t aes_ctr:1;
+ /** Flag for CHACHA POLY */
+ uint16_t chacha_poly:1;
/** Flag for NULL cipher/auth */
uint16_t is_null:1;
/** Flag for GMAC */
uint16_t is_gmac:1;
- /** Engine group */
- uint16_t egrp:3;
+ /** Unused field */
+ uint16_t rsvd1:3;
/** AAD length */
uint16_t aad_length;
/** MAC len in bytes */
uint8_t iv_length;
/** Auth IV length in bytes */
uint8_t auth_iv_length;
- /** Reserved field */
- uint8_t rsvd1;
+ /** Unused field */
+ uint8_t rsvd2;
/** IV offset in bytes */
uint16_t iv_offset;
/** Auth IV offset in bytes */
uint16_t auth_iv_offset;
/** Salt */
uint32_t salt;
+ /** CPT inst word 7 */
+ uint64_t cpt_inst_w7;
/** Context DMA address */
phys_addr_t ctx_dma_addr;
};
mc_fc_context_t fctx;
mc_zuc_snow3g_ctx_t zs_ctx;
mc_kasumi_ctx_t k_ctx;
- };
- uint8_t auth_key[64];
+ } mc_ctx;
+ uint8_t auth_key[1024];
};
/* Prime and order fields of built-in elliptic curves */
struct rte_crypto_modex_xform mod_ctx;
struct cpt_asym_ec_ctx ec_ctx;
};
+ uint64_t cpt_inst_w7;
};
/* Buffer pointer */
buf_ptr_t bufs[0];
} iov_ptr_t;
-typedef union opcode_info {
- uint16_t flags;
- struct {
- uint8_t major;
- uint8_t minor;
- } s;
-} opcode_info_t;
-
typedef struct fc_params {
/* 0th cache line */
union {
#define SESS_PRIV(__sess) \
(void *)((uint8_t *)__sess + sizeof(struct cpt_sess_misc))
+#define GET_SESS_FC_TYPE(__sess) \
+ (((struct cpt_ctx *)(SESS_PRIV(__sess)))->fc_type)
+
/*
* Get the session size
*