Re: [PATCH v2 net] net: skip offload for NETIF_F_IPV6_CSUM if ipv6 header contains extension
From: Eric Dumazet
Date: Tue Dec 31 2024 - 11:01:11 EST
On Tue, Dec 31, 2024 at 4:24 PM Benoît Monin <benoit.monin@xxxxxx> wrote:
>
> Hi,
>
> 23/12/2024 Eric Dumazet wrote:
> [...]
> >
> > FYI, this patch broke BIG TCP over IPv6.
> >
> > [ 239.698598] Oops skb_network_header_len()=48 skb->len=67210
> > [ 239.704122] skb len=67210 headroom=162 headlen=94 tailroom=0
> > mac=(162,14) mac_len=0 net=(176,48) trans=224
> > shinfo(txflags=0 nr_frags=3 gso(size=1428 type=16 segs=47))
> > csum(0x1000e0 start=224 offset=16 ip_summed=3
> > complete_sw=0 valid=0 level=0)
> > hash(0xadf29e31 sw=0 l4=1) proto=0x86dd pkttype=0 iif=0
> > priority=0x18020 mark=0x0 alloc_cpu=46 vlan_all=0x0
> > encapsulation=0 inner(proto=0x0000, mac=0, net=0,
> > trans=0)\x00, net=0, trans=0)
> > [ 239.704153] dev name=eth2 feat=0x0000030000114ab3
> > [ 239.704155] sk family=10 type=1 proto=6
> [...]
> What is the driver of eth2?
> Since it was working before the patch, it means that the hardware is able to
> deal with variable-sized IP header. So shouldn't its features contains
> NETIF_F_HW_CSUM instead of NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM?
>
Drivers supporting BIG TCP ipv6 remove the hop by hop header before
the packet hits the NIC
commit 1169a64265c4ea7100091228c98d4267f041b0e7
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Fri May 13 11:34:07 2022 -0700
mlx4: support BIG TCP packets
Rationale is explained in https://netdevconf.info/0x15/slides/35/BIG%20TCP.pdf