On Mon, 5 Apr 2021 18:42:53 +0200 Andrew Lunn wrote: > > But was is still a bit strange to me is that it seems like the stmmac driver > > behaves different than other ethernet drivers which do not drop UDP packets > > with zero checksums when rx checksumming is enabled. > > To answer that, you need somebody with more knowledge of the stmmac > hardware.
+1 stmmac maintainers could you advise? > It is actually quite hard to do. It means you need to parse > more of the frame to determine if the frame contains a VXLAN > encapsulated frame. Probably the stmmac cannot do that. It sees the > checksum is wrong and drops the packet. > > Have you looked at where it actually drops the packet? > Is it one of > > https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/stmicro/stmmac/norm_desc.c#L95 > > or > > https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/stmicro/stmmac/enh_desc.c#L87 > > It could be, you need to see if the checksum has fail, then check if > the checksum is actually zero, and then go deeper into the frame and > check if it is a vxlan frame. It could be the linux software checksum > code knows about this vxlan exception, so you can just run that before > deciding to drop the frame. To be clear the expectation is that devices / drivers will only drop packets on L2 / FCS errors. If L3 or L4 csum is incorrect the packet should be passed up the stack and kernel will handle it how it sees fit.