ip_frag: fix IPv6 when MTU sizes not aligned to 8 bytes
authorChas Williams <chas3@att.com>
Tue, 27 Nov 2018 04:56:13 +0000 (23:56 -0500)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 19 Dec 2018 21:40:08 +0000 (22:40 +0100)
commit7a838c8798a93fc4b0eb305c4c7d61da54875a14
treeee7c1a48ee82a9c46ec73b1b886800a8ecf249a1
parent70a19dc938baae4158ac951b7058c83c5188b940
ip_frag: fix IPv6 when MTU sizes not aligned to 8 bytes

The same issue was fixed on for the ipv4 version of this routine in
commit 8d4d3a4f7337 ("ip_frag: handle MTU sizes not aligned to 8 bytes").
Briefly, the size of an ipv6 header is always 40 bytes.  With an MTU of
1500, this will never produce a multiple of 8 bytes for the frag_size
and this routine can never succeed. Since RTE_ASSERTS are disabled by
default, this failure is typically ignored.

To fix this, round down to the nearest 8 bytes and use this when
producing the fragments.

Fixes: 0aa31d7a5929 ("ip_frag: add IPv6 fragmentation support")
Cc: stable@dpdk.org
Signed-off-by: Chas Williams <chas3@att.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/librte_ip_frag/rte_ip_frag.h
lib/librte_ip_frag/rte_ipv6_fragmentation.c