From: Akhil Goyal Date: Tue, 10 Aug 2021 19:50:20 +0000 (+0530) Subject: cryptodev: expose driver interface as internal X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=af668035f7f492424b2e199f155690815944a8ca;p=dpdk.git cryptodev: expose driver interface as internal The rte_cryptodev_pmd.* files are for drivers only and should be private to DPDK, and not installed for app use. Signed-off-by: Akhil Goyal Acked-by: Matan Azrad Acked-by: Fan Zhang Acked-by: Hemant Agrawal --- diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 76a4abfd6b..59445a6f42 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -223,9 +223,6 @@ Deprecation Notices session and the private data of session. An opaque pointer can be exposed directly to application which can be attached to the ``rte_crypto_op``. -* cryptodev: The interface between library and drivers will be marked - as internal in DPDK 21.11. - * security: Hide structure ``rte_security_session`` and expose an opaque pointer for the private data to the application which can be attached to the packet while enqueuing. diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst index e7ad50ba09..8785b25ff6 100644 --- a/doc/guides/rel_notes/release_21_11.rst +++ b/doc/guides/rel_notes/release_21_11.rst @@ -106,6 +106,10 @@ API Changes rte_cryptodev_is_valid_dev as it can be used by the application as well as PMD to check whether the device is valid or not. +* cryptodev: The rte_cryptodev_pmd.* files are renamed as cryptodev_pmd.* + as it is for drivers only and should be private to DPDK, and not + installed for app use. + ABI Changes ----------- diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c index 886e2a5aaa..330aad8157 100644 --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c index 18dbc4c18c..edb7275e76 100644 --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd_ops.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include "aesni_gcm_pmd_private.h" diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c index a01c826a3c..60963a8208 100644 --- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c +++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c index fc7fdfec8e..48a8f91868 100644 --- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c +++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include "aesni_mb_pmd_private.h" diff --git a/drivers/crypto/armv8/rte_armv8_pmd.c b/drivers/crypto/armv8/rte_armv8_pmd.c index c642ac350f..36a1a9bb4f 100644 --- a/drivers/crypto/armv8/rte_armv8_pmd.c +++ b/drivers/crypto/armv8/rte_armv8_pmd.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/armv8/rte_armv8_pmd_ops.c b/drivers/crypto/armv8/rte_armv8_pmd_ops.c index 01ccfb4b23..1b2749fe62 100644 --- a/drivers/crypto/armv8/rte_armv8_pmd_ops.c +++ b/drivers/crypto/armv8/rte_armv8_pmd_ops.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include "armv8_pmd_private.h" diff --git a/drivers/crypto/bcmfs/bcmfs_sym_pmd.c b/drivers/crypto/bcmfs/bcmfs_sym_pmd.c index aa7fad6d70..d1dd22823e 100644 --- a/drivers/crypto/bcmfs/bcmfs_sym_pmd.c +++ b/drivers/crypto/bcmfs/bcmfs_sym_pmd.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include "bcmfs_device.h" #include "bcmfs_logs.h" diff --git a/drivers/crypto/bcmfs/bcmfs_sym_session.h b/drivers/crypto/bcmfs/bcmfs_sym_session.h index 8240c6fc25..d40595b4bd 100644 --- a/drivers/crypto/bcmfs/bcmfs_sym_session.h +++ b/drivers/crypto/bcmfs/bcmfs_sym_session.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include "bcmfs_sym_defs.h" #include "bcmfs_sym_req.h" diff --git a/drivers/crypto/caam_jr/caam_jr.c b/drivers/crypto/caam_jr/caam_jr.c index 3fb3fe0f8a..258750afe7 100644 --- a/drivers/crypto/caam_jr/caam_jr.c +++ b/drivers/crypto/caam_jr/caam_jr.c @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/ccp/ccp_crypto.c b/drivers/crypto/ccp/ccp_crypto.c index f37d35f18f..70daed791e 100644 --- a/drivers/crypto/ccp/ccp_crypto.c +++ b/drivers/crypto/ccp/ccp_crypto.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include "ccp_dev.h" #include "ccp_crypto.h" diff --git a/drivers/crypto/ccp/ccp_pmd_ops.c b/drivers/crypto/ccp/ccp_pmd_ops.c index 98f964f361..0d615d311c 100644 --- a/drivers/crypto/ccp/ccp_pmd_ops.c +++ b/drivers/crypto/ccp/ccp_pmd_ops.c @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include "ccp_pmd_private.h" diff --git a/drivers/crypto/ccp/rte_ccp_pmd.c b/drivers/crypto/ccp/rte_ccp_pmd.c index ab9416942e..a54d81de46 100644 --- a/drivers/crypto/ccp/rte_ccp_pmd.c +++ b/drivers/crypto/ccp/rte_ccp_pmd.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/cnxk/cn10k_cryptodev.c b/drivers/crypto/cnxk/cn10k_cryptodev.c index db7b5aa7c6..012eb0c051 100644 --- a/drivers/crypto/cnxk/cn10k_cryptodev.c +++ b/drivers/crypto/cnxk/cn10k_cryptodev.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/crypto/cnxk/cn10k_cryptodev_ops.c b/drivers/crypto/cnxk/cn10k_cryptodev_ops.c index cccca77f60..3a1a4a2e29 100644 --- a/drivers/crypto/cnxk/cn10k_cryptodev_ops.c +++ b/drivers/crypto/cnxk/cn10k_cryptodev_ops.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include diff --git a/drivers/crypto/cnxk/cn10k_cryptodev_ops.h b/drivers/crypto/cnxk/cn10k_cryptodev_ops.h index b03d2eee14..d7e9f87396 100644 --- a/drivers/crypto/cnxk/cn10k_cryptodev_ops.h +++ b/drivers/crypto/cnxk/cn10k_cryptodev_ops.h @@ -6,7 +6,7 @@ #define _CN10K_CRYPTODEV_OPS_H_ #include -#include +#include extern struct rte_cryptodev_ops cn10k_cpt_ops; diff --git a/drivers/crypto/cnxk/cn9k_cryptodev.c b/drivers/crypto/cnxk/cn9k_cryptodev.c index e60b352fac..6b8cb01a12 100644 --- a/drivers/crypto/cnxk/cn9k_cryptodev.c +++ b/drivers/crypto/cnxk/cn9k_cryptodev.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/crypto/cnxk/cn9k_cryptodev_ops.c b/drivers/crypto/cnxk/cn9k_cryptodev_ops.c index 40109acc3f..75277936b0 100644 --- a/drivers/crypto/cnxk/cn9k_cryptodev_ops.c +++ b/drivers/crypto/cnxk/cn9k_cryptodev_ops.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include #include diff --git a/drivers/crypto/cnxk/cn9k_cryptodev_ops.h b/drivers/crypto/cnxk/cn9k_cryptodev_ops.h index 1255de33ae..309f507346 100644 --- a/drivers/crypto/cnxk/cn9k_cryptodev_ops.h +++ b/drivers/crypto/cnxk/cn9k_cryptodev_ops.h @@ -5,7 +5,7 @@ #ifndef _CN9K_CRYPTODEV_OPS_H_ #define _CN9K_CRYPTODEV_OPS_H_ -#include +#include extern struct rte_cryptodev_ops cn9k_cpt_ops; diff --git a/drivers/crypto/cnxk/cnxk_cryptodev_ops.c b/drivers/crypto/cnxk/cnxk_cryptodev_ops.c index 957c78063f..41d8fe49e1 100644 --- a/drivers/crypto/cnxk/cnxk_cryptodev_ops.c +++ b/drivers/crypto/cnxk/cnxk_cryptodev_ops.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include "roc_cpt.h" diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index 1ccead3641..bf69c61916 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c index 19d4684e24..3d53746ef1 100644 --- a/drivers/crypto/dpaa_sec/dpaa_sec.c +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c @@ -12,7 +12,7 @@ #include #include -#include +#include #include #include #ifdef RTE_LIB_SECURITY diff --git a/drivers/crypto/kasumi/rte_kasumi_pmd.c b/drivers/crypto/kasumi/rte_kasumi_pmd.c index 48b7db9e9b..d6f927417a 100644 --- a/drivers/crypto/kasumi/rte_kasumi_pmd.c +++ b/drivers/crypto/kasumi/rte_kasumi_pmd.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/kasumi/rte_kasumi_pmd_ops.c b/drivers/crypto/kasumi/rte_kasumi_pmd_ops.c index 43376c1aa0..f075054807 100644 --- a/drivers/crypto/kasumi/rte_kasumi_pmd_ops.c +++ b/drivers/crypto/kasumi/rte_kasumi_pmd_ops.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include "kasumi_pmd_private.h" diff --git a/drivers/crypto/mlx5/mlx5_crypto.h b/drivers/crypto/mlx5/mlx5_crypto.h index 722acb8d19..d589e0ac3d 100644 --- a/drivers/crypto/mlx5/mlx5_crypto.h +++ b/drivers/crypto/mlx5/mlx5_crypto.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include diff --git a/drivers/crypto/mvsam/rte_mrvl_pmd.c b/drivers/crypto/mvsam/rte_mrvl_pmd.c index ed85bb6547..a72642a772 100644 --- a/drivers/crypto/mvsam/rte_mrvl_pmd.c +++ b/drivers/crypto/mvsam/rte_mrvl_pmd.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/mvsam/rte_mrvl_pmd_ops.c b/drivers/crypto/mvsam/rte_mrvl_pmd_ops.c index fa36461276..3064b1f136 100644 --- a/drivers/crypto/mvsam/rte_mrvl_pmd_ops.c +++ b/drivers/crypto/mvsam/rte_mrvl_pmd_ops.c @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include "mrvl_pmd_private.h" diff --git a/drivers/crypto/nitrox/nitrox_sym.c b/drivers/crypto/nitrox/nitrox_sym.c index 2768bdd2e1..f8b7edcd69 100644 --- a/drivers/crypto/nitrox/nitrox_sym.c +++ b/drivers/crypto/nitrox/nitrox_sym.c @@ -4,7 +4,7 @@ #include -#include +#include #include #include "nitrox_sym.h" diff --git a/drivers/crypto/null/null_crypto_pmd.c b/drivers/crypto/null/null_crypto_pmd.c index 179e5ff36d..f9935d52cc 100644 --- a/drivers/crypto/null/null_crypto_pmd.c +++ b/drivers/crypto/null/null_crypto_pmd.c @@ -3,7 +3,7 @@ */ #include -#include +#include #include #include diff --git a/drivers/crypto/null/null_crypto_pmd_ops.c b/drivers/crypto/null/null_crypto_pmd_ops.c index d67892a1bb..a8b5a06e7f 100644 --- a/drivers/crypto/null/null_crypto_pmd_ops.c +++ b/drivers/crypto/null/null_crypto_pmd_ops.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include "null_crypto_pmd_private.h" diff --git a/drivers/crypto/octeontx/otx_cryptodev.c b/drivers/crypto/octeontx/otx_cryptodev.c index 3822c0d779..c294f86d79 100644 --- a/drivers/crypto/octeontx/otx_cryptodev.c +++ b/drivers/crypto/octeontx/otx_cryptodev.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.c b/drivers/crypto/octeontx/otx_cryptodev_ops.c index eac6796cfb..9b5bde53f8 100644 --- a/drivers/crypto/octeontx/otx_cryptodev_ops.c +++ b/drivers/crypto/octeontx/otx_cryptodev_ops.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/octeontx2/otx2_cryptodev.c b/drivers/crypto/octeontx2/otx2_cryptodev.c index 75fb4f9a3b..85b1f00263 100644 --- a/drivers/crypto/octeontx2/otx2_cryptodev.c +++ b/drivers/crypto/octeontx2/otx2_cryptodev.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/octeontx2/otx2_cryptodev_ops.c b/drivers/crypto/octeontx2/otx2_cryptodev_ops.c index 42100154cd..09ddbb5f34 100644 --- a/drivers/crypto/octeontx2/otx2_cryptodev_ops.c +++ b/drivers/crypto/octeontx2/otx2_cryptodev_ops.c @@ -4,7 +4,7 @@ #include -#include +#include #include #include #include diff --git a/drivers/crypto/octeontx2/otx2_cryptodev_ops.h b/drivers/crypto/octeontx2/otx2_cryptodev_ops.h index 1970187f88..8d135909b3 100644 --- a/drivers/crypto/octeontx2/otx2_cryptodev_ops.h +++ b/drivers/crypto/octeontx2/otx2_cryptodev_ops.h @@ -5,7 +5,7 @@ #ifndef _OTX2_CRYPTODEV_OPS_H_ #define _OTX2_CRYPTODEV_OPS_H_ -#include +#include #define OTX2_CPT_MIN_HEADROOM_REQ 24 #define OTX2_CPT_MIN_TAILROOM_REQ 8 diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c index 37b969b916..13c6ea8724 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd.c +++ b/drivers/crypto/openssl/rte_openssl_pmd.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/openssl/rte_openssl_pmd_ops.c b/drivers/crypto/openssl/rte_openssl_pmd_ops.c index ed75877581..52715f86f8 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd_ops.c +++ b/drivers/crypto/openssl/rte_openssl_pmd_ops.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include "openssl_pmd_private.h" #include "compat.h" diff --git a/drivers/crypto/qat/qat_asym.h b/drivers/crypto/qat/qat_asym.h index 2838aee76f..308b6b2e0b 100644 --- a/drivers/crypto/qat/qat_asym.h +++ b/drivers/crypto/qat/qat_asym.h @@ -5,7 +5,7 @@ #ifndef _QAT_ASYM_H_ #define _QAT_ASYM_H_ -#include +#include #include #include "icp_qat_fw_pke.h" #include "qat_common.h" diff --git a/drivers/crypto/qat/qat_asym_pmd.c b/drivers/crypto/qat/qat_asym_pmd.c index 0c25cce09e..e91bb0d317 100644 --- a/drivers/crypto/qat/qat_asym_pmd.c +++ b/drivers/crypto/qat/qat_asym_pmd.c @@ -2,7 +2,7 @@ * Copyright(c) 2019 Intel Corporation */ -#include +#include #include "qat_logs.h" diff --git a/drivers/crypto/qat/qat_sym.h b/drivers/crypto/qat/qat_sym.h index 20b1b53d36..e3ec7f0de4 100644 --- a/drivers/crypto/qat/qat_sym.h +++ b/drivers/crypto/qat/qat_sym.h @@ -5,7 +5,7 @@ #ifndef _QAT_SYM_H_ #define _QAT_SYM_H_ -#include +#include #ifdef RTE_LIB_SECURITY #include #endif diff --git a/drivers/crypto/qat/qat_sym_hw_dp.c b/drivers/crypto/qat/qat_sym_hw_dp.c index ac9ac05363..36d11e0dc9 100644 --- a/drivers/crypto/qat/qat_sym_hw_dp.c +++ b/drivers/crypto/qat/qat_sym_hw_dp.c @@ -2,7 +2,7 @@ * Copyright(c) 2020 Intel Corporation */ -#include +#include #include "adf_transport_access_macros.h" #include "icp_qat_fw.h" diff --git a/drivers/crypto/qat/qat_sym_pmd.c b/drivers/crypto/qat/qat_sym_pmd.c index 6868e5f001..efda921c05 100644 --- a/drivers/crypto/qat/qat_sym_pmd.c +++ b/drivers/crypto/qat/qat_sym_pmd.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #ifdef RTE_LIB_SECURITY #include #endif diff --git a/drivers/crypto/qat/qat_sym_session.h b/drivers/crypto/qat/qat_sym_session.h index 33b236e49b..6ebc176729 100644 --- a/drivers/crypto/qat/qat_sym_session.h +++ b/drivers/crypto/qat/qat_sym_session.h @@ -5,7 +5,7 @@ #define _QAT_SYM_SESSION_H_ #include -#include +#include #ifdef RTE_LIB_SECURITY #include #endif diff --git a/drivers/crypto/scheduler/rte_cryptodev_scheduler.c b/drivers/crypto/scheduler/rte_cryptodev_scheduler.c index 1e0b4df0ca..1e0c4fe464 100644 --- a/drivers/crypto/scheduler/rte_cryptodev_scheduler.c +++ b/drivers/crypto/scheduler/rte_cryptodev_scheduler.c @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include "rte_cryptodev_scheduler.h" diff --git a/drivers/crypto/scheduler/scheduler_pmd.c b/drivers/crypto/scheduler/scheduler_pmd.c index 632197833c..560c26af50 100644 --- a/drivers/crypto/scheduler/scheduler_pmd.c +++ b/drivers/crypto/scheduler/scheduler_pmd.c @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/scheduler/scheduler_pmd_ops.c b/drivers/crypto/scheduler/scheduler_pmd_ops.c index cb125e8027..465b88ade8 100644 --- a/drivers/crypto/scheduler/scheduler_pmd_ops.c +++ b/drivers/crypto/scheduler/scheduler_pmd_ops.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include "scheduler_pmd_private.h" diff --git a/drivers/crypto/snow3g/rte_snow3g_pmd.c b/drivers/crypto/snow3g/rte_snow3g_pmd.c index 9aab357846..8284ac0b66 100644 --- a/drivers/crypto/snow3g/rte_snow3g_pmd.c +++ b/drivers/crypto/snow3g/rte_snow3g_pmd.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/snow3g/rte_snow3g_pmd_ops.c b/drivers/crypto/snow3g/rte_snow3g_pmd_ops.c index 906a0fe60b..3f46014b7d 100644 --- a/drivers/crypto/snow3g/rte_snow3g_pmd_ops.c +++ b/drivers/crypto/snow3g/rte_snow3g_pmd_ops.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include "snow3g_pmd_private.h" diff --git a/drivers/crypto/virtio/virtio_cryptodev.c b/drivers/crypto/virtio/virtio_cryptodev.c index 4bae74a487..8faa39df4a 100644 --- a/drivers/crypto/virtio/virtio_cryptodev.c +++ b/drivers/crypto/virtio/virtio_cryptodev.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include "virtio_cryptodev.h" diff --git a/drivers/crypto/virtio/virtio_rxtx.c b/drivers/crypto/virtio/virtio_rxtx.c index e1cb4ad104..a65524a306 100644 --- a/drivers/crypto/virtio/virtio_rxtx.c +++ b/drivers/crypto/virtio/virtio_rxtx.c @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2018 HUAWEI TECHNOLOGIES CO., LTD. */ -#include +#include #include "virtqueue.h" #include "virtio_cryptodev.h" diff --git a/drivers/crypto/zuc/rte_zuc_pmd.c b/drivers/crypto/zuc/rte_zuc_pmd.c index 42b669f188..d4b343a7af 100644 --- a/drivers/crypto/zuc/rte_zuc_pmd.c +++ b/drivers/crypto/zuc/rte_zuc_pmd.c @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/crypto/zuc/rte_zuc_pmd_ops.c b/drivers/crypto/zuc/rte_zuc_pmd_ops.c index dc9dc25ef8..38642d45ab 100644 --- a/drivers/crypto/zuc/rte_zuc_pmd_ops.c +++ b/drivers/crypto/zuc/rte_zuc_pmd_ops.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include "zuc_pmd_private.h" diff --git a/drivers/event/octeontx2/otx2_evdev_crypto_adptr_rx.h b/drivers/event/octeontx2/otx2_evdev_crypto_adptr_rx.h index a543225376..b33cb7e139 100644 --- a/drivers/event/octeontx2/otx2_evdev_crypto_adptr_rx.h +++ b/drivers/event/octeontx2/otx2_evdev_crypto_adptr_rx.h @@ -6,7 +6,7 @@ #define _OTX2_EVDEV_CRYPTO_ADPTR_RX_H_ #include -#include +#include #include #include "cpt_pmd_logs.h" diff --git a/drivers/event/octeontx2/otx2_evdev_crypto_adptr_tx.h b/drivers/event/octeontx2/otx2_evdev_crypto_adptr_tx.h index ecf7eb9f56..1fc56f903b 100644 --- a/drivers/event/octeontx2/otx2_evdev_crypto_adptr_tx.h +++ b/drivers/event/octeontx2/otx2_evdev_crypto_adptr_tx.h @@ -6,7 +6,7 @@ #define _OTX2_EVDEV_CRYPTO_ADPTR_TX_H_ #include -#include +#include #include #include diff --git a/drivers/net/softnic/rte_eth_softnic_cryptodev.c b/drivers/net/softnic/rte_eth_softnic_cryptodev.c index 8e278801c5..9a7d006f1a 100644 --- a/drivers/net/softnic/rte_eth_softnic_cryptodev.c +++ b/drivers/net/softnic/rte_eth_softnic_cryptodev.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include "rte_eth_softnic_internals.h" diff --git a/lib/cryptodev/cryptodev_pmd.c b/lib/cryptodev/cryptodev_pmd.c new file mode 100644 index 0000000000..71e34140cd --- /dev/null +++ b/lib/cryptodev/cryptodev_pmd.c @@ -0,0 +1,160 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2017 Intel Corporation + */ + +#include +#include + +#include "cryptodev_pmd.h" + +/** + * Parse name from argument + */ +static int +rte_cryptodev_pmd_parse_name_arg(const char *key __rte_unused, + const char *value, void *extra_args) +{ + struct rte_cryptodev_pmd_init_params *params = extra_args; + int n; + + n = strlcpy(params->name, value, RTE_CRYPTODEV_NAME_MAX_LEN); + if (n >= RTE_CRYPTODEV_NAME_MAX_LEN) + return -EINVAL; + + return 0; +} + +/** + * Parse unsigned integer from argument + */ +static int +rte_cryptodev_pmd_parse_uint_arg(const char *key __rte_unused, + const char *value, void *extra_args) +{ + int i; + char *end; + errno = 0; + + i = strtol(value, &end, 10); + if (*end != 0 || errno != 0 || i < 0) + return -EINVAL; + + *((uint32_t *)extra_args) = i; + return 0; +} + +int +rte_cryptodev_pmd_parse_input_args( + struct rte_cryptodev_pmd_init_params *params, + const char *args) +{ + struct rte_kvargs *kvlist = NULL; + int ret = 0; + + if (params == NULL) + return -EINVAL; + + if (args) { + kvlist = rte_kvargs_parse(args, cryptodev_pmd_valid_params); + if (kvlist == NULL) + return -EINVAL; + + ret = rte_kvargs_process(kvlist, + RTE_CRYPTODEV_PMD_MAX_NB_QP_ARG, + &rte_cryptodev_pmd_parse_uint_arg, + ¶ms->max_nb_queue_pairs); + if (ret < 0) + goto free_kvlist; + + ret = rte_kvargs_process(kvlist, + RTE_CRYPTODEV_PMD_SOCKET_ID_ARG, + &rte_cryptodev_pmd_parse_uint_arg, + ¶ms->socket_id); + if (ret < 0) + goto free_kvlist; + + ret = rte_kvargs_process(kvlist, + RTE_CRYPTODEV_PMD_NAME_ARG, + &rte_cryptodev_pmd_parse_name_arg, + params); + if (ret < 0) + goto free_kvlist; + } + +free_kvlist: + rte_kvargs_free(kvlist); + return ret; +} + +struct rte_cryptodev * +rte_cryptodev_pmd_create(const char *name, + struct rte_device *device, + struct rte_cryptodev_pmd_init_params *params) +{ + struct rte_cryptodev *cryptodev; + + if (params->name[0] != '\0') { + CDEV_LOG_INFO("User specified device name = %s\n", params->name); + name = params->name; + } + + CDEV_LOG_INFO("Creating cryptodev %s\n", name); + + CDEV_LOG_INFO("Initialisation parameters - name: %s," + "socket id: %d, max queue pairs: %u", + name, params->socket_id, params->max_nb_queue_pairs); + + /* allocate device structure */ + cryptodev = rte_cryptodev_pmd_allocate(name, params->socket_id); + if (cryptodev == NULL) { + CDEV_LOG_ERR("Failed to allocate crypto device for %s", name); + return NULL; + } + + /* allocate private device structure */ + if (rte_eal_process_type() == RTE_PROC_PRIMARY) { + cryptodev->data->dev_private = + rte_zmalloc_socket("cryptodev device private", + params->private_data_size, + RTE_CACHE_LINE_SIZE, + params->socket_id); + + if (cryptodev->data->dev_private == NULL) { + CDEV_LOG_ERR("Cannot allocate memory for cryptodev %s" + " private data", name); + + rte_cryptodev_pmd_release_device(cryptodev); + return NULL; + } + } + + cryptodev->device = device; + + /* initialise user call-back tail queue */ + TAILQ_INIT(&(cryptodev->link_intr_cbs)); + + return cryptodev; +} + +int +rte_cryptodev_pmd_destroy(struct rte_cryptodev *cryptodev) +{ + int retval; + void *dev_priv = cryptodev->data->dev_private; + + CDEV_LOG_INFO("Closing crypto device %s", cryptodev->device->name); + + /* free crypto device */ + retval = rte_cryptodev_pmd_release_device(cryptodev); + if (retval) + return retval; + + if (rte_eal_process_type() == RTE_PROC_PRIMARY) + rte_free(dev_priv); + + + cryptodev->device = NULL; + cryptodev->data = NULL; + + return 0; +} diff --git a/lib/cryptodev/cryptodev_pmd.h b/lib/cryptodev/cryptodev_pmd.h new file mode 100644 index 0000000000..ec7bb82be8 --- /dev/null +++ b/lib/cryptodev/cryptodev_pmd.h @@ -0,0 +1,568 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2015-2020 Intel Corporation. + */ + +#ifndef _CRYPTODEV_PMD_H_ +#define _CRYPTODEV_PMD_H_ + +/** @file + * RTE Crypto PMD APIs + * + * @note + * These API are from crypto PMD only and user applications should not call + * them directly. + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "rte_crypto.h" +#include "rte_cryptodev.h" + + +#define RTE_CRYPTODEV_PMD_DEFAULT_MAX_NB_QUEUE_PAIRS 8 + +#define RTE_CRYPTODEV_PMD_NAME_ARG ("name") +#define RTE_CRYPTODEV_PMD_MAX_NB_QP_ARG ("max_nb_queue_pairs") +#define RTE_CRYPTODEV_PMD_SOCKET_ID_ARG ("socket_id") + + +static const char * const cryptodev_pmd_valid_params[] = { + RTE_CRYPTODEV_PMD_NAME_ARG, + RTE_CRYPTODEV_PMD_MAX_NB_QP_ARG, + RTE_CRYPTODEV_PMD_SOCKET_ID_ARG, + NULL +}; + +/** + * @internal + * Initialisation parameters for crypto devices + */ +struct rte_cryptodev_pmd_init_params { + char name[RTE_CRYPTODEV_NAME_MAX_LEN]; + size_t private_data_size; + int socket_id; + unsigned int max_nb_queue_pairs; +}; + +/** Global structure used for maintaining state of allocated crypto devices */ +struct rte_cryptodev_global { + struct rte_cryptodev *devs; /**< Device information array */ + struct rte_cryptodev_data *data[RTE_CRYPTO_MAX_DEVS]; + /**< Device private data */ + uint8_t nb_devs; /**< Number of devices found */ +}; + +/* Cryptodev driver, containing the driver ID */ +struct cryptodev_driver { + TAILQ_ENTRY(cryptodev_driver) next; /**< Next in list. */ + const struct rte_driver *driver; + uint8_t id; +}; + +/** + * Get the rte_cryptodev structure device pointer for the device. Assumes a + * valid device index. + * + * @param dev_id Device ID value to select the device structure. + * + * @return + * - The rte_cryptodev structure pointer for the given device ID. + */ +__rte_internal +struct rte_cryptodev * +rte_cryptodev_pmd_get_dev(uint8_t dev_id); + +/** + * Get the rte_cryptodev structure device pointer for the named device. + * + * @param name device name to select the device structure. + * + * @return + * - The rte_cryptodev structure pointer for the given device ID. + */ +__rte_internal +struct rte_cryptodev * +rte_cryptodev_pmd_get_named_dev(const char *name); + +/** + * The pool of rte_cryptodev structures. + */ +extern struct rte_cryptodev *rte_cryptodevs; + + +/** + * Definitions of all functions exported by a driver through the + * the generic structure of type *crypto_dev_ops* supplied in the + * *rte_cryptodev* structure associated with a device. + */ + +/** + * Function used to configure device. + * + * @param dev Crypto device pointer + * @param config Crypto device configurations + * + * @return Returns 0 on success + */ +typedef int (*cryptodev_configure_t)(struct rte_cryptodev *dev, + struct rte_cryptodev_config *config); + +/** + * Function used to start a configured device. + * + * @param dev Crypto device pointer + * + * @return Returns 0 on success + */ +typedef int (*cryptodev_start_t)(struct rte_cryptodev *dev); + +/** + * Function used to stop a configured device. + * + * @param dev Crypto device pointer + */ +typedef void (*cryptodev_stop_t)(struct rte_cryptodev *dev); + +/** + * Function used to close a configured device. + * + * @param dev Crypto device pointer + * @return + * - 0 on success. + * - EAGAIN if can't close as device is busy + */ +typedef int (*cryptodev_close_t)(struct rte_cryptodev *dev); + + +/** + * Function used to get statistics of a device. + * + * @param dev Crypto device pointer + * @param stats Pointer to crypto device stats structure to populate + */ +typedef void (*cryptodev_stats_get_t)(struct rte_cryptodev *dev, + struct rte_cryptodev_stats *stats); + + +/** + * Function used to reset statistics of a device. + * + * @param dev Crypto device pointer + */ +typedef void (*cryptodev_stats_reset_t)(struct rte_cryptodev *dev); + + +/** + * Function used to get specific information of a device. + * + * @param dev Crypto device pointer + * @param dev_info Pointer to infos structure to populate + */ +typedef void (*cryptodev_info_get_t)(struct rte_cryptodev *dev, + struct rte_cryptodev_info *dev_info); + +/** + * Setup a queue pair for a device. + * + * @param dev Crypto device pointer + * @param qp_id Queue Pair Index + * @param qp_conf Queue configuration structure + * @param socket_id Socket Index + * + * @return Returns 0 on success. + */ +typedef int (*cryptodev_queue_pair_setup_t)(struct rte_cryptodev *dev, + uint16_t qp_id, const struct rte_cryptodev_qp_conf *qp_conf, + int socket_id); + +/** + * Release memory resources allocated by given queue pair. + * + * @param dev Crypto device pointer + * @param qp_id Queue Pair Index + * + * @return + * - 0 on success. + * - EAGAIN if can't close as device is busy + */ +typedef int (*cryptodev_queue_pair_release_t)(struct rte_cryptodev *dev, + uint16_t qp_id); + +/** + * Create a session mempool to allocate sessions from + * + * @param dev Crypto device pointer + * @param nb_objs number of sessions objects in mempool + * @param obj_cache_size l-core object cache size, see *rte_ring_create* + * @param socket_id Socket Id to allocate mempool on. + * + * @return + * - On success returns a pointer to a rte_mempool + * - On failure returns a NULL pointer + */ +typedef int (*cryptodev_sym_create_session_pool_t)( + struct rte_cryptodev *dev, unsigned nb_objs, + unsigned obj_cache_size, int socket_id); + + +/** + * Get the size of a cryptodev session + * + * @param dev Crypto device pointer + * + * @return + * - On success returns the size of the session structure for device + * - On failure returns 0 + */ +typedef unsigned (*cryptodev_sym_get_session_private_size_t)( + struct rte_cryptodev *dev); +/** + * Get the size of a asymmetric cryptodev session + * + * @param dev Crypto device pointer + * + * @return + * - On success returns the size of the session structure for device + * - On failure returns 0 + */ +typedef unsigned int (*cryptodev_asym_get_session_private_size_t)( + struct rte_cryptodev *dev); + +/** + * Configure a Crypto session on a device. + * + * @param dev Crypto device pointer + * @param xform Single or chain of crypto xforms + * @param session Pointer to cryptodev's private session structure + * @param mp Mempool where the private session is allocated + * + * @return + * - Returns 0 if private session structure have been created successfully. + * - Returns -EINVAL if input parameters are invalid. + * - Returns -ENOTSUP if crypto device does not support the crypto transform. + * - Returns -ENOMEM if the private session could not be allocated. + */ +typedef int (*cryptodev_sym_configure_session_t)(struct rte_cryptodev *dev, + struct rte_crypto_sym_xform *xform, + struct rte_cryptodev_sym_session *session, + struct rte_mempool *mp); +/** + * Configure a Crypto asymmetric session on a device. + * + * @param dev Crypto device pointer + * @param xform Single or chain of crypto xforms + * @param session Pointer to cryptodev's private session structure + * @param mp Mempool where the private session is allocated + * + * @return + * - Returns 0 if private session structure have been created successfully. + * - Returns -EINVAL if input parameters are invalid. + * - Returns -ENOTSUP if crypto device does not support the crypto transform. + * - Returns -ENOMEM if the private session could not be allocated. + */ +typedef int (*cryptodev_asym_configure_session_t)(struct rte_cryptodev *dev, + struct rte_crypto_asym_xform *xform, + struct rte_cryptodev_asym_session *session, + struct rte_mempool *mp); +/** + * Free driver private session data. + * + * @param dev Crypto device pointer + * @param sess Cryptodev session structure + */ +typedef void (*cryptodev_sym_free_session_t)(struct rte_cryptodev *dev, + struct rte_cryptodev_sym_session *sess); +/** + * Free asymmetric session private data. + * + * @param dev Crypto device pointer + * @param sess Cryptodev session structure + */ +typedef void (*cryptodev_asym_free_session_t)(struct rte_cryptodev *dev, + struct rte_cryptodev_asym_session *sess); +/** + * Perform actual crypto processing (encrypt/digest or auth/decrypt) + * on user provided data. + * + * @param dev Crypto device pointer + * @param sess Cryptodev session structure + * @param ofs Start and stop offsets for auth and cipher operations + * @param vec Vectorized operation descriptor + * + * @return + * - Returns number of successfully processed packets. + * + */ +typedef uint32_t (*cryptodev_sym_cpu_crypto_process_t) + (struct rte_cryptodev *dev, struct rte_cryptodev_sym_session *sess, + union rte_crypto_sym_ofs ofs, struct rte_crypto_sym_vec *vec); + +/** + * Typedef that the driver provided to get service context private date size. + * + * @param dev Crypto device pointer. + * + * @return + * - On success return the size of the device's service context private data. + * - On failure return negative integer. + */ +typedef int (*cryptodev_sym_get_raw_dp_ctx_size_t)(struct rte_cryptodev *dev); + +/** + * Typedef that the driver provided to configure raw data-path context. + * + * @param dev Crypto device pointer. + * @param qp_id Crypto device queue pair index. + * @param ctx The raw data-path context data. + * @param sess_type session type. + * @param session_ctx Session context data. If NULL the driver + * shall only configure the drv_ctx_data in + * ctx buffer. Otherwise the driver shall only + * parse the session_ctx to set appropriate + * function pointers in ctx. + * @param is_update Set 0 if it is to initialize the ctx. + * Set 1 if ctx is initialized and only to update + * session context data. + * @return + * - On success return 0. + * - On failure return negative integer. + */ +typedef int (*cryptodev_sym_configure_raw_dp_ctx_t)( + struct rte_cryptodev *dev, uint16_t qp_id, + struct rte_crypto_raw_dp_ctx *ctx, + enum rte_crypto_op_sess_type sess_type, + union rte_cryptodev_session_ctx session_ctx, uint8_t is_update); + +/** Crypto device operations function pointer table */ +struct rte_cryptodev_ops { + cryptodev_configure_t dev_configure; /**< Configure device. */ + cryptodev_start_t dev_start; /**< Start device. */ + cryptodev_stop_t dev_stop; /**< Stop device. */ + cryptodev_close_t dev_close; /**< Close device. */ + + cryptodev_info_get_t dev_infos_get; /**< Get device info. */ + + cryptodev_stats_get_t stats_get; + /**< Get device statistics. */ + cryptodev_stats_reset_t stats_reset; + /**< Reset device statistics. */ + + cryptodev_queue_pair_setup_t queue_pair_setup; + /**< Set up a device queue pair. */ + cryptodev_queue_pair_release_t queue_pair_release; + /**< Release a queue pair. */ + + cryptodev_sym_get_session_private_size_t sym_session_get_size; + /**< Return private session. */ + cryptodev_asym_get_session_private_size_t asym_session_get_size; + /**< Return asym session private size. */ + cryptodev_sym_configure_session_t sym_session_configure; + /**< Configure a Crypto session. */ + cryptodev_asym_configure_session_t asym_session_configure; + /**< Configure asymmetric Crypto session. */ + cryptodev_sym_free_session_t sym_session_clear; + /**< Clear a Crypto sessions private data. */ + cryptodev_asym_free_session_t asym_session_clear; + /**< Clear a Crypto sessions private data. */ + union { + cryptodev_sym_cpu_crypto_process_t sym_cpu_process; + /**< process input data synchronously (cpu-crypto). */ + __extension__ + struct { + cryptodev_sym_get_raw_dp_ctx_size_t + sym_get_raw_dp_ctx_size; + /**< Get raw data path service context data size. */ + cryptodev_sym_configure_raw_dp_ctx_t + sym_configure_raw_dp_ctx; + /**< Initialize raw data path context data. */ + }; + }; +}; + + +/** + * Function for internal use by dummy drivers primarily, e.g. ring-based + * driver. + * Allocates a new cryptodev slot for an crypto device and returns the pointer + * to that slot for the driver to use. + * + * @param name Unique identifier name for each device + * @param socket_id Socket to allocate resources on. + * @return + * - Slot in the rte_dev_devices array for a new device; + */ +__rte_internal +struct rte_cryptodev * +rte_cryptodev_pmd_allocate(const char *name, int socket_id); + +/** + * Function for internal use by dummy drivers primarily, e.g. ring-based + * driver. + * Release the specified cryptodev device. + * + * @param cryptodev + * The *cryptodev* pointer is the address of the *rte_cryptodev* structure. + * @return + * - 0 on success, negative on error + */ +__rte_internal +extern int +rte_cryptodev_pmd_release_device(struct rte_cryptodev *cryptodev); + + +/** + * @internal + * + * PMD assist function to parse initialisation arguments for crypto driver + * when creating a new crypto PMD device instance. + * + * PMD driver should set default values for that PMD before calling function, + * these default values will be over-written with successfully parsed values + * from args string. + * + * @param params parsed PMD initialisation parameters + * @param args input argument string to parse + * + * @return + * - 0 on success + * - errno on failure + */ +__rte_internal +int +rte_cryptodev_pmd_parse_input_args( + struct rte_cryptodev_pmd_init_params *params, + const char *args); + +/** + * @internal + * + * PMD assist function to provide boiler plate code for crypto driver to create + * and allocate resources for a new crypto PMD device instance. + * + * @param name crypto device name. + * @param device base device instance + * @param params PMD initialisation parameters + * + * @return + * - crypto device instance on success + * - NULL on creation failure + */ +__rte_internal +struct rte_cryptodev * +rte_cryptodev_pmd_create(const char *name, + struct rte_device *device, + struct rte_cryptodev_pmd_init_params *params); + +/** + * @internal + * + * PMD assist function to provide boiler plate code for crypto driver to + * destroy and free resources associated with a crypto PMD device instance. + * + * @param cryptodev crypto device handle. + * + * @return + * - 0 on success + * - errno on failure + */ +__rte_internal +int +rte_cryptodev_pmd_destroy(struct rte_cryptodev *cryptodev); + +/** + * Executes all the user application registered callbacks for the specific + * device. + * * + * @param dev Pointer to cryptodev struct + * @param event Crypto device interrupt event type. + * + * @return + * void + */ +__rte_internal +void rte_cryptodev_pmd_callback_process(struct rte_cryptodev *dev, + enum rte_cryptodev_event_type event); + +/** + * @internal + * Create unique device name + */ +__rte_internal +int +rte_cryptodev_pmd_create_dev_name(char *name, const char *dev_name_prefix); + +/** + * @internal + * Allocate Cryptodev driver. + * + * @param crypto_drv + * Pointer to cryptodev_driver. + * @param drv + * Pointer to rte_driver. + * + * @return + * The driver type identifier + */ +__rte_internal +uint8_t rte_cryptodev_allocate_driver(struct cryptodev_driver *crypto_drv, + const struct rte_driver *drv); + + +#define RTE_PMD_REGISTER_CRYPTO_DRIVER(crypto_drv, drv, driver_id)\ +RTE_INIT(init_ ##driver_id)\ +{\ + driver_id = rte_cryptodev_allocate_driver(&crypto_drv, &(drv));\ +} + +static inline void * +get_sym_session_private_data(const struct rte_cryptodev_sym_session *sess, + uint8_t driver_id) { + if (unlikely(sess->nb_drivers <= driver_id)) + return NULL; + + return sess->sess_data[driver_id].data; +} + +static inline void +set_sym_session_private_data(struct rte_cryptodev_sym_session *sess, + uint8_t driver_id, void *private_data) +{ + if (unlikely(sess->nb_drivers <= driver_id)) { + CDEV_LOG_ERR("Set private data for driver %u not allowed\n", + driver_id); + return; + } + + sess->sess_data[driver_id].data = private_data; +} + +static inline void * +get_asym_session_private_data(const struct rte_cryptodev_asym_session *sess, + uint8_t driver_id) { + return sess->sess_private_data[driver_id]; +} + +static inline void +set_asym_session_private_data(struct rte_cryptodev_asym_session *sess, + uint8_t driver_id, void *private_data) +{ + sess->sess_private_data[driver_id] = private_data; +} + +#ifdef __cplusplus +} +#endif + +#endif /* _CRYPTODEV_PMD_H_ */ diff --git a/lib/cryptodev/meson.build b/lib/cryptodev/meson.build index bec80beab3..735935df4a 100644 --- a/lib/cryptodev/meson.build +++ b/lib/cryptodev/meson.build @@ -1,12 +1,22 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017-2019 Intel Corporation -sources = files('rte_cryptodev.c', 'rte_cryptodev_pmd.c', 'cryptodev_trace_points.c') -headers = files('rte_cryptodev.h', - 'rte_cryptodev_pmd.h', +sources = files( + 'cryptodev_pmd.c', + 'cryptodev_trace_points.c', + 'rte_cryptodev.c', +) +headers = files( + 'rte_cryptodev.h', 'rte_cryptodev_trace.h', 'rte_cryptodev_trace_fp.h', 'rte_crypto.h', 'rte_crypto_sym.h', - 'rte_crypto_asym.h') + 'rte_crypto_asym.h', +) + +driver_sdk_headers += files( + 'cryptodev_pmd.h', +) + deps += ['kvargs', 'mbuf', 'rcu'] diff --git a/lib/cryptodev/rte_cryptodev.c b/lib/cryptodev/rte_cryptodev.c index 37502b9b3c..9fa3aff1d3 100644 --- a/lib/cryptodev/rte_cryptodev.c +++ b/lib/cryptodev/rte_cryptodev.c @@ -39,7 +39,7 @@ #include "rte_crypto.h" #include "rte_cryptodev.h" -#include "rte_cryptodev_pmd.h" +#include "cryptodev_pmd.h" #include "rte_cryptodev_trace.h" static uint8_t nb_drivers; diff --git a/lib/cryptodev/rte_cryptodev_pmd.c b/lib/cryptodev/rte_cryptodev_pmd.c deleted file mode 100644 index e342daabc4..0000000000 --- a/lib/cryptodev/rte_cryptodev_pmd.c +++ /dev/null @@ -1,160 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2017 Intel Corporation - */ - -#include -#include - -#include "rte_cryptodev_pmd.h" - -/** - * Parse name from argument - */ -static int -rte_cryptodev_pmd_parse_name_arg(const char *key __rte_unused, - const char *value, void *extra_args) -{ - struct rte_cryptodev_pmd_init_params *params = extra_args; - int n; - - n = strlcpy(params->name, value, RTE_CRYPTODEV_NAME_MAX_LEN); - if (n >= RTE_CRYPTODEV_NAME_MAX_LEN) - return -EINVAL; - - return 0; -} - -/** - * Parse unsigned integer from argument - */ -static int -rte_cryptodev_pmd_parse_uint_arg(const char *key __rte_unused, - const char *value, void *extra_args) -{ - int i; - char *end; - errno = 0; - - i = strtol(value, &end, 10); - if (*end != 0 || errno != 0 || i < 0) - return -EINVAL; - - *((uint32_t *)extra_args) = i; - return 0; -} - -int -rte_cryptodev_pmd_parse_input_args( - struct rte_cryptodev_pmd_init_params *params, - const char *args) -{ - struct rte_kvargs *kvlist = NULL; - int ret = 0; - - if (params == NULL) - return -EINVAL; - - if (args) { - kvlist = rte_kvargs_parse(args, cryptodev_pmd_valid_params); - if (kvlist == NULL) - return -EINVAL; - - ret = rte_kvargs_process(kvlist, - RTE_CRYPTODEV_PMD_MAX_NB_QP_ARG, - &rte_cryptodev_pmd_parse_uint_arg, - ¶ms->max_nb_queue_pairs); - if (ret < 0) - goto free_kvlist; - - ret = rte_kvargs_process(kvlist, - RTE_CRYPTODEV_PMD_SOCKET_ID_ARG, - &rte_cryptodev_pmd_parse_uint_arg, - ¶ms->socket_id); - if (ret < 0) - goto free_kvlist; - - ret = rte_kvargs_process(kvlist, - RTE_CRYPTODEV_PMD_NAME_ARG, - &rte_cryptodev_pmd_parse_name_arg, - params); - if (ret < 0) - goto free_kvlist; - } - -free_kvlist: - rte_kvargs_free(kvlist); - return ret; -} - -struct rte_cryptodev * -rte_cryptodev_pmd_create(const char *name, - struct rte_device *device, - struct rte_cryptodev_pmd_init_params *params) -{ - struct rte_cryptodev *cryptodev; - - if (params->name[0] != '\0') { - CDEV_LOG_INFO("User specified device name = %s\n", params->name); - name = params->name; - } - - CDEV_LOG_INFO("Creating cryptodev %s\n", name); - - CDEV_LOG_INFO("Initialisation parameters - name: %s," - "socket id: %d, max queue pairs: %u", - name, params->socket_id, params->max_nb_queue_pairs); - - /* allocate device structure */ - cryptodev = rte_cryptodev_pmd_allocate(name, params->socket_id); - if (cryptodev == NULL) { - CDEV_LOG_ERR("Failed to allocate crypto device for %s", name); - return NULL; - } - - /* allocate private device structure */ - if (rte_eal_process_type() == RTE_PROC_PRIMARY) { - cryptodev->data->dev_private = - rte_zmalloc_socket("cryptodev device private", - params->private_data_size, - RTE_CACHE_LINE_SIZE, - params->socket_id); - - if (cryptodev->data->dev_private == NULL) { - CDEV_LOG_ERR("Cannot allocate memory for cryptodev %s" - " private data", name); - - rte_cryptodev_pmd_release_device(cryptodev); - return NULL; - } - } - - cryptodev->device = device; - - /* initialise user call-back tail queue */ - TAILQ_INIT(&(cryptodev->link_intr_cbs)); - - return cryptodev; -} - -int -rte_cryptodev_pmd_destroy(struct rte_cryptodev *cryptodev) -{ - int retval; - void *dev_priv = cryptodev->data->dev_private; - - CDEV_LOG_INFO("Closing crypto device %s", cryptodev->device->name); - - /* free crypto device */ - retval = rte_cryptodev_pmd_release_device(cryptodev); - if (retval) - return retval; - - if (rte_eal_process_type() == RTE_PROC_PRIMARY) - rte_free(dev_priv); - - - cryptodev->device = NULL; - cryptodev->data = NULL; - - return 0; -} diff --git a/lib/cryptodev/rte_cryptodev_pmd.h b/lib/cryptodev/rte_cryptodev_pmd.h deleted file mode 100644 index dd2a4940a2..0000000000 --- a/lib/cryptodev/rte_cryptodev_pmd.h +++ /dev/null @@ -1,558 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2015-2020 Intel Corporation. - */ - -#ifndef _RTE_CRYPTODEV_PMD_H_ -#define _RTE_CRYPTODEV_PMD_H_ - -/** @file - * RTE Crypto PMD APIs - * - * @note - * These API are from crypto PMD only and user applications should not call - * them directly. - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "rte_crypto.h" -#include "rte_cryptodev.h" - - -#define RTE_CRYPTODEV_PMD_DEFAULT_MAX_NB_QUEUE_PAIRS 8 - -#define RTE_CRYPTODEV_PMD_NAME_ARG ("name") -#define RTE_CRYPTODEV_PMD_MAX_NB_QP_ARG ("max_nb_queue_pairs") -#define RTE_CRYPTODEV_PMD_SOCKET_ID_ARG ("socket_id") - - -static const char * const cryptodev_pmd_valid_params[] = { - RTE_CRYPTODEV_PMD_NAME_ARG, - RTE_CRYPTODEV_PMD_MAX_NB_QP_ARG, - RTE_CRYPTODEV_PMD_SOCKET_ID_ARG, - NULL -}; - -/** - * @internal - * Initialisation parameters for crypto devices - */ -struct rte_cryptodev_pmd_init_params { - char name[RTE_CRYPTODEV_NAME_MAX_LEN]; - size_t private_data_size; - int socket_id; - unsigned int max_nb_queue_pairs; -}; - -/** Global structure used for maintaining state of allocated crypto devices */ -struct rte_cryptodev_global { - struct rte_cryptodev *devs; /**< Device information array */ - struct rte_cryptodev_data *data[RTE_CRYPTO_MAX_DEVS]; - /**< Device private data */ - uint8_t nb_devs; /**< Number of devices found */ -}; - -/* Cryptodev driver, containing the driver ID */ -struct cryptodev_driver { - TAILQ_ENTRY(cryptodev_driver) next; /**< Next in list. */ - const struct rte_driver *driver; - uint8_t id; -}; - -/** - * Get the rte_cryptodev structure device pointer for the device. Assumes a - * valid device index. - * - * @param dev_id Device ID value to select the device structure. - * - * @return - * - The rte_cryptodev structure pointer for the given device ID. - */ -struct rte_cryptodev * -rte_cryptodev_pmd_get_dev(uint8_t dev_id); - -/** - * Get the rte_cryptodev structure device pointer for the named device. - * - * @param name device name to select the device structure. - * - * @return - * - The rte_cryptodev structure pointer for the given device ID. - */ -struct rte_cryptodev * -rte_cryptodev_pmd_get_named_dev(const char *name); - -/** - * The pool of rte_cryptodev structures. - */ -extern struct rte_cryptodev *rte_cryptodevs; - - -/** - * Definitions of all functions exported by a driver through the - * the generic structure of type *crypto_dev_ops* supplied in the - * *rte_cryptodev* structure associated with a device. - */ - -/** - * Function used to configure device. - * - * @param dev Crypto device pointer - * @param config Crypto device configurations - * - * @return Returns 0 on success - */ -typedef int (*cryptodev_configure_t)(struct rte_cryptodev *dev, - struct rte_cryptodev_config *config); - -/** - * Function used to start a configured device. - * - * @param dev Crypto device pointer - * - * @return Returns 0 on success - */ -typedef int (*cryptodev_start_t)(struct rte_cryptodev *dev); - -/** - * Function used to stop a configured device. - * - * @param dev Crypto device pointer - */ -typedef void (*cryptodev_stop_t)(struct rte_cryptodev *dev); - -/** - * Function used to close a configured device. - * - * @param dev Crypto device pointer - * @return - * - 0 on success. - * - EAGAIN if can't close as device is busy - */ -typedef int (*cryptodev_close_t)(struct rte_cryptodev *dev); - - -/** - * Function used to get statistics of a device. - * - * @param dev Crypto device pointer - * @param stats Pointer to crypto device stats structure to populate - */ -typedef void (*cryptodev_stats_get_t)(struct rte_cryptodev *dev, - struct rte_cryptodev_stats *stats); - - -/** - * Function used to reset statistics of a device. - * - * @param dev Crypto device pointer - */ -typedef void (*cryptodev_stats_reset_t)(struct rte_cryptodev *dev); - - -/** - * Function used to get specific information of a device. - * - * @param dev Crypto device pointer - * @param dev_info Pointer to infos structure to populate - */ -typedef void (*cryptodev_info_get_t)(struct rte_cryptodev *dev, - struct rte_cryptodev_info *dev_info); - -/** - * Setup a queue pair for a device. - * - * @param dev Crypto device pointer - * @param qp_id Queue Pair Index - * @param qp_conf Queue configuration structure - * @param socket_id Socket Index - * - * @return Returns 0 on success. - */ -typedef int (*cryptodev_queue_pair_setup_t)(struct rte_cryptodev *dev, - uint16_t qp_id, const struct rte_cryptodev_qp_conf *qp_conf, - int socket_id); - -/** - * Release memory resources allocated by given queue pair. - * - * @param dev Crypto device pointer - * @param qp_id Queue Pair Index - * - * @return - * - 0 on success. - * - EAGAIN if can't close as device is busy - */ -typedef int (*cryptodev_queue_pair_release_t)(struct rte_cryptodev *dev, - uint16_t qp_id); - -/** - * Create a session mempool to allocate sessions from - * - * @param dev Crypto device pointer - * @param nb_objs number of sessions objects in mempool - * @param obj_cache_size l-core object cache size, see *rte_ring_create* - * @param socket_id Socket Id to allocate mempool on. - * - * @return - * - On success returns a pointer to a rte_mempool - * - On failure returns a NULL pointer - */ -typedef int (*cryptodev_sym_create_session_pool_t)( - struct rte_cryptodev *dev, unsigned nb_objs, - unsigned obj_cache_size, int socket_id); - - -/** - * Get the size of a cryptodev session - * - * @param dev Crypto device pointer - * - * @return - * - On success returns the size of the session structure for device - * - On failure returns 0 - */ -typedef unsigned (*cryptodev_sym_get_session_private_size_t)( - struct rte_cryptodev *dev); -/** - * Get the size of a asymmetric cryptodev session - * - * @param dev Crypto device pointer - * - * @return - * - On success returns the size of the session structure for device - * - On failure returns 0 - */ -typedef unsigned int (*cryptodev_asym_get_session_private_size_t)( - struct rte_cryptodev *dev); - -/** - * Configure a Crypto session on a device. - * - * @param dev Crypto device pointer - * @param xform Single or chain of crypto xforms - * @param session Pointer to cryptodev's private session structure - * @param mp Mempool where the private session is allocated - * - * @return - * - Returns 0 if private session structure have been created successfully. - * - Returns -EINVAL if input parameters are invalid. - * - Returns -ENOTSUP if crypto device does not support the crypto transform. - * - Returns -ENOMEM if the private session could not be allocated. - */ -typedef int (*cryptodev_sym_configure_session_t)(struct rte_cryptodev *dev, - struct rte_crypto_sym_xform *xform, - struct rte_cryptodev_sym_session *session, - struct rte_mempool *mp); -/** - * Configure a Crypto asymmetric session on a device. - * - * @param dev Crypto device pointer - * @param xform Single or chain of crypto xforms - * @param session Pointer to cryptodev's private session structure - * @param mp Mempool where the private session is allocated - * - * @return - * - Returns 0 if private session structure have been created successfully. - * - Returns -EINVAL if input parameters are invalid. - * - Returns -ENOTSUP if crypto device does not support the crypto transform. - * - Returns -ENOMEM if the private session could not be allocated. - */ -typedef int (*cryptodev_asym_configure_session_t)(struct rte_cryptodev *dev, - struct rte_crypto_asym_xform *xform, - struct rte_cryptodev_asym_session *session, - struct rte_mempool *mp); -/** - * Free driver private session data. - * - * @param dev Crypto device pointer - * @param sess Cryptodev session structure - */ -typedef void (*cryptodev_sym_free_session_t)(struct rte_cryptodev *dev, - struct rte_cryptodev_sym_session *sess); -/** - * Free asymmetric session private data. - * - * @param dev Crypto device pointer - * @param sess Cryptodev session structure - */ -typedef void (*cryptodev_asym_free_session_t)(struct rte_cryptodev *dev, - struct rte_cryptodev_asym_session *sess); -/** - * Perform actual crypto processing (encrypt/digest or auth/decrypt) - * on user provided data. - * - * @param dev Crypto device pointer - * @param sess Cryptodev session structure - * @param ofs Start and stop offsets for auth and cipher operations - * @param vec Vectorized operation descriptor - * - * @return - * - Returns number of successfully processed packets. - * - */ -typedef uint32_t (*cryptodev_sym_cpu_crypto_process_t) - (struct rte_cryptodev *dev, struct rte_cryptodev_sym_session *sess, - union rte_crypto_sym_ofs ofs, struct rte_crypto_sym_vec *vec); - -/** - * Typedef that the driver provided to get service context private date size. - * - * @param dev Crypto device pointer. - * - * @return - * - On success return the size of the device's service context private data. - * - On failure return negative integer. - */ -typedef int (*cryptodev_sym_get_raw_dp_ctx_size_t)(struct rte_cryptodev *dev); - -/** - * Typedef that the driver provided to configure raw data-path context. - * - * @param dev Crypto device pointer. - * @param qp_id Crypto device queue pair index. - * @param ctx The raw data-path context data. - * @param sess_type session type. - * @param session_ctx Session context data. If NULL the driver - * shall only configure the drv_ctx_data in - * ctx buffer. Otherwise the driver shall only - * parse the session_ctx to set appropriate - * function pointers in ctx. - * @param is_update Set 0 if it is to initialize the ctx. - * Set 1 if ctx is initialized and only to update - * session context data. - * @return - * - On success return 0. - * - On failure return negative integer. - */ -typedef int (*cryptodev_sym_configure_raw_dp_ctx_t)( - struct rte_cryptodev *dev, uint16_t qp_id, - struct rte_crypto_raw_dp_ctx *ctx, - enum rte_crypto_op_sess_type sess_type, - union rte_cryptodev_session_ctx session_ctx, uint8_t is_update); - -/** Crypto device operations function pointer table */ -struct rte_cryptodev_ops { - cryptodev_configure_t dev_configure; /**< Configure device. */ - cryptodev_start_t dev_start; /**< Start device. */ - cryptodev_stop_t dev_stop; /**< Stop device. */ - cryptodev_close_t dev_close; /**< Close device. */ - - cryptodev_info_get_t dev_infos_get; /**< Get device info. */ - - cryptodev_stats_get_t stats_get; - /**< Get device statistics. */ - cryptodev_stats_reset_t stats_reset; - /**< Reset device statistics. */ - - cryptodev_queue_pair_setup_t queue_pair_setup; - /**< Set up a device queue pair. */ - cryptodev_queue_pair_release_t queue_pair_release; - /**< Release a queue pair. */ - - cryptodev_sym_get_session_private_size_t sym_session_get_size; - /**< Return private session. */ - cryptodev_asym_get_session_private_size_t asym_session_get_size; - /**< Return asym session private size. */ - cryptodev_sym_configure_session_t sym_session_configure; - /**< Configure a Crypto session. */ - cryptodev_asym_configure_session_t asym_session_configure; - /**< Configure asymmetric Crypto session. */ - cryptodev_sym_free_session_t sym_session_clear; - /**< Clear a Crypto sessions private data. */ - cryptodev_asym_free_session_t asym_session_clear; - /**< Clear a Crypto sessions private data. */ - union { - cryptodev_sym_cpu_crypto_process_t sym_cpu_process; - /**< process input data synchronously (cpu-crypto). */ - __extension__ - struct { - cryptodev_sym_get_raw_dp_ctx_size_t - sym_get_raw_dp_ctx_size; - /**< Get raw data path service context data size. */ - cryptodev_sym_configure_raw_dp_ctx_t - sym_configure_raw_dp_ctx; - /**< Initialize raw data path context data. */ - }; - }; -}; - - -/** - * Function for internal use by dummy drivers primarily, e.g. ring-based - * driver. - * Allocates a new cryptodev slot for an crypto device and returns the pointer - * to that slot for the driver to use. - * - * @param name Unique identifier name for each device - * @param socket_id Socket to allocate resources on. - * @return - * - Slot in the rte_dev_devices array for a new device; - */ -struct rte_cryptodev * -rte_cryptodev_pmd_allocate(const char *name, int socket_id); - -/** - * Function for internal use by dummy drivers primarily, e.g. ring-based - * driver. - * Release the specified cryptodev device. - * - * @param cryptodev - * The *cryptodev* pointer is the address of the *rte_cryptodev* structure. - * @return - * - 0 on success, negative on error - */ -extern int -rte_cryptodev_pmd_release_device(struct rte_cryptodev *cryptodev); - - -/** - * @internal - * - * PMD assist function to parse initialisation arguments for crypto driver - * when creating a new crypto PMD device instance. - * - * PMD driver should set default values for that PMD before calling function, - * these default values will be over-written with successfully parsed values - * from args string. - * - * @param params parsed PMD initialisation parameters - * @param args input argument string to parse - * - * @return - * - 0 on success - * - errno on failure - */ -int -rte_cryptodev_pmd_parse_input_args( - struct rte_cryptodev_pmd_init_params *params, - const char *args); - -/** - * @internal - * - * PMD assist function to provide boiler plate code for crypto driver to create - * and allocate resources for a new crypto PMD device instance. - * - * @param name crypto device name. - * @param device base device instance - * @param params PMD initialisation parameters - * - * @return - * - crypto device instance on success - * - NULL on creation failure - */ -struct rte_cryptodev * -rte_cryptodev_pmd_create(const char *name, - struct rte_device *device, - struct rte_cryptodev_pmd_init_params *params); - -/** - * @internal - * - * PMD assist function to provide boiler plate code for crypto driver to - * destroy and free resources associated with a crypto PMD device instance. - * - * @param cryptodev crypto device handle. - * - * @return - * - 0 on success - * - errno on failure - */ -int -rte_cryptodev_pmd_destroy(struct rte_cryptodev *cryptodev); - -/** - * Executes all the user application registered callbacks for the specific - * device. - * * - * @param dev Pointer to cryptodev struct - * @param event Crypto device interrupt event type. - * - * @return - * void - */ -void rte_cryptodev_pmd_callback_process(struct rte_cryptodev *dev, - enum rte_cryptodev_event_type event); - -/** - * @internal - * Create unique device name - */ -int -rte_cryptodev_pmd_create_dev_name(char *name, const char *dev_name_prefix); - -/** - * @internal - * Allocate Cryptodev driver. - * - * @param crypto_drv - * Pointer to cryptodev_driver. - * @param drv - * Pointer to rte_driver. - * - * @return - * The driver type identifier - */ -uint8_t rte_cryptodev_allocate_driver(struct cryptodev_driver *crypto_drv, - const struct rte_driver *drv); - - -#define RTE_PMD_REGISTER_CRYPTO_DRIVER(crypto_drv, drv, driver_id)\ -RTE_INIT(init_ ##driver_id)\ -{\ - driver_id = rte_cryptodev_allocate_driver(&crypto_drv, &(drv));\ -} - -static inline void * -get_sym_session_private_data(const struct rte_cryptodev_sym_session *sess, - uint8_t driver_id) { - if (unlikely(sess->nb_drivers <= driver_id)) - return NULL; - - return sess->sess_data[driver_id].data; -} - -static inline void -set_sym_session_private_data(struct rte_cryptodev_sym_session *sess, - uint8_t driver_id, void *private_data) -{ - if (unlikely(sess->nb_drivers <= driver_id)) { - CDEV_LOG_ERR("Set private data for driver %u not allowed\n", - driver_id); - return; - } - - sess->sess_data[driver_id].data = private_data; -} - -static inline void * -get_asym_session_private_data(const struct rte_cryptodev_asym_session *sess, - uint8_t driver_id) { - return sess->sess_private_data[driver_id]; -} - -static inline void -set_asym_session_private_data(struct rte_cryptodev_asym_session *sess, - uint8_t driver_id, void *private_data) -{ - sess->sess_private_data[driver_id] = private_data; -} - -#ifdef __cplusplus -} -#endif - -#endif /* _RTE_CRYPTODEV_PMD_H_ */ diff --git a/lib/cryptodev/version.map b/lib/cryptodev/version.map index 1a7f759c57..8294c9f64f 100644 --- a/lib/cryptodev/version.map +++ b/lib/cryptodev/version.map @@ -8,7 +8,6 @@ DPDK_22 { rte_crypto_cipher_algorithm_strings; rte_crypto_cipher_operation_strings; rte_crypto_op_pool_create; - rte_cryptodev_allocate_driver; rte_cryptodev_callback_register; rte_cryptodev_callback_unregister; rte_cryptodev_close; @@ -27,15 +26,6 @@ DPDK_22 { rte_cryptodev_info_get; rte_cryptodev_is_valid_dev; rte_cryptodev_name_get; - rte_cryptodev_pmd_allocate; - rte_cryptodev_pmd_callback_process; - rte_cryptodev_pmd_create; - rte_cryptodev_pmd_create_dev_name; - rte_cryptodev_pmd_destroy; - rte_cryptodev_pmd_get_dev; - rte_cryptodev_pmd_get_named_dev; - rte_cryptodev_pmd_parse_input_args; - rte_cryptodev_pmd_release_device; rte_cryptodev_queue_pair_count; rte_cryptodev_queue_pair_setup; rte_cryptodev_socket_id; @@ -117,3 +107,18 @@ EXPERIMENTAL { rte_cryptodev_remove_enq_callback; }; + +INTERNAL { + global: + + rte_cryptodev_allocate_driver; + rte_cryptodev_pmd_allocate; + rte_cryptodev_pmd_callback_process; + rte_cryptodev_pmd_create; + rte_cryptodev_pmd_create_dev_name; + rte_cryptodev_pmd_destroy; + rte_cryptodev_pmd_get_dev; + rte_cryptodev_pmd_get_named_dev; + rte_cryptodev_pmd_parse_input_args; + rte_cryptodev_pmd_release_device; +}; diff --git a/lib/eventdev/rte_event_crypto_adapter.c b/lib/eventdev/rte_event_crypto_adapter.c index 2d38389858..ebfc8326a8 100644 --- a/lib/eventdev/rte_event_crypto_adapter.c +++ b/lib/eventdev/rte_event_crypto_adapter.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c index cb0ed7b620..e347d6dfd5 100644 --- a/lib/eventdev/rte_eventdev.c +++ b/lib/eventdev/rte_eventdev.c @@ -31,7 +31,7 @@ #include #include #include -#include +#include #include #include "rte_eventdev.h" diff --git a/lib/pipeline/rte_table_action.c b/lib/pipeline/rte_table_action.c index 54721ed96a..ad7904c0ee 100644 --- a/lib/pipeline/rte_table_action.c +++ b/lib/pipeline/rte_table_action.c @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include "rte_table_action.h"