<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 class="elementToProof" style="font-family: "IntelOne Text"; font-size: 10pt; color: rgb(0, 0, 0);">
<br>
</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> 03 June 2025 11:30<br>
<b>To:</b> Ji, Kai <kai.ji@intel.com><br>
<b>Cc:</b> dev@dpdk.org <dev@dpdk.org>; Nicolau, Radu <radu.nicolau@intel.com><br>
<b>Subject:</b> [PATCH v2] crypto/qat: remove ZUC 256 support</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Remove ZUC 256 support from Gen 3 and 5 hardware<br>
<br>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com><br>
---<br>
v2: removed usnused function<br>
<br>
 doc/guides/rel_notes/release_25_07.rst       |  5 ++<br>
 drivers/common/qat/qat_adf/icp_qat_hw.h      |  2 +-<br>
 drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c | 40 +---------------<br>
 drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c | 49 ++------------------<br>
 drivers/crypto/qat/dev/qat_crypto_pmd_gens.h | 20 --------<br>
 drivers/crypto/qat/dev/qat_sym_pmd_gen1.c    | 33 -------------<br>
 drivers/crypto/qat/qat_sym_session.c         | 25 ++--------<br>
 drivers/crypto/qat/qat_sym_session.h         |  1 -<br>
 8 files changed, 14 insertions(+), 161 deletions(-)<br>
<br>
diff --git a/doc/guides/rel_notes/release_25_07.rst b/doc/guides/rel_notes/release_25_07.rst<br>
index 11bb6d34f7..07bfa71700 100644<br>
--- a/doc/guides/rel_notes/release_25_07.rst<br>
+++ b/doc/guides/rel_notes/release_25_07.rst<br>
@@ -87,6 +87,11 @@ New Features<br>
 Removed Items<br>
 -------------<br>
 <br>
+* **Removed ZUC-256 algorithms from Intel QuickAssist Technology (QAT) PMD.**<br>
+<br>
+  Support for ZUC-256 cipher and integrity algorithms was removed from<br>
+  Gen 3 and Gen 5 PMD.<br>
+<br>
 .. This section should contain removed items in this release. Sample format:<br>
 <br>
    * Add a short 1-2 sentence description of the removed item<br>
