[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