The ZUC and SNOW 3G crypto drivers are using APIs that are now
deprecated in the Intel IPsec Multi-Buffer library.

Signed-off-by: Radu Nicolau <[email protected]>
---
 doc/guides/cryptodevs/aesni_mb.rst         |  2 +-
 doc/guides/cryptodevs/snow3g.rst           | 15 ++++-----------
 doc/guides/cryptodevs/zuc.rst              | 13 +++----------
 doc/guides/rel_notes/release_26_07.rst     |  5 +++++
 drivers/crypto/ipsec_mb/ipsec_mb_private.h |  6 ++++++
 drivers/crypto/ipsec_mb/meson.build        |  9 +++++++--
 6 files changed, 26 insertions(+), 24 deletions(-)

diff --git a/doc/guides/cryptodevs/aesni_mb.rst 
b/doc/guides/cryptodevs/aesni_mb.rst
index 9d886657f2..5efbadb8d1 100644
--- a/doc/guides/cryptodevs/aesni_mb.rst
+++ b/doc/guides/cryptodevs/aesni_mb.rst
@@ -82,7 +82,7 @@ Limitations
   DOCSIS security protocol.
 
 AESNI MB PMD selection over SNOW3G/ZUC PMDs
---------------------------------------------------
+-------------------------------------------
 
 This PMD supports wireless cipher suite (SNOW3G and ZUC).
 On Intel processors, it is recommended to use this PMD
diff --git a/doc/guides/cryptodevs/snow3g.rst b/doc/guides/cryptodevs/snow3g.rst
index 0fe914ffd3..d7f494a963 100644
--- a/doc/guides/cryptodevs/snow3g.rst
+++ b/doc/guides/cryptodevs/snow3g.rst
@@ -5,8 +5,8 @@ SNOW 3G Crypto Poll Mode Driver
 ===============================
 
 The SNOW3G PMD (**librte_crypto_snow3g**) provides poll mode crypto driver 
support for
-utilizing `Intel IPSec Multi-buffer library 
<https://github.com/01org/intel-ipsec-mb>`_
-which implements F8 and F8 functions for SNOW 3G UEA2 cipher and UIA2 hash 
algorithms.
+utilizing the ARM64 port of `Intel IPSec Multi-buffer library 
<https://gitlab.arm.com/arm-reference-solutions/ipsec-mb>`_
+which implements F8 and F9 functions for SNOW 3G UEA2 cipher and UIA2 hash 
algorithms.
 
 Features
 --------
@@ -36,9 +36,7 @@ Limitations
 SNOW3G PMD vs AESNI MB PMD
 --------------------------
 
-AESNI MB PMD also supports SNOW3G cipher and authentication algorithms.
-It is recommended to use the AESNI MB PMD,
-which offers better performance on Intel processors.
+On Intel processors this PMD is no longer supported, please use the AESNI MB 
PMD.
 Take a look at the PMD documentation (:doc:`aesni_mb`) for more information.
 
 Installation
@@ -47,12 +45,7 @@ Installation
 To build DPDK with the SNOW3G_PMD the user is required to download the 
multi-buffer
 library and compile it on their user system before building DPDK.
 
-For x86 system, the multi-buffer library is available
-`here <https://github.com/01org/intel-ipsec-mb>`_.
-The latest version of the library supported by this PMD is v1.5, which
-can be downloaded from 
`<https://github.com/01org/intel-ipsec-mb/archive/v1.5.zip>`_.
-
-For Arm system, ARM64 port of the multi-buffer library can be downloaded from
+The ARM64 port of the multi-buffer library can be downloaded from
 `<https://gitlab.arm.com/arm-reference-solutions/ipsec-mb/-/tree/main/>`_. The
 latest version of the library supported by this PMD is tagged as 
SECLIB-IPSEC-2024.07.08.
 
diff --git a/doc/guides/cryptodevs/zuc.rst b/doc/guides/cryptodevs/zuc.rst
index 7c6b83e7eb..e4c86814f1 100644
--- a/doc/guides/cryptodevs/zuc.rst
+++ b/doc/guides/cryptodevs/zuc.rst
@@ -5,7 +5,7 @@ ZUC Crypto Poll Mode Driver
 ===========================
 
 The ZUC PMD (**librte_crypto_zuc**) provides poll mode crypto driver support 
for
-utilizing `Intel IPSec Multi-buffer library 
<https://github.com/01org/intel-ipsec-mb>`_
+utilizing the ARM64 port of `Intel IPSec Multi-buffer library 
<https://gitlab.arm.com/arm-reference-solutions/ipsec-mb>`_
 which implements F8 and F9 functions for ZUC EEA3 cipher and EIA3 hash 
algorithms.
 
 Features
@@ -35,9 +35,7 @@ Limitations
 ZUC PMD vs AESNI MB PMD
 -----------------------
 