diff --git a/drivers/common/qat/qat_adf/icp_qat_hw.h b/drivers/common/qat/qat_adf/icp_qat_hw.h<br>
index 1d61a0b833..e929b16df2 100644<br>
--- a/drivers/common/qat/qat_adf/icp_qat_hw.h<br>
+++ b/drivers/common/qat/qat_adf/icp_qat_hw.h<br>
@@ -367,7 +367,7 @@ enum icp_qat_hw_cipher_convert {<br>
 #define ICP_QAT_HW_CHACHAPOLY_ICV_SZ 16<br>
 #define ICP_QAT_HW_CHACHAPOLY_AAD_MAX_LOG 14<br>
 #define ICP_QAT_HW_ZUC_256_KEY_SZ 32<br>
-#define ICP_QAT_HW_ZUC_256_IV_SZ 24<br>
+#define ICP_QAT_HW_ZUC_256_IV_SZ 16<br>
 <br>
 #define ICP_QAT_HW_CIPHER_MAX_KEY_SZ ICP_QAT_HW_AES_256_F8_KEY_SZ<br>
 <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 af664fb9b9..f2ff952482 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c<br>
@@ -204,7 +204,6 @@ qat_sym_crypto_cap_get_gen3(struct qat_cryptodev_private *internals,<br>
         uint32_t legacy_size = sizeof(qat_sym_crypto_legacy_caps_gen3);<br>
         capa_num = size/sizeof(struct rte_cryptodev_capabilities);<br>
         legacy_capa_num = legacy_size/sizeof(struct rte_cryptodev_capabilities);<br>
-       struct rte_cryptodev_capabilities *cap;<br>
 <br>
         if (unlikely(internals->qat_dev->options.legacy_alg))<br>
                 size = size + legacy_size;<br>
@@ -258,14 +257,6 @@ qat_sym_crypto_cap_get_gen3(struct qat_cryptodev_private *internals,<br>
                         continue;<br>
                 }<br>
 <br>
-               if (slice_map & ICP_ACCEL_MASK_ZUC_256_SLICE && (<br>
-                       check_auth_capa(&capabilities[iter],<br>
-                               RTE_CRYPTO_AUTH_ZUC_EIA3) ||<br>
-                       check_cipher_capa(&capabilities[iter],<br>
-                               RTE_CRYPTO_CIPHER_ZUC_EEA3))) {<br>
-                       continue;<br>
-               }<br>
-<br>
                 if (internals->qat_dev->options.has_wireless_slice && (<br>
                         check_auth_capa(&capabilities[iter],<br>
                                 RTE_CRYPTO_AUTH_KASUMI_F9) ||<br>
@@ -279,27 +270,6 @@ qat_sym_crypto_cap_get_gen3(struct qat_cryptodev_private *internals,<br>
 <br>
                 memcpy(addr + curr_capa, capabilities + iter,<br>
                         sizeof(struct rte_cryptodev_capabilities));<br>
-<br>
-               if (internals->qat_dev->options.has_wireless_slice && (<br>
-                       check_auth_capa(&capabilities[iter],<br>
-                               RTE_CRYPTO_AUTH_ZUC_EIA3))) {<br>
-                       cap = addr + curr_capa;<br>
-                       cap->sym.auth.key_size.max = 32;<br>
-                       cap->sym.auth.key_size.increment = 16;<br>
-                       cap->sym.auth.iv_size.max = 25;<br>
-                       cap->sym.auth.iv_size.increment = 1;<br>
-                       cap->sym.auth.digest_size.max = 16;<br>
-                       cap->sym.auth.digest_size.increment = 4;<br>
-               }<br>
-               if (internals->qat_dev->options.has_wireless_slice && (<br>
-                       check_cipher_capa(&capabilities[iter],<br>
-                               RTE_CRYPTO_CIPHER_ZUC_EEA3))) {<br>
-                       cap = addr + curr_capa;<br>
-                       cap->sym.cipher.key_size.max = 32;<br>
-                       cap->sym.cipher.key_size.increment = 16;<br>
-                       cap->sym.cipher.iv_size.max = 25;<br>
-                       cap->sym.cipher.iv_size.increment = 1;<br>
-               }<br>
                 curr_capa++;<br>
         }<br>
         internals->qat_dev_capabilities = internals->capa_mz->addr;<br>
@@ -558,16 +528,8 @@ qat_sym_crypto_set_session_gen3(void *cdev, void *session)<br>
                                 (ctx->qat_cipher_alg ==<br>
                                 ICP_QAT_HW_CIPHER_ALGO_SNOW_3G_UEA2 ||<br>
                                 ctx->qat_cipher_alg ==<br>
-                               ICP_QAT_HW_CIPHER_ALGO_ZUC_3G_128_EEA3 ||<br>
-                               ctx->qat_cipher_alg == ICP_QAT_HW_CIPHER_ALGO_ZUC_256))) {<br>
+                               ICP_QAT_HW_CIPHER_ALGO_ZUC_3G_128_EEA3))) {<br>
                         qat_sym_session_set_ext_hash_flags_gen2(ctx, 0);<br>
-               } else if ((internals->qat_dev->options.has_wireless_slice) &&<br>
-                       (ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_ZUC_256_MAC_32 ||<br>
-                               ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_ZUC_256_MAC_64 ||<br>
-                               ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_ZUC_256_MAC_128) &&<br>
-                               ctx->qat_cipher_alg != ICP_QAT_HW_CIPHER_ALGO_ZUC_256) {<br>
-                       qat_sym_session_set_ext_hash_flags_gen2(ctx,<br>
-                                       1 << ICP_QAT_FW_AUTH_HDR_FLAG_ZUC_EIA3_BITPOS);<br>
                 }<br>
 <br>
                 ret = 0;<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 e1302e9b36..5714420e1e 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c<br>
