dpdk: add support for DPDK 17.11
[vpp.git] / src / plugins / dpdk / ipsec / esp_decrypt.c
index 6de1f00..6815f53 100644 (file)
@@ -170,13 +170,7 @@ dpdk_esp_decrypt_node_fn (vlib_main_t * vm,
              cipher_alg = vec_elt_at_index (dcm->cipher_algs, sa0->crypto_alg);
              auth_alg = vec_elt_at_index (dcm->auth_algs, sa0->integ_alg);
 
-#if DPDK_NO_AEAD
-             is_aead = (sa0->crypto_alg == IPSEC_CRYPTO_ALG_AES_GCM_128 ||
-                           sa0->crypto_alg == IPSEC_CRYPTO_ALG_AES_GCM_192 ||
-                           sa0->crypto_alg == IPSEC_CRYPTO_ALG_AES_GCM_256);
-#else
              is_aead = (cipher_alg->type == RTE_CRYPTO_SYM_XFORM_AEAD);
-#endif
              if (is_aead)
                auth_alg = cipher_alg;
 
@@ -271,8 +265,7 @@ dpdk_esp_decrypt_node_fn (vlib_main_t * vm,
 
          u32 cipher_off, cipher_len;
          u32 auth_len = 0, aad_size = 0;
-         u8 *aad = NULL, *digest = NULL;
-         u64 digest_paddr = 0;
+         u8 *aad = NULL;
 
           u8 *iv = (u8 *) (esp0 + 1);
 
@@ -281,7 +274,9 @@ dpdk_esp_decrypt_node_fn (vlib_main_t * vm,
          cipher_off = sizeof (esp_header_t) + iv_size;
          cipher_len = payload_len;
 
-          digest = vlib_buffer_get_tail (b0) - trunc_size;
+          u8 *digest = vlib_buffer_get_tail (b0) - trunc_size;
+         u64 digest_paddr =
+           mb0->buf_physaddr + digest - ((u8 *) mb0->buf_addr);
 
          if (!is_aead && cipher_alg->alg == RTE_CRYPTO_CIPHER_AES_CBC)
            clib_memcpy(icb, iv, 16);
@@ -290,11 +285,7 @@ dpdk_esp_decrypt_node_fn (vlib_main_t * vm,
              u32 *_iv = (u32 *) iv;
 
              crypto_set_icb (icb, sa0->salt, _iv[0], _iv[1]);
-#if DPDK_NO_AEAD
-             iv_size = 16;
-#else
              iv_size = 12;
-#endif
            }
 
           if (is_aead)
@@ -469,13 +460,7 @@ dpdk_esp_decrypt_post_node_fn (vlib_main_t * vm,
 
          cipher_alg = vec_elt_at_index (dcm->cipher_algs, sa0->crypto_alg);
          auth_alg = vec_elt_at_index (dcm->auth_algs, sa0->integ_alg);
-#if DPDK_NO_AEAD
-         is_aead = (sa0->crypto_alg == IPSEC_CRYPTO_ALG_AES_GCM_128 ||
-                       sa0->crypto_alg == IPSEC_CRYPTO_ALG_AES_GCM_192 ||
-                       sa0->crypto_alg == IPSEC_CRYPTO_ALG_AES_GCM_256);
-#else
          is_aead = cipher_alg->type == RTE_CRYPTO_SYM_XFORM_AEAD;
-#endif
          if (is_aead)
            auth_alg = cipher_alg;