]> git.droids-corp.org - dpdk.git/commitdiff
examples/l2fwd-crypto: fix digest with AEAD algo
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Mon, 16 Jul 2018 08:26:16 +0000 (09:26 +0100)
committerPablo de Lara <pablo.de.lara.guarch@intel.com>
Mon, 23 Jul 2018 23:48:10 +0000 (01:48 +0200)
When performing authentication verification (both for AEAD algorithms,
such as AES-GCM, or for authentication algorithms, such as SHA1-HMAC),
the digest address is calculated based on the packet size and the
algorithm used (substracting digest size and IP header to the packet size).

However, for AEAD algorithms, this was not calculated correctly,
since the digest size was not being substracted.

Bugzilla ID: 44
Fixes: 2661f4fbe93d ("examples/l2fwd-crypto: add AEAD parameters")
Cc: stable@dpdk.org
Reported-by: Ankur Dwivedi <ankur.dwivedi@cavium.com>
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Tested-by: Ankur Dwivedi <ankur.dwivedi@cavium.com>
examples/l2fwd-crypto/main.c

index 9d6bb785718429ed3ae91adb8b7b8a96b7caad0a..9ac06a697d9d6022447ffbd2124e30ed77591b1b 100644 (file)
@@ -408,7 +408,7 @@ l2fwd_simple_crypto_enqueue(struct rte_mbuf *m,
        /* Zero pad data to be crypto'd so it is block aligned */
        data_len  = rte_pktmbuf_data_len(m) - ipdata_offset;
 
-       if (cparams->do_hash && cparams->hash_verify)
+       if ((cparams->do_hash || cparams->do_aead) && cparams->hash_verify)
                data_len -= cparams->digest_length;
 
        if (cparams->do_cipher) {