1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright (C) 2020 Marvell International Ltd.
5 #include <rte_cryptodev.h>
6 #include <rte_malloc.h>
7 #include <rte_security.h>
8 #include <rte_security_driver.h>
10 #include "otx2_cryptodev.h"
11 #include "otx2_cryptodev_capabilities.h"
12 #include "otx2_cryptodev_sec.h"
13 #include "otx2_security.h"
16 otx2_crypto_sec_session_get_size(void *device __rte_unused)
18 return sizeof(struct otx2_sec_session);
22 otx2_crypto_sec_set_pkt_mdata(void *device __rte_unused,
23 struct rte_security_session *session,
24 struct rte_mbuf *m, void *params __rte_unused)
26 /* Set security session as the pkt metadata */
27 m->udata64 = (uint64_t)session;
33 otx2_crypto_sec_get_userdata(void *device __rte_unused, uint64_t md,
36 /* Retrieve userdata */
37 *userdata = (void *)md;
42 static struct rte_security_ops otx2_crypto_sec_ops = {
43 .session_create = NULL,
44 .session_destroy = NULL,
45 .session_get_size = otx2_crypto_sec_session_get_size,
46 .set_pkt_metadata = otx2_crypto_sec_set_pkt_mdata,
47 .get_userdata = otx2_crypto_sec_get_userdata,
48 .capabilities_get = otx2_crypto_sec_capabilities_get
52 otx2_crypto_sec_ctx_create(struct rte_cryptodev *cdev)
54 struct rte_security_ctx *ctx;
56 ctx = rte_malloc("otx2_cpt_dev_sec_ctx",
57 sizeof(struct rte_security_ctx), 0);
64 ctx->ops = &otx2_crypto_sec_ops;
67 cdev->security_ctx = ctx;
73 otx2_crypto_sec_ctx_destroy(struct rte_cryptodev *cdev)
75 rte_free(cdev->security_ctx);