- 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);