X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_ip_frag%2Frte_ipv6_fragmentation.c;h=43449970e5ace1b68d53054d310b5e4a51ef8380;hb=4b06b0771f321bd4301075eaff64452261a45a4d;hp=bfe44d435d9ee598fb997dec680b192ed0d16ce0;hpb=6146fbb2fed18787143aaeab0ca257bdc3a17f05;p=dpdk.git diff --git a/lib/librte_ip_frag/rte_ipv6_fragmentation.c b/lib/librte_ip_frag/rte_ipv6_fragmentation.c index bfe44d435d..43449970e5 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 <