lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <3259970.44csPzL39Z@pc> Date: Thu, 05 Oct 2023 19:25:53 +0200 From: Henrik Lindström <lindstrom515@...il.com> To: Florian Westphal <fw@...len.de> Cc: Florian Westphal <fw@...len.de>, davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org, pabeni@...hat.com, netdev@...r.kernel.org, linux-kernel@...r.kernel.org Subject: Re: macvtap performs IP defragmentation, causing MTU problems for virtual machines On onsdag 4 oktober 2023 10:00:37 CEST Florian Westphal wrote: > Can you submit this formally, with proper changelog and Signed-off-by? > See scripts/checkpatch.pl in the kernel tree. Sure, i can give it a shot. How do i properly credit you if i submit your patch with some small changes of my own? > You could also mention in changelog that this is ipv4 only because > ipv6 already considers the interface index during reassembly. Interesting. I've been trying to understand the code and it seems like ipv6 does defragmentation per-interface, while ipv4 does it "per-vrf" (correct me if i'm wrong). Is there any reason for this difference? I also did some more testing with the diff from my previous mail. It looks like the problem remains for interfaces under vrfs. I think simply doing the bcast/mcast check first fixes that though, something like this: if (skb->pkt_type == PACKET_BROADCAST || skb->pkt_type == PACKET_MULTICAST) { if (dev) return dev->ifindex; } return l3mdev_master_ifindex_rcu(dev); Does that look reasonable? The idea being that bcast/mcast packets are always defragmented per-interface, and unicast packets always "per-vrf". Thanks, Henrik
Powered by blists - more mailing lists