@@ -113,11 +113,11 @@ static struct rte_cryptodev_capabilities qat_sym_crypto_caps_gen5[] = {<br>
                 CAP_RNG_ZERO(aad_size), CAP_RNG_ZERO(iv_size)),<br>
         QAT_SYM_CIPHER_CAP(ZUC_EEA3,<br>
                 CAP_SET(block_size, 16),<br>
-               CAP_RNG(key_size, 16, 32, 16), CAP_RNG(iv_size, 16, 25, 1)),<br>
+               CAP_RNG(key_size, 16, 16, 0), CAP_RNG(iv_size, 16, 16, 0)),<br>
         QAT_SYM_AUTH_CAP(ZUC_EIA3,<br>
                 CAP_SET(block_size, 16),<br>
-               CAP_RNG(key_size, 16, 32, 16), CAP_RNG(digest_size, 4, 16, 4),<br>
-               CAP_RNG_ZERO(aad_size), CAP_RNG(iv_size, 16, 25, 1)),<br>
+               CAP_RNG(key_size, 16, 16, 0), CAP_RNG(digest_size, 4, 16, 4),<br>
+               CAP_RNG_ZERO(aad_size), CAP_RNG(iv_size, 16, 16, 0)),<br>
         QAT_SYM_CIPHER_CAP(SNOW3G_UEA2,<br>
                 CAP_SET(block_size, 16),<br>
                 CAP_RNG(key_size, 16, 16, 0), CAP_RNG(iv_size, 16, 16, 0)),<br>
@@ -128,32 +128,6 @@ static struct rte_cryptodev_capabilities qat_sym_crypto_caps_gen5[] = {<br>
         RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()<br>
 };<br>
 <br>
