* [dpdk-dev] [PATCH] ip_frag: fix IPv6 fragment size calculation
@ 2019-06-06 11:33 Konstantin Ananyev
2019-06-27 16:06 ` Thomas Monjalon
0 siblings, 1 reply; 2+ messages in thread
From: Konstantin Ananyev @ 2019-06-06 11:33 UTC (permalink / raw)
To: dev; +Cc: akhil.goyal, Konstantin Ananyev, stable
Take into account IPv6 fragment extension header when
calculating data size for each fragment.
Fixes: 7a838c8798a9 ("ip_frag: fix IPv6 when MTU sizes not aligned to 8 bytes")
Fixes: 0aa31d7a5929 ("ip_frag: add IPv6 fragmentation support")
Cc: stable@dpdk.org
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
lib/librte_ip_frag/rte_ipv6_fragmentation.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/librte_ip_frag/rte_ipv6_fragmentation.c b/lib/librte_ip_frag/rte_ipv6_fragmentation.c
index bfe44d435..43449970e 100644
--- a/lib/librte_ip_frag/rte_ipv6_fragmentation.c
+++ b/lib/librte_ip_frag/rte_ipv6_fragmentation.c
@@ -83,8 +83,10 @@ rte_ipv6_fragment_packet(struct rte_mbuf *pkt_in,
* Ensure the IP payload length of all fragments (except the
* the last fragment) are a multiple of 8 bytes per RFC2460.
*/
- frag_size = RTE_ALIGN_FLOOR(mtu_size - sizeof(struct rte_ipv6_hdr),
- RTE_IPV6_EHDR_FO_ALIGN);
+
+ frag_size = mtu_size - sizeof(struct rte_ipv6_hdr) -
+ sizeof(struct ipv6_extension_fragment);
+ frag_size = RTE_ALIGN_FLOOR(frag_size, RTE_IPV6_EHDR_FO_ALIGN);
/* Check that pkts_out is big enough to hold all fragments */
if (unlikely (frag_size * nb_pkts_out <
--
2.17.1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-06-27 16:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-06 11:33 [dpdk-dev] [PATCH] ip_frag: fix IPv6 fragment size calculation Konstantin Ananyev
2019-06-27 16:06 ` Thomas Monjalon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).