<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="text-align: left; text-indent: 0px; line-height: 1.1; margin: 20px 0px 10px; font-family: "IntelOne Text"; font-size: 10pt; color: rgb(0, 0, 0);">
<span style="font-weight: 500;">Acked-by: Kai Ji <kai.ji@intel.com></span></div>
<div class="elementToProof" style="text-align: left; text-indent: 0px; line-height: 1.1; margin: 20px 0px 10px; font-family: "IntelOne Text"; font-size: 10pt; color: rgb(0, 0, 0);">
<span style="font-weight: 500;"><br>
</span></div>
<div><br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<hr style="display: inline-block; width: 98%;">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<b>From:</b> Finn, Emma <emma.finn@intel.com><br>
<b>Sent:</b> Tuesday, October 13, 2026 10:33<br>
<b>To:</b> Ji, Kai <kai.ji@intel.com>; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com><br>
<b>Cc:</b> dev@dpdk.org <dev@dpdk.org>; Finn, Emma <emma.finn@intel.com><br>
<b>Subject:</b> [PATCH v3 1/2] crypto/ipsec_mb: Add SHA3 support. </div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-size: 11pt;">Add SHA3-224, SHA3-256, SHA3-384, SHA3-512 and HMAC variants<br>
to the ipsec_mb PMD.<br>
<br>
Signed-off-by: Emma Finn <emma.finn@intel.com><br>
---<br>
 doc/guides/cryptodevs/aesni_mb.rst          |   8 +<br>
 doc/guides/cryptodevs/features/aesni_mb.ini |   8 +<br>
 doc/guides/rel_notes/release_26_11.rst      |   5 +<br>
 drivers/crypto/ipsec_mb/pmd_aesni_mb.c      |  30 +++<br>
 drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h | 212 +++++++++++++++++++-<br>
 5 files changed, 257 insertions(+), 6 deletions(-)<br>
<br>
diff --git a/doc/guides/cryptodevs/aesni_mb.rst b/doc/guides/cryptodevs/aesni_mb.rst<br>
index ab7a6138a8e..663b9f19d4b 100644<br>
--- a/doc/guides/cryptodevs/aesni_mb.rst<br>
+++ b/doc/guides/cryptodevs/aesni_mb.rst<br>
@@ -61,6 +61,14 @@ Hash algorithms:<br>
 * RTE_CRYPTO_AUTH_KASUMI_F9<br>
 * RTE_CRYPTO_AUTH_SM3<br>
 * RTE_CRYPTO_AUTH_SM3 HMAC<br>
+* RTE_CRYPTO_AUTH_SHA3_224<br>
+* RTE_CRYPTO_AUTH_SHA3_224 HMAC<br>
+* RTE_CRYPTO_AUTH_SHA3_256<br>
+* RTE_CRYPTO_AUTH_SHA3_256 HMAC<br>
+* RTE_CRYPTO_AUTH_SHA3_384<br>
+* RTE_CRYPTO_AUTH_SHA3_384 HMAC<br>
+* RTE_CRYPTO_AUTH_SHA3_512<br>
+* RTE_CRYPTO_AUTH_SHA3_512 HMAC<br>
 <br>
 AEAD algorithms:<br>
 <br>
diff --git a/doc/guides/cryptodevs/features/aesni_mb.ini b/doc/guides/cryptodevs/features/aesni_mb.ini<br>
index ce6b43e48bd..73bb9f42633 100644<br>
--- a/doc/guides/cryptodevs/features/aesni_mb.ini<br>
+++ b/doc/guides/cryptodevs/features/aesni_mb.ini<br>
@@ -69,6 +69,14 @@ SNOW3G UIA2  = Y<br>
 KASUMI F9    = Y<br>
 SM3          = Y<br>
 SM3 HMAC     = Y<br>
+SHA3_224     = Y<br>
+SHA3_224 HMAC = Y<br>
+SHA3_256     = Y<br>
+SHA3_256 HMAC = Y<br>
+SHA3_384     = Y<br>
+SHA3_384 HMAC = Y<br>
+SHA3_512     = Y<br>
+SHA3_512 HMAC = Y<br>
 <br>
 ;<br>
 ; Supported AEAD algorithms of the 'aesni_mb' crypto driver.<br>
