On Tue, 12 May 2026 17:16:12 +0200 Robin Jarry <[email protected]> wrote:
> Instead of guessing what are the proper header lengths, pass > a rte_net_hdr_lens struct to rte_net_get_ptype and use it to get the > proper header lengths/offsets in tap_verify_csum. > > This allows supporting stacked VLAN/QinQ tags and IPv6 extensions. > > Signed-off-by: Robin Jarry <[email protected]> > --- AI patch review Short summary suitable for replying to the patch: The v4 patch claims to add IPv6 extension header support, but the L4 checksum path is broken for that case. The patch matches both IPV6 and IPV6_EXT in the L3 block and then falls through to rte_ipv6_udptcp_cksum_verify(), which is documented as not supporting extension headers. Concretely, that helper uses ipv6_hdr->proto for the pseudo-header (which is the first extension-header type, not the L4 protocol) and uses ipv6_hdr->payload_len as the raw-cksum length (which over-reads past the L4 data by the size of the extensions). Result: valid TCP/UDP over IPv6+ext packets get tagged RX_L4_CKSUM_BAD, contradicting the commit message. Suggested fix: keep IPV6_EXT in the L3 sanity-check block, but skip L4 verification when l3 == RTE_PTYPE_L3_IPV6_EXT until a helper that handles extension headers exists.

