1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(C) 2021 Marvell. 3 */ 4 5 #include <cryptodev_pmd.h> 6 #include <rte_malloc.h> 7 #include <rte_security.h> 8 #include <rte_security_driver.h> 9 10 #include "cnxk_cryptodev_capabilities.h" 11 #include "cnxk_cryptodev_sec.h" 12 13 /* Common security ops */ 14 struct rte_security_ops cnxk_sec_ops = { 15 .session_create = NULL, 16 .session_destroy = NULL, 17 .session_get_size = NULL, 18 .session_stats_get = NULL, 19 .set_pkt_metadata = NULL, 20 .capabilities_get = cnxk_crypto_sec_capabilities_get 21 }; 22 23 int cnxk_crypto_sec_ctx_create(struct rte_cryptodev * cdev)24cnxk_crypto_sec_ctx_create(struct rte_cryptodev *cdev) 25 { 26 struct rte_security_ctx *ctx; 27 28 ctx = rte_malloc("cnxk_cpt_dev_sec_ctx", 29 sizeof(struct rte_security_ctx), 0); 30 31 if (ctx == NULL) 32 return -ENOMEM; 33 34 /* Populate ctx */ 35 ctx->device = cdev; 36 ctx->ops = &cnxk_sec_ops; 37 ctx->sess_cnt = 0; 38 39 cdev->security_ctx = ctx; 40 41 return 0; 42 } 43 44 void cnxk_crypto_sec_ctx_destroy(struct rte_cryptodev * cdev)45cnxk_crypto_sec_ctx_destroy(struct rte_cryptodev *cdev) 46 { 47 rte_free(cdev->security_ctx); 48 } 49