diff --git a/doc/guides/rel_notes/release_26_11.rst b/doc/guides/rel_notes/release_26_11.rst<br>
index c8cc86295da..826a0cf05cf 100644<br>
--- a/doc/guides/rel_notes/release_26_11.rst<br>
+++ b/doc/guides/rel_notes/release_26_11.rst<br>
@@ -24,6 +24,11 @@ DPDK Release 26.11<br>
 New Features<br>
 ------------<br>
 <br>
+* **Updated AESNI_MB crypto driver.**<br>
+<br>
+  * Added support for SHA3-224, SHA3-256, SHA3-384, and SHA3-512 hash<br>
+    algorithms and their HMAC variants.<br>
+<br>
 .. This section should contain new features added in this release.<br>
    Sample format:<br>
 <br>
diff --git a/drivers/crypto/ipsec_mb/pmd_aesni_mb.c b/drivers/crypto/ipsec_mb/pmd_aesni_mb.c<br>
index 4c5b6e70b51..c96d1453b8c 100644<br>
--- a/drivers/crypto/ipsec_mb/pmd_aesni_mb.c<br>
+++ b/drivers/crypto/ipsec_mb/pmd_aesni_mb.c<br>
@@ -302,6 +302,36 @@ aesni_mb_set_session_auth_parameters(IMB_MGR *mb_mgr,<br>
         case RTE_CRYPTO_AUTH_SM3_HMAC:<br>
                 sess->template_job.hash_alg = IMB_AUTH_HMAC_SM3;<br>
                 break;<br>
+#endif<br>
+#if IMB_VERSION(3, 0, 0) <= IMB_VERSION_NUM<br>
+       case RTE_CRYPTO_AUTH_SHA3_224:<br>
+               sess->template_job.hash_alg = IMB_AUTH_SHA3_224;<br>
+               auth_precompute = 0;<br>
+               break;<br>
+       case RTE_CRYPTO_AUTH_SHA3_224_HMAC:<br>
+               sess->template_job.hash_alg = IMB_AUTH_HMAC_SHA3_224;<br>
+               break;<br>
+       case RTE_CRYPTO_AUTH_SHA3_256:<br>
+               sess->template_job.hash_alg = IMB_AUTH_SHA3_256;<br>
+               auth_precompute = 0;<br>
+               break;<br>
+       case RTE_CRYPTO_AUTH_SHA3_256_HMAC:<br>
+               sess->template_job.hash_alg = IMB_AUTH_HMAC_SHA3_256;<br>
+               break;<br>
+       case RTE_CRYPTO_AUTH_SHA3_384:<br>
+               sess->template_job.hash_alg = IMB_AUTH_SHA3_384;<br>
+               auth_precompute = 0;<br>
+               break;<br>
+       case RTE_CRYPTO_AUTH_SHA3_384_HMAC:<br>
+               sess->template_job.hash_alg = IMB_AUTH_HMAC_SHA3_384;<br>
+               break;<br>
+       case RTE_CRYPTO_AUTH_SHA3_512:<br>
+               sess->template_job.hash_alg = IMB_AUTH_SHA3_512;<br>
+               auth_precompute = 0;<br>
+               break;<br>
+       case RTE_CRYPTO_AUTH_SHA3_512_HMAC:<br>
+               sess->template_job.hash_alg = IMB_AUTH_HMAC_SHA3_512;<br>
+               break;<br>
 #endif<br>
         default:<br>
                 IPSEC_MB_LOG(ERR,<br>
diff --git a/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h b/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h<br>
index 6dc90a98492..aad31b9f909 100644<br>
--- a/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h<br>
+++ b/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h<br>
@@ -768,6 +768,176 @@ static const struct rte_cryptodev_capabilities aesni_mb_capabilities[] = {<br>
                         }, }<br>
                 }, }<br>
         },<br>
