[dpdk-stable] patch 'examples/l2fwd-crypto: fix padding' has been queued to stable release 16.11.1
Yuanhan Liu
yuanhan.liu at linux.intel.com
Thu Feb 16 09:01:38 CET 2017
It introduced a build error. I will drop it. If you think this patch
is still needed, please do the backport.
examples/l2fwd-crypto/main.c: In function ‘l2fwd_simple_crypto_enqueue’:
examples/l2fwd-crypto/main.c:467:8: error: ‘RTE_CRYPTO_CIPHER_DES_CBC’ undeclared (first use in this function)
case RTE_CRYPTO_CIPHER_DES_CBC:
^
compilation terminated due to -Wfatal-errors.
Thanks!
--yliu
On Wed, Feb 15, 2017 at 02:26:40PM +0800, Yuanhan Liu wrote:
> Hi,
>
> FYI, your patch has been queued to stable release 16.11.1
>
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable
> yet. It will be pushed if I get no objections before 02/18/17.
> So please shout if anyone has objections.
>
> Thanks.
>
> --yliu
>
> ---
> >From b672755e7af6f234c40e761335ebee2a2d78d1d2 Mon Sep 17 00:00:00 2001
> From: Pablo de Lara <pablo.de.lara.guarch at intel.com>
> Date: Thu, 9 Feb 2017 12:27:45 +0000
> Subject: [PATCH] examples/l2fwd-crypto: fix padding
>
> [ upstream commit 5839fd20e7323850f3a411d9b5642d914fa2d3f0 ]
>
> L2fwd-crypto app was padding an incoming buffer,
> to be aligned with the algorithm block size, in all cases.
> This was not the right approach, as padding is only necessary
> when using block cipher algorithms, such as AES-CBC.
> In case of using a stream cipher algorithm, such as SNOW3G UEA2,
> there is no need to include padding and increase the buffer size.
>
> Fixes: 387259bd6c67 ("examples/l2fwd-crypto: add sample application")
>
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
> Acked-by: Fan Zhang <roy.fan.zhang at intel.com>
> ---
> examples/l2fwd-crypto/main.c | 36 +++++++++++++++++++++++++++---------
> 1 file changed, 27 insertions(+), 9 deletions(-)
>
> diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c
> index bc88be5..62ee933 100644
> --- a/examples/l2fwd-crypto/main.c
> +++ b/examples/l2fwd-crypto/main.c
> @@ -432,7 +432,8 @@ l2fwd_simple_crypto_enqueue(struct rte_mbuf *m,
> struct ether_hdr *eth_hdr;
> struct ipv4_hdr *ip_hdr;
>
> - unsigned ipdata_offset, pad_len, data_len;
> + uint32_t ipdata_offset, data_len;
> + uint32_t pad_len = 0;
> char *padding;
>
> eth_hdr = rte_pktmbuf_mtod(m, struct ether_hdr *);
> @@ -455,16 +456,33 @@ l2fwd_simple_crypto_enqueue(struct rte_mbuf *m,
> if (cparams->do_hash && cparams->hash_verify)
> data_len -= cparams->digest_length;
>
> - pad_len = data_len % cparams->block_size ? cparams->block_size -
> - (data_len % cparams->block_size) : 0;
> + if (cparams->do_cipher) {
> + /*
> + * Following algorithms are block cipher algorithms,
> + * and might need padding
> + */
> + switch (cparams->cipher_algo) {
> + case RTE_CRYPTO_CIPHER_AES_CBC:
> + case RTE_CRYPTO_CIPHER_AES_ECB:
> + case RTE_CRYPTO_CIPHER_DES_CBC:
> + case RTE_CRYPTO_CIPHER_3DES_CBC:
> + case RTE_CRYPTO_CIPHER_3DES_ECB:
> + if (data_len % cparams->block_size)
> + pad_len = cparams->block_size -
> + (data_len % cparams->block_size);
> + break;
> + default:
> + pad_len = 0;
> + }
>
> - if (pad_len) {
> - padding = rte_pktmbuf_append(m, pad_len);
> - if (unlikely(!padding))
> - return -1;
> + if (pad_len) {
> + padding = rte_pktmbuf_append(m, pad_len);
> + if (unlikely(!padding))
> + return -1;
>
> - data_len += pad_len;
> - memset(padding, 0, pad_len);
> + data_len += pad_len;
> + memset(padding, 0, pad_len);
> + }
> }
>
> /* Set crypto operation data parameters */
> --
> 1.9.0
More information about the stable
mailing list