xref: /dpdk/drivers/crypto/cnxk/cnxk_cryptodev_sec.c (revision 68d25915d2074401dee6faed2a1bb775940e129b)
14c023b6eSSrujana Challa /* SPDX-License-Identifier: BSD-3-Clause
24c023b6eSSrujana Challa  * Copyright(C) 2021 Marvell.
34c023b6eSSrujana Challa  */
44c023b6eSSrujana Challa 
592cb1309SAkhil Goyal #include <cryptodev_pmd.h>
64c023b6eSSrujana Challa #include <rte_malloc.h>
74c023b6eSSrujana Challa #include <rte_security.h>
84c023b6eSSrujana Challa #include <rte_security_driver.h>
94c023b6eSSrujana Challa 
1069407e79SAnoob Joseph #include "cnxk_cryptodev_capabilities.h"
114c023b6eSSrujana Challa #include "cnxk_cryptodev_sec.h"
124c023b6eSSrujana Challa 
134c023b6eSSrujana Challa /* Common security ops */
144c023b6eSSrujana Challa struct rte_security_ops cnxk_sec_ops = {
154c023b6eSSrujana Challa 	.session_create = NULL,
164c023b6eSSrujana Challa 	.session_destroy = NULL,
174c023b6eSSrujana Challa 	.session_get_size = NULL,
18*34d405bfSAnkur Dwivedi 	.session_stats_get = NULL,
194c023b6eSSrujana Challa 	.set_pkt_metadata = NULL,
2069407e79SAnoob Joseph 	.capabilities_get = cnxk_crypto_sec_capabilities_get
214c023b6eSSrujana Challa };
224c023b6eSSrujana Challa 
234c023b6eSSrujana Challa int
cnxk_crypto_sec_ctx_create(struct rte_cryptodev * cdev)244c023b6eSSrujana Challa cnxk_crypto_sec_ctx_create(struct rte_cryptodev *cdev)
254c023b6eSSrujana Challa {
264c023b6eSSrujana Challa 	struct rte_security_ctx *ctx;
274c023b6eSSrujana Challa 
284c023b6eSSrujana Challa 	ctx = rte_malloc("cnxk_cpt_dev_sec_ctx",
294c023b6eSSrujana Challa 			 sizeof(struct rte_security_ctx), 0);
304c023b6eSSrujana Challa 
314c023b6eSSrujana Challa 	if (ctx == NULL)
324c023b6eSSrujana Challa 		return -ENOMEM;
334c023b6eSSrujana Challa 
344c023b6eSSrujana Challa 	/* Populate ctx */
354c023b6eSSrujana Challa 	ctx->device = cdev;
364c023b6eSSrujana Challa 	ctx->ops = &cnxk_sec_ops;
374c023b6eSSrujana Challa 	ctx->sess_cnt = 0;
384c023b6eSSrujana Challa 
394c023b6eSSrujana Challa 	cdev->security_ctx = ctx;
404c023b6eSSrujana Challa 
414c023b6eSSrujana Challa 	return 0;
424c023b6eSSrujana Challa }
434c023b6eSSrujana Challa 
444c023b6eSSrujana Challa void
cnxk_crypto_sec_ctx_destroy(struct rte_cryptodev * cdev)454c023b6eSSrujana Challa cnxk_crypto_sec_ctx_destroy(struct rte_cryptodev *cdev)
464c023b6eSSrujana Challa {
474c023b6eSSrujana Challa 	rte_free(cdev->security_ctx);
484c023b6eSSrujana Challa }
49