[PATCH] common/qat: add asym crypto disable option

Ji, Kai kai.ji at intel.com
Thu Apr 16 16:05:57 CEST 2026


Acked-by: Kai Ji <kai.ji at intel.com>
________________________________
From: Nicolau, Radu <radu.nicolau at intel.com>
Sent: 16 April 2026 11:25
To: dev at dpdk.org <dev at dpdk.org>
Cc: Nicolau, Radu <radu.nicolau at intel.com>; Ji, Kai <kai.ji at intel.com>
Subject: [PATCH] common/qat: add asym crypto disable option

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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mails.dpdk.org/archives/dev/attachments/20260416/be18f0de/attachment-0001.htm>


More information about the dev mailing list