+#if IMB_VERSION(0, 54, 0) < IMB_VERSION_NUM
+ } else if (session->op == AESNI_GMAC_OP_GENERATE) {
+ qp->ops[session->key].gmac_init(&session->gdata_key,
+ &qp->gdata_ctx,
+ iv_ptr,
+ session->iv.length);
+
+ qp->ops[session->key].gmac_update(&session->gdata_key,
+ &qp->gdata_ctx, src,
+ (uint64_t)part_len);
+ total_len = data_length - part_len;
+
+ while (total_len) {
+ m_src = m_src->next;
+
+ RTE_ASSERT(m_src != NULL);
+
+ src = rte_pktmbuf_mtod(m_src, uint8_t *);
+ part_len = (m_src->data_len < total_len) ?
+ m_src->data_len : total_len;
+
+ qp->ops[session->key].gmac_update(&session->gdata_key,
+ &qp->gdata_ctx, src,
+ (uint64_t)part_len);
+ total_len -= part_len;
+ }
+
+ if (session->req_digest_length != session->gen_digest_length)
+ tag = qp->temp_digest;
+ else
+ tag = sym_op->auth.digest.data;
+
+ qp->ops[session->key].gmac_finalize(&session->gdata_key,
+ &qp->gdata_ctx,
+ tag,
+ session->gen_digest_length);
+ } else { /* AESNI_GMAC_OP_VERIFY */
+ qp->ops[session->key].gmac_init(&session->gdata_key,
+ &qp->gdata_ctx,
+ iv_ptr,
+ session->iv.length);
+
+ qp->ops[session->key].gmac_update(&session->gdata_key,
+ &qp->gdata_ctx, src,
+ (uint64_t)part_len);
+ total_len = data_length - part_len;
+
+ while (total_len) {
+ m_src = m_src->next;
+
+ RTE_ASSERT(m_src != NULL);
+
+ src = rte_pktmbuf_mtod(m_src, uint8_t *);
+ part_len = (m_src->data_len < total_len) ?
+ m_src->data_len : total_len;
+
+ qp->ops[session->key].gmac_update(&session->gdata_key,
+ &qp->gdata_ctx, src,
+ (uint64_t)part_len);
+ total_len -= part_len;
+ }
+
+ tag = qp->temp_digest;
+
+ qp->ops[session->key].gmac_finalize(&session->gdata_key,
+ &qp->gdata_ctx,
+ tag,
+ session->gen_digest_length);
+ }
+#else