-static int<br>
-check_cipher_capa(const struct rte_cryptodev_capabilities *cap,<br>
-               enum rte_crypto_cipher_algorithm algo)<br>
-{<br>
-       if (cap->op != RTE_CRYPTO_OP_TYPE_SYMMETRIC)<br>
-               return 0;<br>
-       if (cap->sym.xform_type != RTE_CRYPTO_SYM_XFORM_CIPHER)<br>
-               return 0;<br>
-       if (cap->sym.cipher.algo != algo)<br>
-               return 0;<br>
-       return 1;<br>
-}<br>
-<br>
-static int<br>
-check_auth_capa(const struct rte_cryptodev_capabilities *cap,<br>
-               enum rte_crypto_auth_algorithm algo)<br>
-{<br>
-       if (cap->op != RTE_CRYPTO_OP_TYPE_SYMMETRIC)<br>
-               return 0;<br>
-       if (cap->sym.xform_type != RTE_CRYPTO_SYM_XFORM_AUTH)<br>
-               return 0;<br>
-       if (cap->sym.auth.algo != algo)<br>
-               return 0;<br>
-       return 1;<br>
-}<br>
-<br>
 static int<br>
 qat_sym_crypto_cap_get_gen5(struct qat_cryptodev_private *internals,<br>
                         const char *capa_memz_name,<br>
@@ -195,14 +169,6 @@ qat_sym_crypto_cap_get_gen5(struct qat_cryptodev_private *internals,<br>
         capabilities = qat_sym_crypto_caps_gen5;<br>
 <br>
         for (i = 0; i < capa_num; i++, iter++) {<br>
-               if (slice_map & ICP_ACCEL_MASK_ZUC_256_SLICE && (<br>
-                       check_auth_capa(&capabilities[iter],<br>
-                               RTE_CRYPTO_AUTH_ZUC_EIA3) ||<br>
-                       check_cipher_capa(&capabilities[iter],<br>
-                               RTE_CRYPTO_CIPHER_ZUC_EEA3))) {<br>
-                       continue;<br>
-               }<br>
-<br>
                 memcpy(addr + curr_capa, capabilities + iter,<br>
                         sizeof(struct rte_cryptodev_capabilities));<br>
                 curr_capa++;<br>
@@ -233,15 +199,8 @@ qat_sym_crypto_set_session_gen5(void *cdev, void *session)<br>
                                 (ctx->qat_cipher_alg ==<br>
                                 ICP_QAT_HW_CIPHER_ALGO_SNOW_3G_UEA2 ||<br>
                                 ctx->qat_cipher_alg ==<br>
-                               ICP_QAT_HW_CIPHER_ALGO_ZUC_3G_128_EEA3 ||<br>
-                               ctx->qat_cipher_alg == ICP_QAT_HW_CIPHER_ALGO_ZUC_256)) {<br>
+                               ICP_QAT_HW_CIPHER_ALGO_ZUC_3G_128_EEA3)) {<br>
                         qat_sym_session_set_ext_hash_flags_gen2(ctx, 0);<br>
-               } else if ((ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_ZUC_256_MAC_32 ||<br>
-                               ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_ZUC_256_MAC_64 ||<br>
-                               ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_ZUC_256_MAC_128) &&<br>
-                               ctx->qat_cipher_alg != ICP_QAT_HW_CIPHER_ALGO_ZUC_256) {<br>
-                       qat_sym_session_set_ext_hash_flags_gen2(ctx,<br>
-                                       1 << ICP_QAT_FW_AUTH_HDR_FLAG_ZUC_EIA3_BITPOS);<br>
                 }<br>
 <br>
                 ret = 0;<br>
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h b/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h<br>
index 846636f57d..1f19c69f88 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h<br>
@@ -881,26 +881,6 @@ qat_sym_convert_op_to_vec_aead(struct rte_crypto_op *op,<br>
         return 0;<br>
 }<br>
 <br>
-static inline void<br>
-zuc256_modify_iv(uint8_t *iv)<br>
-{<br>
-       uint8_t iv_tmp[8];<br>
-<br>
-       iv_tmp[0] = iv[16];<br>
-       /* pack the last 8 bytes of IV to 6 bytes.<br>
-        * discard the 2 MSB bits of each byte<br>
-        */<br>
-       iv_tmp[1] = (((iv[17] & 0x3f) << 2) | ((iv[18] >> 4) & 0x3));<br>
-       iv_tmp[2] = (((iv[18] & 0xf) << 4) | ((iv[19] >> 2) & 0xf));<br>
-       iv_tmp[3] = (((iv[19] & 0x3) << 6) | (iv[20] & 0x3f));<br>
-<br>
-       iv_tmp[4] = (((iv[21] & 0x3f) << 2) | ((iv[22] >> 4) & 0x3));<br>
-       iv_tmp[5] = (((iv[22] & 0xf) << 4) | ((iv[23] >> 2) & 0xf));<br>
-       iv_tmp[6] = (((iv[23] & 0x3) << 6) | (iv[24] & 0x3f));<br>
-<br>
-       memcpy(iv + 16, iv_tmp, 8);<br>
-}<br>
-<br>
 static __rte_always_inline void<br>
 qat_set_cipher_iv(struct icp_qat_fw_la_cipher_req_params *cipher_param,<br>
                 struct rte_crypto_va_iova_ptr *iv_ptr, uint32_t iv_len,<br>
diff --git a/drivers/crypto/qat/dev/qat_sym_pmd_gen1.c b/drivers/crypto/qat/dev/qat_sym_pmd_gen1.c<br>
index 561166203c..8cb85fd8df 100644<br>
--- a/drivers/crypto/qat/dev/qat_sym_pmd_gen1.c<br>
+++ b/drivers/crypto/qat/dev/qat_sym_pmd_gen1.c<br>
@@ -248,9 +248,6 @@ qat_sym_build_op_cipher_gen1(void *in_op, struct qat_sym_session *ctx,<br>
                 return -EINVAL;<br>
         }<br>
 <br>
-       if (ctx->is_zuc256)<br>
-               zuc256_modify_iv(cipher_iv.va);<br>
-<br>
         enqueue_one_cipher_job_gen1(ctx, req, &cipher_iv, ofs, total_len, op_cookie);<br>
 <br>
         qat_sym_debug_log_dump(req, ctx, in_sgl.vec, in_sgl.num, &cipher_iv,<br>
@@ -303,9 +300,6 @@ qat_sym_build_op_auth_gen1(void *in_op, struct qat_sym_session *ctx,<br>
                 return -EINVAL;<br>
         }<br>
 <br>
-       if (ctx->is_zuc256)<br>
-               zuc256_modify_iv(auth_iv.va);<br>
-<br>
         enqueue_one_auth_job_gen1(ctx, req, &digest, &auth_iv, ofs,<br>
                         total_len);<br>
 <br>
@@ -396,11 +390,6 @@ qat_sym_build_op_chain_gen1(void *in_op, struct qat_sym_session *ctx,<br>
                 return -EINVAL;<br>
         }<br>
 <br>
-       if (ctx->is_zuc256) {<br>
-               zuc256_modify_iv(cipher_iv.va);<br>
-               zuc256_modify_iv(auth_iv.va);<br>
-       }<br>
-<br>
         enqueue_one_chain_job_gen1(ctx, req, in_sgl.vec, in_sgl.num,<br>
                         out_sgl.vec, out_sgl.num, &cipher_iv, &digest, &auth_iv,<br>
                         ofs, total_len, cookie);<br>
@@ -527,9 +516,6 @@ qat_sym_dp_enqueue_single_cipher_gen1(void *qp_data, uint8_t *drv_ctx,<br>
         if (unlikely(data_len < 0))<br>
                 return -1;<br>
 <br>
-       if (ctx->is_zuc256)<br>
-               zuc256_modify_iv(iv->va);<br>
-<br>
         enqueue_one_cipher_job_gen1(ctx, req, iv, ofs, (uint32_t)data_len, cookie);<br>
 <br>
         qat_sym_debug_log_dump(req, ctx, data, n_data_vecs, iv,<br>
@@ -591,9 +577,6 @@ qat_sym_dp_enqueue_cipher_jobs_gen1(void *qp_data, uint8_t *drv_ctx,<br>
                 if (unlikely(data_len < 0 || error))<br>
                         break;<br>
 <br>
-               if (ctx->is_zuc256)<br>
-                       zuc256_modify_iv(vec->iv[i].va);<br>
-<br>
                 enqueue_one_cipher_job_gen1(ctx, req, &vec->iv[i], ofs,<br>
                         (uint32_t)data_len, cookie);<br>
                 tail = (tail + tx_queue->msg_size) & tx_queue->modulo_mask;<br>
@@ -644,9 +627,6 @@ qat_sym_dp_enqueue_single_auth_gen1(void *qp_data, uint8_t *drv_ctx,<br>
         if (unlikely(data_len < 0))<br>
                 return -1;<br>
 <br>
-       if (ctx->is_zuc256)<br>
-               zuc256_modify_iv(auth_iv->va);<br>
-<br>
         if (ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL) {<br>
                 null_digest.iova = cookie->digest_null_phys_addr;<br>
                 job_digest = &null_digest;<br>
@@ -716,9 +696,6 @@ qat_sym_dp_enqueue_auth_jobs_gen1(void *qp_data, uint8_t *drv_ctx,<br>
                 if (unlikely(data_len < 0 || error))<br>
                         break;<br>
 <br>
-               if (ctx->is_zuc256)<br>
-                       zuc256_modify_iv(vec->auth_iv[i].va);<br>
-<br>
                 if (ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL) {<br>
                         null_digest.iova = cookie->digest_null_phys_addr;<br>
                         job_digest = &null_digest;<br>
@@ -774,11 +751,6 @@ qat_sym_dp_enqueue_single_chain_gen1(void *qp_data, uint8_t *drv_ctx,<br>
         if (unlikely(data_len < 0))<br>
                 return -1;<br>
 <br>
-       if (ctx->is_zuc256) {<br>
-               zuc256_modify_iv(cipher_iv->va);<br>
-               zuc256_modify_iv(auth_iv->va);<br>
-       }<br>
-<br>
         if (ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL) {<br>
                 null_digest.iova = cookie->digest_null_phys_addr;<br>
                 job_digest = &null_digest;<br>
@@ -849,11 +821,6 @@ qat_sym_dp_enqueue_chain_jobs_gen1(void *qp_data, uint8_t *drv_ctx,<br>
                 if (unlikely(data_len < 0 || error))<br>
                         break;<br>
 <br>
-               if (ctx->is_zuc256) {<br>
-                       zuc256_modify_iv(vec->iv[i].va);<br>
-                       zuc256_modify_iv(vec->auth_iv[i].va);<br>
-               }<br>
-<br>
                 if (ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL) {<br>
                         null_digest.iova = cookie->digest_null_phys_addr;<br>
                         job_digest = &null_digest;<br>
diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c<br>
index 7f370f03fb..8489e26e28 100644<br>
--- a/drivers/crypto/qat/qat_sym_session.c<br>
+++ b/drivers/crypto/qat/qat_sym_session.c<br>
@@ -541,8 +541,6 @@ qat_sym_session_configure_cipher(struct rte_cryptodev *dev,<br>
                         goto error_out;<br>
                 }<br>
                 session->qat_mode = ICP_QAT_HW_CIPHER_ECB_MODE;<br>
-               if (cipher_xform->key.length == ICP_QAT_HW_ZUC_256_KEY_SZ)<br>
-                       session->is_zuc256 = 1;<br>
                 if (internals->qat_dev->options.has_wireless_slice)<br>
                         is_wireless = 1;<br>
                 break;<br>
@@ -989,25 +987,8 @@ qat_sym_session_configure_auth(struct rte_cryptodev *dev,<br>
                                 rte_cryptodev_get_auth_algo_string(auth_xform->algo));<br>
                         return -ENOTSUP;<br>
                 }<br>
-               if (key_length == ICP_QAT_HW_ZUC_3G_EEA3_KEY_SZ)<br>
+               if (key_length == ICP_QAT_HW_ZUC_3G_EEA3_KEY_SZ) {<br>
                         session->qat_hash_alg = ICP_QAT_HW_AUTH_ALGO_ZUC_3G_128_EIA3;<br>
-               else if (key_length == ICP_QAT_HW_ZUC_256_KEY_SZ) {<br>
-                       switch (auth_xform->digest_length) {<br>
-                       case 4:<br>
-                               session->qat_hash_alg = ICP_QAT_HW_AUTH_ALGO_ZUC_256_MAC_32;<br>
-                               break;<br>
-                       case 8:<br>
-                               session->qat_hash_alg = ICP_QAT_HW_AUTH_ALGO_ZUC_256_MAC_64;<br>
-                               break;<br>
-                       case 16:<br>
-                               session->qat_hash_alg = ICP_QAT_HW_AUTH_ALGO_ZUC_256_MAC_128;<br>
-                               break;<br>
-                       default:<br>
-                               QAT_LOG(ERR, "Invalid digest length: %d",<br>
-                                               auth_xform->digest_length);<br>
-                               return -ENOTSUP;<br>
-                       }<br>
-                       session->is_zuc256 = 1;<br>
                 } else {<br>
                         QAT_LOG(ERR, "Invalid key length: %d", key_length);<br>
                         return -ENOTSUP;<br>
@@ -2238,8 +2219,8 @@ int qat_sym_cd_cipher_set(struct qat_sym_session *cdesc,<br>
                 cdesc->qat_proto_flag = QAT_CRYPTO_PROTO_FLAG_ZUC;<br>
         } else if (cdesc->qat_cipher_alg ==<br>
                         ICP_QAT_HW_CIPHER_ALGO_ZUC_256) {<br>
-               if (cdesc->cipher_iv.length != 23 && cdesc->cipher_iv.length != 25) {<br>
-                       QAT_LOG(ERR, "Invalid IV length for ZUC256, must be 23 or 25.");<br>
+               if (cdesc->cipher_iv.length != ICP_QAT_HW_ZUC_256_IV_SZ) {<br>
+                       QAT_LOG(ERR, "Invalid IV length for ZUC256");<br>
                         return -EINVAL;<br>
                 }<br>
                 total_key_size = ICP_QAT_HW_ZUC_256_KEY_SZ +<br>
diff --git a/drivers/crypto/qat/qat_sym_session.h b/drivers/crypto/qat/qat_sym_session.h<br>
index 2ef2066646..0c7b9cc6cf 100644<br>
--- a/drivers/crypto/qat/qat_sym_session.h<br>
+++ b/drivers/crypto/qat/qat_sym_session.h<br>
@@ -147,7 +147,6 @@ struct qat_sym_session {<br>
         uint8_t is_auth;<br>
         uint8_t is_cnt_zero;<br>
         /* Some generations need different setup of counter */<br>
-       uint8_t is_zuc256;<br>
         uint8_t is_wireless;<br>
         uint32_t slice_types;<br>
         struct rte_net_crc *crc;<br>
-- <br>
2.43.0<br>
<br>
</div>
</span></font></div>
</body>
</html>