<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: "IntelOne Text"; font-size: 10pt; color: rgb(0, 0, 0);">
Acked-by: Kai Ji <kai.ji@intel.com></div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Nicolau, Radu <radu.nicolau@intel.com><br>
<b>Sent:</b> 16 April 2026 11:25<br>
<b>To:</b> dev@dpdk.org <dev@dpdk.org><br>
<b>Cc:</b> Nicolau, Radu <radu.nicolau@intel.com>; Ji, Kai <kai.ji@intel.com><br>
<b>Subject:</b> [PATCH] common/qat: add asym crypto disable option</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">The Asymmetric crypto QAT PMD can now be disabled independently.<br>
<br>
Example:<br>
meson setup build -Ddisable_drivers=crypto/qat/asym<br>
<br>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com><br>
---<br>
drivers/common/qat/meson.build | 23 ++++++++++++++++---<br>
drivers/crypto/qat/{ => asym}/qat_asym.c | 0<br>
drivers/crypto/qat/{ => asym}/qat_asym.h | 0<br>
drivers/crypto/qat/dev/qat_asym_pmd_gen1.c | 2 ++<br>
drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c | 2 ++<br>
drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c | 2 ++<br>
drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c | 6 +++++<br>
drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c | 2 ++<br>
.../crypto/qat/dev/qat_crypto_pmd_gen_lce.c | 2 ++<br>
drivers/crypto/qat/qat_crypto.c | 6 ++++-<br>
10 files changed, 41 insertions(+), 4 deletions(-)<br>
rename drivers/crypto/qat/{ => asym}/qat_asym.c (100%)<br>
rename drivers/crypto/qat/{ => asym}/qat_asym.h (100%)<br>
<br>
diff --git a/drivers/common/qat/meson.build b/drivers/common/qat/meson.build<br>
index 31e06f4376..7f12f2b09d 100644<br>
--- a/drivers/common/qat/meson.build<br>
+++ b/drivers/common/qat/meson.build<br>
@@ -13,6 +13,9 @@ qat_crypto_relpath = '../../' + qat_crypto_path<br>
qat_compress = true<br>
qat_compress_path = 'compress/qat'<br>
qat_compress_relpath = '../../' + qat_compress_path<br>
+qat_crypto_asym = true<br>
+qat_crypto_asym_path = 'crypto/qat/asym'<br>
+qat_crypto_asym_relpath = '../../' + qat_crypto_asym_path<br>
<br>
if disable_drivers.contains(qat_crypto_path)<br>
qat_crypto = false<br>
@@ -26,6 +29,12 @@ if disable_drivers.contains(qat_compress_path)<br>
set_variable('drv_' + qat_compress_path.underscorify() + '_disable_reason',<br>
'Explicitly disabled via build config')<br>
endif<br>
+if disable_drivers.contains(qat_crypto_asym_path)<br>
+ qat_crypto_asym = false<br>
+ dpdk_drvs_disabled += qat_crypto_asym_path<br>
+ set_variable('drv_' + qat_crypto_asym_path.underscorify() + '_disable_reason',<br>
+ 'Explicitly disabled via build config')<br>
+endif<br>
<br>
libcrypto = dependency('libcrypto', required: false, method: 'pkg-config')<br>
<br>
@@ -88,6 +97,7 @@ sources += files(<br>
includes += include_directories(<br>
'qat_adf',<br>
qat_crypto_relpath,<br>
+ qat_crypto_asym_relpath,<br>
qat_compress_relpath,<br>
)<br>
<br>
@@ -108,9 +118,8 @@ cflags += no_shadow_cflag<br>
<br>
if qat_crypto<br>
foreach f: ['qat_sym.c', 'qat_sym_session.c',<br>
- 'qat_asym.c', 'qat_crypto.c',<br>
+ 'qat_crypto.c',<br>
'dev/qat_sym_pmd_gen1.c',<br>
- 'dev/qat_asym_pmd_gen1.c',<br>
'dev/qat_crypto_pmd_gen2.c',<br>
'dev/qat_crypto_pmd_gen3.c',<br>
'dev/qat_crypto_pmd_gen4.c',<br>
@@ -119,6 +128,14 @@ if qat_crypto<br>
]<br>
sources += files(join_paths(qat_crypto_relpath, f))<br>
endforeach<br>
+ cflags += '-DBUILD_QAT_SYM'<br>
+ if qat_crypto_asym<br>
+ foreach f: ['asym/qat_asym.c',<br>
+ 'dev/qat_asym_pmd_gen1.c',<br>
+ ]<br>
+ sources += files(join_paths(qat_crypto_relpath, f))<br>
+ endforeach<br>
+ cflags += '-DBUILD_QAT_ASYM'<br>
+ endif<br>
deps += ['security']<br>
- cflags += ['-DBUILD_QAT_SYM', '-DBUILD_QAT_ASYM']<br>
endif<br>
diff --git a/drivers/crypto/qat/qat_asym.c b/drivers/crypto/qat/asym/qat_asym.c<br>
similarity index 100%<br>
rename from drivers/crypto/qat/qat_asym.c<br>
rename to drivers/crypto/qat/asym/qat_asym.c<br>
diff --git a/drivers/crypto/qat/qat_asym.h b/drivers/crypto/qat/asym/qat_asym.h<br>
similarity index 100%<br>
rename from drivers/crypto/qat/qat_asym.h<br>
rename to drivers/crypto/qat/asym/qat_asym.h<br>
diff --git a/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c b/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c<br>
index 20001bd1cc..c96608dd37 100644<br>
--- a/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c<br>
+++ b/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c<br>
@@ -112,6 +112,7 @@ qat_asym_crypto_set_session_gen1(void *cdev __rte_unused,<br>
return 0;<br>
}<br>
<br>
+#ifdef BUILD_QAT_ASYM<br>
RTE_INIT(qat_asym_crypto_gen1_init)<br>
{<br>
qat_asym_gen_dev_ops[QAT_GEN1].cryptodev_ops =<br>
@@ -121,3 +122,4 @@ RTE_INIT(qat_asym_crypto_gen1_init)<br>
qat_asym_gen_dev_ops[QAT_GEN1].get_feature_flags =<br>
qat_asym_crypto_feature_flags_get_gen1;<br>
}<br>
+#endif<br>
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c<br>
index f20d367404..89c51c8f80 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c<br>
@@ -336,6 +336,7 @@ RTE_INIT(qat_sym_crypto_gen2_init)<br>
qat_sym_create_security_gen1;<br>
}<br>
<br>
+#ifdef BUILD_QAT_ASYM<br>
RTE_INIT(qat_asym_crypto_gen2_init)<br>
{<br>
qat_asym_gen_dev_ops[QAT_GEN2].cryptodev_ops =<br>
@@ -347,3 +348,4 @@ RTE_INIT(qat_asym_crypto_gen2_init)<br>
qat_asym_gen_dev_ops[QAT_GEN2].set_session =<br>
qat_asym_crypto_set_session_gen1;<br>
}<br>
+#endif<br>
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c<br>
index c196cf3cdb..91546046f1 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c<br>
@@ -800,6 +800,7 @@ RTE_INIT(qat_sym_crypto_gen3_init)<br>
qat_sym_create_security_gen1;<br>
}<br>
<br>
+#ifdef BUILD_QAT_ASYM<br>
RTE_INIT(qat_asym_crypto_gen3_init)<br>
{<br>
qat_asym_gen_dev_ops[QAT_GEN3].cryptodev_ops =<br>
@@ -811,3 +812,4 @@ RTE_INIT(qat_asym_crypto_gen3_init)<br>
qat_asym_gen_dev_ops[QAT_GEN3].set_session =<br>
qat_asym_crypto_set_session_gen1;<br>
}<br>
+#endif<br>
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c<br>
index 52577f6907..41cad29142 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c<br>
@@ -115,6 +115,7 @@ static struct rte_cryptodev_capabilities qat_sym_crypto_caps_gen4[] = {<br>
RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()<br>
};<br>
<br>
+#ifdef BUILD_QAT_ASYM<br>
static struct rte_cryptodev_capabilities qat_asym_crypto_caps_gen4[] = {<br>
QAT_ASYM_CAP(MODEX,<br>
0, 1, 512, 1),<br>
@@ -159,6 +160,7 @@ static struct rte_cryptodev_capabilities qat_asym_crypto_caps_gen4[] = {<br>
64, 512, 64),<br>
RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()<br>
};<br>
+#endif<br>
<br>
static int<br>
qat_sym_crypto_cap_get_gen4(struct qat_cryptodev_private *internals,<br>
@@ -202,6 +204,7 @@ qat_sym_crypto_cap_get_gen4(struct qat_cryptodev_private *internals,<br>
return 0;<br>
}<br>
<br>
+#ifdef BUILD_QAT_ASYM<br>
static int<br>
qat_asym_crypto_cap_get_gen4(struct qat_cryptodev_private *internals,<br>
const char *capa_memz_name,<br>
@@ -239,6 +242,7 @@ qat_asym_crypto_cap_get_gen4(struct qat_cryptodev_private *internals,<br>
<br>
return 0;<br>
}<br>
+#endif<br>
<br>
static __rte_always_inline void<br>
enqueue_one_aead_job_gen4(struct qat_sym_session *ctx,<br>
@@ -622,6 +626,7 @@ RTE_INIT(qat_sym_crypto_gen4_init)<br>
qat_sym_create_security_gen1;<br>
}<br>
<br>
+#ifdef BUILD_QAT_ASYM<br>
RTE_INIT(qat_asym_crypto_gen4_init)<br>
{<br>
qat_asym_gen_dev_ops[QAT_VQAT].cryptodev_ops =<br>
@@ -637,3 +642,4 @@ RTE_INIT(qat_asym_crypto_gen4_init)<br>
qat_asym_gen_dev_ops[QAT_GEN4].set_session =<br>
qat_asym_crypto_set_session_gen1;<br>
}<br>
+#endif<br>
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c<br>
index 5714420e1e..2680116d6e 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c<br>
@@ -224,6 +224,7 @@ RTE_INIT(qat_sym_crypto_gen5_init)<br>
qat_sym_create_security_gen1;<br>
}<br>
<br>
+#ifdef BUILD_QAT_ASYM<br>
RTE_INIT(qat_asym_crypto_gen5_init)<br>
{<br>
qat_asym_gen_dev_ops[QAT_GEN5].cryptodev_ops =<br>
@@ -235,3 +236,4 @@ RTE_INIT(qat_asym_crypto_gen5_init)<br>
qat_asym_gen_dev_ops[QAT_GEN5].set_session =<br>
qat_asym_crypto_set_session_gen1;<br>
}<br>
+#endif<br>
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen_lce.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen_lce.c<br>
index 7298916f2a..ec075bbf68 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen_lce.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen_lce.c<br>
@@ -301,6 +301,7 @@ RTE_INIT(qat_sym_crypto_gen_lce_init)<br>
qat_sym_gen_dev_ops[QAT_GEN_LCE].get_feature_flags = qat_sym_crypto_feature_flags_get_gen1;<br>
}<br>
<br>
+#ifdef BUILD_QAT_ASYM<br>
RTE_INIT(qat_asym_crypto_gen_lce_init)<br>
{<br>
qat_asym_gen_dev_ops[QAT_GEN_LCE].cryptodev_ops = NULL;<br>
@@ -308,3 +309,4 @@ RTE_INIT(qat_asym_crypto_gen_lce_init)<br>
qat_asym_gen_dev_ops[QAT_GEN_LCE].get_feature_flags = NULL;<br>
qat_asym_gen_dev_ops[QAT_GEN_LCE].set_session = NULL;<br>
}<br>
+#endif<br>
diff --git a/drivers/crypto/qat/qat_crypto.c b/drivers/crypto/qat/qat_crypto.c<br>
index 861679373b..daa36c5eed 100644<br>
--- a/drivers/crypto/qat/qat_crypto.c<br>
+++ b/drivers/crypto/qat/qat_crypto.c<br>
@@ -53,9 +53,11 @@ qat_cryptodev_info_get(struct rte_cryptodev *dev,<br>
qat_qps_per_service(qat_dev, service_type);<br>
info->feature_flags = dev->feature_flags;<br>
info->capabilities = qat_private->qat_dev_capabilities;<br>
+<br>
+#ifdef BUILD_QAT_ASYM<br>
if (service_type == QAT_SERVICE_ASYMMETRIC)<br>
info->driver_id = qat_asym_driver_id;<br>
-<br>
+#endif<br>
if (service_type == QAT_SERVICE_SYMMETRIC)<br>
info->driver_id = qat_sym_driver_id;<br>
/* No limit of number of sessions */<br>
@@ -168,8 +170,10 @@ qat_cryptodev_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,<br>
for (i = 0; i < qp->nb_descriptors; i++) {<br>
if (service_type == QAT_SERVICE_SYMMETRIC)<br>
qat_sym_init_op_cookie(qp->op_cookies[i]);<br>
+#ifdef BUILD_QAT_ASYM<br>
else<br>
qat_asym_init_op_cookie(qp->op_cookies[i]);<br>
+#endif<br>
}<br>
<br>
if (qat_private->cipher_crc_offload_enable) {<br>
-- <br>
2.52.0<br>
<br>
</div>
</span></font></div>
</body>
</html>