-AESNI MB PMD also supports ZUC cipher and authentication algorithms.
-It is recommended to use the AESNI MB PMD,
-which offers better performance on Intel processors.
+On Intel processors this PMD is no longer supported, please use the AESNI MB 
PMD.
 Take a look at the PMD documentation (:doc:`aesni_mb`) for more information.
 
 Installation
@@ -46,12 +44,7 @@ Installation
 To build DPDK with the ZUC_PMD the user is required to download the 
multi-buffer
 library and compile it on their user system before building DPDK.
 
-For x86 system, the multi-buffer library is available
-`here <https://github.com/01org/intel-ipsec-mb>`_.
-The latest version of the library supported by this PMD is v1.5, which
-can be downloaded from 
`<https://github.com/01org/intel-ipsec-mb/archive/v1.5.zip>`_.
-
-For Arm system, ARM64 port of the multi-buffer library can be downloaded from
+The ARM64 port of the multi-buffer library can be downloaded from
 `<https://gitlab.arm.com/arm-reference-solutions/ipsec-mb/-/tree/main/>`_. The
 latest version of the library supported by this PMD is tagged as 
SECLIB-IPSEC-2024.07.08.
 
diff --git a/doc/guides/rel_notes/release_26_07.rst 
b/doc/guides/rel_notes/release_26_07.rst
index 64c8b038d1..388642851a 100644
--- a/doc/guides/rel_notes/release_26_07.rst
+++ b/doc/guides/rel_notes/release_26_07.rst
@@ -123,6 +123,11 @@ Removed Items
   * The Chacha20-poly1305 and KASUMI drivers were just wrappers around
     the main AESNI_MB driver.
 
+* **Removed ZUC and SNOW 3G crypto drivers from the x86 release.**
+
+  * The ZUC and SNOW 3G crypto drivers are using APIs that are now
+    deprecated in the Intel IPsec Multi-Buffer library.
+
 
 API Changes
 -----------
diff --git a/drivers/crypto/ipsec_mb/ipsec_mb_private.h 
b/drivers/crypto/ipsec_mb/ipsec_mb_private.h
index 9712bf5b4c..fc7d6f5f06 100644
--- a/drivers/crypto/ipsec_mb/ipsec_mb_private.h
+++ b/drivers/crypto/ipsec_mb/ipsec_mb_private.h
@@ -45,11 +45,13 @@ extern RTE_DEFINE_PER_LCORE(IMB_MGR *, mb_mgr);
 #define CRYPTODEV_NAME_AESNI_GCM_PMD crypto_aesni_gcm
 /**< IPSEC Multi buffer PMD aesni_gcm device name */
 
+#if defined(RTE_ARCH_ARM)
 #define CRYPTODEV_NAME_SNOW3G_PMD crypto_snow3g
 /**< IPSEC Multi buffer PMD snow3g device name */
 
 #define CRYPTODEV_NAME_ZUC_PMD crypto_zuc
 /**< IPSEC Multi buffer PMD zuc device name */
+#endif
 
 /** PMD LOGTYPE DRIVER, common to all PMDs */
 extern int ipsec_mb_logtype_driver;
@@ -62,8 +64,10 @@ extern int ipsec_mb_logtype_driver;
 enum ipsec_mb_pmd_types {
        IPSEC_MB_PMD_TYPE_AESNI_MB = 0,
        IPSEC_MB_PMD_TYPE_AESNI_GCM,
+#if defined(RTE_ARCH_ARM)
        IPSEC_MB_PMD_TYPE_SNOW3G,
        IPSEC_MB_PMD_TYPE_ZUC,
+#endif
        IPSEC_MB_N_PMD_TYPES
 };
 
@@ -96,10 +100,12 @@ ipsec_mb_get_driver_id(enum ipsec_mb_pmd_types pmd_type)
                return pmd_driver_id_aesni_mb;
        case IPSEC_MB_PMD_TYPE_AESNI_GCM:
                return pmd_driver_id_aesni_gcm;
+#if defined(RTE_ARCH_ARM)
        case IPSEC_MB_PMD_TYPE_SNOW3G:
                return pmd_driver_id_snow3g;
        case IPSEC_MB_PMD_TYPE_ZUC:
                return pmd_driver_id_zuc;
+#endif
        default:
                break;
        }
diff --git a/drivers/crypto/ipsec_mb/meson.build 
b/drivers/crypto/ipsec_mb/meson.build
index 6c5e4e2259..eb2085725b 100644
--- a/drivers/crypto/ipsec_mb/meson.build
+++ b/drivers/crypto/ipsec_mb/meson.build
@@ -42,8 +42,13 @@ sources = files(
         'ipsec_mb_ops.c',
         'pmd_aesni_mb.c',
         'pmd_aesni_gcm.c',
-        'pmd_snow3g.c',
-        'pmd_zuc.c',
 )
+# PMDs supported only on ARM build
+if arch_subdir == 'arm'
+    sources += files(
+            'pmd_snow3g.c',
+            'pmd_zuc.c',
+    )
+endif
 deps += ['bus_vdev', 'net', 'security']
 require_iova_in_mbuf = false
-- 
2.52.0

Reply via email to