[PATCH] common/qat: add asym crypto disable option
Radu Nicolau
radu.nicolau at intel.com
Thu Apr 16 12:25:42 CEST 2026
The Asymmetric crypto QAT PMD can now be disabled independently.
Example:
meson setup build -Ddisable_drivers=crypto/qat/asym
Signed-off-by: Radu Nicolau <radu.nicolau at intel.com>
---
drivers/common/qat/meson.build | 23 ++++++++++++++++---
drivers/crypto/qat/{ => asym}/qat_asym.c | 0
drivers/crypto/qat/{ => asym}/qat_asym.h | 0
drivers/crypto/qat/dev/qat_asym_pmd_gen1.c | 2 ++
drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c | 2 ++
drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c | 2 ++
drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c | 6 +++++
drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c | 2 ++
.../crypto/qat/dev/qat_crypto_pmd_gen_lce.c | 2 ++
drivers/crypto/qat/qat_crypto.c | 6 ++++-
10 files changed, 41 insertions(+), 4 deletions(-)
rename drivers/crypto/qat/{ => asym}/qat_asym.c (100%)
rename drivers/crypto/qat/{ => asym}/qat_asym.h (100%)
diff --git a/drivers/common/qat/meson.build b/drivers/common/qat/meson.build
index 31e06f4376..7f12f2b09d 100644
--- a/drivers/common/qat/meson.build
+++ b/drivers/common/qat/meson.build
@@ -13,6 +13,9 @@ qat_crypto_relpath = '../../' + qat_crypto_path
qat_compress = true
qat_compress_path = 'compress/qat'
qat_compress_relpath = '../../' + qat_compress_path
+qat_crypto_asym = true
+qat_crypto_asym_path = 'crypto/qat/asym'
+qat_crypto_asym_relpath = '../../' + qat_crypto_asym_path
if disable_drivers.contains(qat_crypto_path)
qat_crypto = false
@@ -26,6 +29,12 @@ if disable_drivers.contains(qat_compress_path)
set_variable('drv_' + qat_compress_path.underscorify() + '_disable_reason',
'Explicitly disabled via build config')
endif
+if disable_drivers.contains(qat_crypto_asym_path)
+ qat_crypto_asym = false
+ dpdk_drvs_disabled += qat_crypto_asym_path
+ set_variable('drv_' + qat_crypto_asym_path.underscorify() + '_disable_reason',
+ 'Explicitly disabled via build config')
+endif
libcrypto = dependency('libcrypto', required: false, method: 'pkg-config')
@@ -88,6 +97,7 @@ sources += files(
includes += include_directories(
'qat_adf',
qat_crypto_relpath,
+ qat_crypto_asym_relpath,
qat_compress_relpath,
)
@@ -108,9 +118,8 @@ cflags += no_shadow_cflag
if qat_crypto
foreach f: ['qat_sym.c', 'qat_sym_session.c',
- 'qat_asym.c', 'qat_crypto.c',
+ 'qat_crypto.c',
'dev/qat_sym_pmd_gen1.c',
- 'dev/qat_asym_pmd_gen1.c',
'dev/qat_crypto_pmd_gen2.c',
'dev/qat_crypto_pmd_gen3.c',
'dev/qat_crypto_pmd_gen4.c',
@@ -119,6 +128,14 @@ if qat_crypto
]
sources += files(join_paths(qat_crypto_relpath, f))
endforeach
+ cflags += '-DBUILD_QAT_SYM'
+ if qat_crypto_asym
+ foreach f: ['asym/qat_asym.c',
+ 'dev/qat_asym_pmd_gen1.c',
+ ]
+ sources += files(join_paths(qat_crypto_relpath, f))
+ endforeach
+ cflags += '-DBUILD_QAT_ASYM'
+ endif
deps += ['security']
- cflags += ['-DBUILD_QAT_SYM', '-DBUILD_QAT_ASYM']
endif
diff --git a/drivers/crypto/qat/qat_asym.c b/drivers/crypto/qat/asym/qat_asym.c
similarity index 100%
rename from drivers/crypto/qat/qat_asym.c
rename to drivers/crypto/qat/asym/qat_asym.c
diff --git a/drivers/crypto/qat/qat_asym.h b/drivers/crypto/qat/asym/qat_asym.h
similarity index 100%
rename from drivers/crypto/qat/qat_asym.h
rename to drivers/crypto/qat/asym/qat_asym.h
diff --git a/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c b/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c
index 20001bd1cc..c96608dd37 100644
--- a/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c
+++ b/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c
@@ -112,6 +112,7 @@ qat_asym_crypto_set_session_gen1(void *cdev __rte_unused,
return 0;
}
+#ifdef BUILD_QAT_ASYM
RTE_INIT(qat_asym_crypto_gen1_init)
{
qat_asym_gen_dev_ops[QAT_GEN1].cryptodev_ops =
@@ -121,3 +122,4 @@ RTE_INIT(qat_asym_crypto_gen1_init)
qat_asym_gen_dev_ops[QAT_GEN1].get_feature_flags =
qat_asym_crypto_feature_flags_get_gen1;
}
+#endif
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c
index f20d367404..89c51c8f80 100644
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c
@@ -336,6 +336,7 @@ RTE_INIT(qat_sym_crypto_gen2_init)
qat_sym_create_security_gen1;
}
+#ifdef BUILD_QAT_ASYM
RTE_INIT(qat_asym_crypto_gen2_init)
{
qat_asym_gen_dev_ops[QAT_GEN2].cryptodev_ops =
@@ -347,3 +348,4 @@ RTE_INIT(qat_asym_crypto_gen2_init)
qat_asym_gen_dev_ops[QAT_GEN2].set_session =
qat_asym_crypto_set_session_gen1;
}
+#endif
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c
index c196cf3cdb..91546046f1 100644
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c
@@ -800,6 +800,7 @@ RTE_INIT(qat_sym_crypto_gen3_init)
qat_sym_create_security_gen1;
}
+#ifdef BUILD_QAT_ASYM
RTE_INIT(qat_asym_crypto_gen3_init)
{
qat_asym_gen_dev_ops[QAT_GEN3].cryptodev_ops =
@@ -811,3 +812,4 @@ RTE_INIT(qat_asym_crypto_gen3_init)
qat_asym_gen_dev_ops[QAT_GEN3].set_session =
qat_asym_crypto_set_session_gen1;
}
+#endif
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c
index 52577f6907..41cad29142 100644
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c
@@ -115,6 +115,7 @@ static struct rte_cryptodev_capabilities qat_sym_crypto_caps_gen4[] = {
RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
};
+#ifdef BUILD_QAT_ASYM
static struct rte_cryptodev_capabilities qat_asym_crypto_caps_gen4[] = {
QAT_ASYM_CAP(MODEX,
0, 1, 512, 1),
@@ -159,6 +160,7 @@ static struct rte_cryptodev_capabilities qat_asym_crypto_caps_gen4[] = {
64, 512, 64),
RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
};
+#endif
static int
qat_sym_crypto_cap_get_gen4(struct qat_cryptodev_private *internals,
@@ -202,6 +204,7 @@ qat_sym_crypto_cap_get_gen4(struct qat_cryptodev_private *internals,
return 0;
}
+#ifdef BUILD_QAT_ASYM
static int
qat_asym_crypto_cap_get_gen4(struct qat_cryptodev_private *internals,
const char *capa_memz_name,
@@ -239,6 +242,7 @@ qat_asym_crypto_cap_get_gen4(struct qat_cryptodev_private *internals,
return 0;
}
+#endif
static __rte_always_inline void
enqueue_one_aead_job_gen4(struct qat_sym_session *ctx,
@@ -622,6 +626,7 @@ RTE_INIT(qat_sym_crypto_gen4_init)
qat_sym_create_security_gen1;
}
+#ifdef BUILD_QAT_ASYM
RTE_INIT(qat_asym_crypto_gen4_init)
{
qat_asym_gen_dev_ops[QAT_VQAT].cryptodev_ops =
@@ -637,3 +642,4 @@ RTE_INIT(qat_asym_crypto_gen4_init)
qat_asym_gen_dev_ops[QAT_GEN4].set_session =
qat_asym_crypto_set_session_gen1;
}
+#endif
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c
index 5714420e1e..2680116d6e 100644
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c
@@ -224,6 +224,7 @@ RTE_INIT(qat_sym_crypto_gen5_init)
qat_sym_create_security_gen1;
}
+#ifdef BUILD_QAT_ASYM
RTE_INIT(qat_asym_crypto_gen5_init)
{
qat_asym_gen_dev_ops[QAT_GEN5].cryptodev_ops =
@@ -235,3 +236,4 @@ RTE_INIT(qat_asym_crypto_gen5_init)
qat_asym_gen_dev_ops[QAT_GEN5].set_session =
qat_asym_crypto_set_session_gen1;
}
+#endif
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen_lce.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen_lce.c
index 7298916f2a..ec075bbf68 100644
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen_lce.c
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen_lce.c
@@ -301,6 +301,7 @@ RTE_INIT(qat_sym_crypto_gen_lce_init)
qat_sym_gen_dev_ops[QAT_GEN_LCE].get_feature_flags = qat_sym_crypto_feature_flags_get_gen1;
}
+#ifdef BUILD_QAT_ASYM
RTE_INIT(qat_asym_crypto_gen_lce_init)
{
qat_asym_gen_dev_ops[QAT_GEN_LCE].cryptodev_ops = NULL;
@@ -308,3 +309,4 @@ RTE_INIT(qat_asym_crypto_gen_lce_init)
qat_asym_gen_dev_ops[QAT_GEN_LCE].get_feature_flags = NULL;
qat_asym_gen_dev_ops[QAT_GEN_LCE].set_session = NULL;
}
+#endif
diff --git a/drivers/crypto/qat/qat_crypto.c b/drivers/crypto/qat/qat_crypto.c
index 861679373b..daa36c5eed 100644
--- a/drivers/crypto/qat/qat_crypto.c
+++ b/drivers/crypto/qat/qat_crypto.c
@@ -53,9 +53,11 @@ qat_cryptodev_info_get(struct rte_cryptodev *dev,
qat_qps_per_service(qat_dev, service_type);
info->feature_flags = dev->feature_flags;
info->capabilities = qat_private->qat_dev_capabilities;
+
+#ifdef BUILD_QAT_ASYM
if (service_type == QAT_SERVICE_ASYMMETRIC)
info->driver_id = qat_asym_driver_id;
-
+#endif
if (service_type == QAT_SERVICE_SYMMETRIC)
info->driver_id = qat_sym_driver_id;
/* No limit of number of sessions */
@@ -168,8 +170,10 @@ qat_cryptodev_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
for (i = 0; i < qp->nb_descriptors; i++) {
if (service_type == QAT_SERVICE_SYMMETRIC)
qat_sym_init_op_cookie(qp->op_cookies[i]);
+#ifdef BUILD_QAT_ASYM
else
qat_asym_init_op_cookie(qp->op_cookies[i]);
+#endif
}
if (qat_private->cipher_crc_offload_enable) {
--
2.52.0
More information about the dev
mailing list