+#if IMB_VERSION(3, 0, 0) <= IMB_VERSION_NUM<br>
+       {       /* SHA3-224 */<br>
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,<br>
+               {.sym = {<br>
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,<br>
+                       {.auth = {<br>
+                               .algo = RTE_CRYPTO_AUTH_SHA3_224,<br>
+                               .block_size = 144,<br>
+                               .key_size = {<br>
+                                       .min = 0,<br>
+                                       .max = 0,<br>
+                                       .increment = 0<br>
+                               },<br>
+                               .digest_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 28,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .iv_size = { 0 }<br>
+                       }, }<br>
+               }, }<br>
+       },<br>
+       {       /* HMAC SHA3-224 */<br>
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,<br>
+               {.sym = {<br>
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,<br>
+                       {.auth = {<br>
+                               .algo = RTE_CRYPTO_AUTH_SHA3_224_HMAC,<br>
+                               .block_size = 144,<br>
+                               .key_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 65535,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .digest_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 28,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .iv_size = { 0 }<br>
+                       }, }<br>
+               }, }<br>
+       },<br>
+       {       /* SHA3-256 */<br>
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,<br>
+               {.sym = {<br>
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,<br>
+                       {.auth = {<br>
+                               .algo = RTE_CRYPTO_AUTH_SHA3_256,<br>
+                               .block_size = 136,<br>
+                               .key_size = {<br>
+                                       .min = 0,<br>
+                                       .max = 0,<br>
+                                       .increment = 0<br>
+                               },<br>
+                               .digest_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 32,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .iv_size = { 0 }<br>
+                       }, }<br>
+               }, }<br>
+       },<br>
+       {       /* HMAC SHA3-256 */<br>
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,<br>
+               {.sym = {<br>
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,<br>
+                       {.auth = {<br>
+                               .algo = RTE_CRYPTO_AUTH_SHA3_256_HMAC,<br>
+                               .block_size = 136,<br>
+                               .key_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 65535,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .digest_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 32,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .iv_size = { 0 }<br>
+                       }, }<br>
+               }, }<br>
+       },<br>
+       {       /* SHA3-384 */<br>
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,<br>
+               {.sym = {<br>
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,<br>
+                       {.auth = {<br>
+                               .algo = RTE_CRYPTO_AUTH_SHA3_384,<br>
+                               .block_size = 104,<br>
+                               .key_size = {<br>
+                                       .min = 0,<br>
+                                       .max = 0,<br>
+                                       .increment = 0<br>
+                               },<br>
+                               .digest_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 48,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .iv_size = { 0 }<br>
+                       }, }<br>
+               }, }<br>
+       },<br>
+       {       /* HMAC SHA3-384 */<br>
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,<br>
+               {.sym = {<br>
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,<br>
+                       {.auth = {<br>
+                               .algo = RTE_CRYPTO_AUTH_SHA3_384_HMAC,<br>
+                               .block_size = 104,<br>
+                               .key_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 65535,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .digest_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 48,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .iv_size = { 0 }<br>
+                       }, }<br>
+               }, }<br>
+       },<br>
+       {       /* SHA3-512 */<br>
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,<br>
+               {.sym = {<br>
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,<br>
+                       {.auth = {<br>
+                               .algo = RTE_CRYPTO_AUTH_SHA3_512,<br>
+                               .block_size = 72,<br>
+                               .key_size = {<br>
+                                       .min = 0,<br>
+                                       .max = 0,<br>
+                                       .increment = 0<br>
+                               },<br>
+                               .digest_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 64,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .iv_size = { 0 }<br>
+                       }, }<br>
+               }, }<br>
+       },<br>
+       {       /* HMAC SHA3-512 */<br>
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,<br>
+               {.sym = {<br>
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,<br>
+                       {.auth = {<br>
+                               .algo = RTE_CRYPTO_AUTH_SHA3_512_HMAC,<br>
+                               .block_size = 72,<br>
+                               .key_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 65535,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .digest_size = {<br>
+                                       .min = 1,<br>
+                                       .max = 64,<br>
+                                       .increment = 1<br>
+                               },<br>
+                               .iv_size = { 0 }<br>
+                       }, }<br>
+               }, }<br>
+       },<br>
+#endif<br>
         {       /* SM4 CBC */<br>
                 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,<br>
                 {.sym = {<br>
@@ -894,7 +1064,17 @@ static const unsigned int auth_blocksize[] = {<br>
                 [IMB_AUTH_SHA_512]              = 128,<br>
                 [IMB_AUTH_ZUC_EIA3_BITLEN]      = 16,<br>
                 [IMB_AUTH_SNOW3G_UIA2_BITLEN]   = 16,<br>
-               [IMB_AUTH_KASUMI_UIA1]          = 16<br>
+               [IMB_AUTH_KASUMI_UIA1]          = 16,<br>
+#if IMB_VERSION(3, 0, 0) <= IMB_VERSION_NUM<br>
+               [IMB_AUTH_SHA3_224]             = 144,<br>
+               [IMB_AUTH_SHA3_256]             = 136,<br>
+               [IMB_AUTH_SHA3_384]             = 104,<br>
+               [IMB_AUTH_SHA3_512]             = 72,<br>
+               [IMB_AUTH_HMAC_SHA3_224]        = 144,<br>
+               [IMB_AUTH_HMAC_SHA3_256]        = 136,<br>
+               [IMB_AUTH_HMAC_SHA3_384]        = 104,<br>
+               [IMB_AUTH_HMAC_SHA3_512]        = 72<br>
+#endif<br>
 };<br>
 <br>
 /**<br>
@@ -928,7 +1108,17 @@ static const unsigned int auth_truncated_digest_byte_lengths[] = {<br>
                 [IMB_AUTH_SHA_512]              = 64,<br>
                 [IMB_AUTH_ZUC_EIA3_BITLEN]      = 4,<br>
                 [IMB_AUTH_SNOW3G_UIA2_BITLEN]   = 4,<br>
-               [IMB_AUTH_KASUMI_UIA1]          = 4<br>
+               [IMB_AUTH_KASUMI_UIA1]          = 4,<br>
+#if IMB_VERSION(3, 0, 0) <= IMB_VERSION_NUM<br>
+               [IMB_AUTH_SHA3_224]             = 28,<br>
+               [IMB_AUTH_SHA3_256]             = 32,<br>
+               [IMB_AUTH_SHA3_384]             = 48,<br>
+               [IMB_AUTH_SHA3_512]             = 64,<br>
+               [IMB_AUTH_HMAC_SHA3_224]        = 28,<br>
+               [IMB_AUTH_HMAC_SHA3_256]        = 32,<br>
+               [IMB_AUTH_HMAC_SHA3_384]        = 48,<br>
+               [IMB_AUTH_HMAC_SHA3_512]        = 64<br>
+#endif<br>
 };<br>
 <br>
 /**<br>
@@ -967,6 +1157,16 @@ static const unsigned int auth_digest_byte_lengths[] = {<br>
 #if IMB_VERSION(1, 5, 0) <= IMB_VERSION_NUM<br>
                 [IMB_AUTH_SM3]                  = 32,<br>
                 [IMB_AUTH_HMAC_SM3]             = 32,<br>
+#endif<br>
+#if IMB_VERSION(3, 0, 0) <= IMB_VERSION_NUM<br>
+               [IMB_AUTH_SHA3_224]             = 28,<br>
+               [IMB_AUTH_SHA3_256]             = 32,<br>
+               [IMB_AUTH_SHA3_384]             = 48,<br>
+               [IMB_AUTH_SHA3_512]             = 64,<br>
+               [IMB_AUTH_HMAC_SHA3_224]        = 28,<br>
+               [IMB_AUTH_HMAC_SHA3_256]        = 32,<br>
+               [IMB_AUTH_HMAC_SHA3_384]        = 48,<br>
+               [IMB_AUTH_HMAC_SHA3_512]        = 64<br>
 #endif<br>
         /**< Vector mode dependent pointer table of the multi-buffer APIs */<br>
 <br>
@@ -1049,15 +1249,15 @@ struct __rte_cache_aligned aesni_mb_session {<br>
                 /* *< auth operation generate or verify */<br>
                 union {<br>
                         struct {<br>
-                               alignas(16) uint8_t inner[128];<br>
+                               alignas(16) uint8_t inner[144];<br>
                                 /* *< inner pad */<br>
-                               alignas(16) uint8_t outer[128];<br>
+                               alignas(16) uint8_t outer[144];<br>
                                 /* *< outer pad */<br>
                         } pads;<br>
                         /* *< HMAC Authentication pads -<br>
                          * allocating space for the maximum pad<br>
-                        * size supported which is 128 bytes for<br>
-                        * SHA512<br>
+                        * size supported which is 144 bytes for<br>
+                        * SHA3-224<br>
                          */<br>
 <br>
                         struct {<br>
--<br>
2.43.0<br>
<br>
</div>
</body>
</html>