Date: Sat, 31 Oct 2020 16:06:40 +0100 From: =?UTF-8?Q?Carsten_B=c3=a4cker?= <carbaecker@gmx.de> To: Kristof Provost <kp@FreeBSD.org>, John-Mark Gurney <jmg@funkthat.com> Cc: freebsd-hackers@freebsd.org, freebsd-arm@freebsd.org Subject: Re: Problem with checksum offloading on RPi3 (PF + Jails involved) Message-ID: <f2a38b96-917b-c723-f44f-043abe6c4629@gmx.de> In-Reply-To: <55713894-A896-4F12-ABB9-93DFEB2F16B9@FreeBSD.org> References: <748edc3d-4ef7-c4de-291f-7c0b460a6052@gmx.de> <D8CE4762-4D94-47C7-A8D1-6C537766813B@FreeBSD.org> <5130ee46-5832-d4df-d774-c6bd32e10b30@gmx.de> <A3890336-BE8F-438C-8C3E-7B21FB729FCA@FreeBSD.org> <20201029213622.GM31099@funkthat.com> <55713894-A896-4F12-ABB9-93DFEB2F16B9@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------582D89986A452AA4BF8553AD Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Am 29.10.2020 um 22:39 schrieb Kristof Provost: > > On 29 Oct 2020, at 22:36, John-Mark Gurney wrote: > > Kristof Provost wrote this message on Thu, Oct 29, 2020 at 21:30 > +0100: > > On 29 Oct 2020, at 16:30, Carsten B=C3=A4cker wrote: > > Sure, i am willing to help. > > Device is a Raspberry Pi 3B (not +), using the > onboard-ethernet. > I attached a bunch of information. > > Configuration is stripped down to the minimum required to > reproduce > the > problem. > > Okay, so that???s an SMC2 LAN9514_ETH device. > That???s the dev/usb/net/if_smsc.c driver. > > However, before we dig into that driver we should make sure > that we???re > really looking at a checksum problem. > It???s entirely normal for TX checksums to be incorrect when > logged on > the sending host itself (if the hardware does checksum > offloading the > checksum in the packet sent to the MAC is incorrect, and left > to the > hardware to fix). > > So, can you confirm that the `"[bad udp cksum 0xe58a -> > 0x482d!]` you > reported was on an inbound packet? And let???s be safe: try to > capture > packets on a different machine. That???ll give us the true > packet, after > the hardware has done checksum calculations. > > One interesting point is that the smsc driver claims to not do TX > offload, > and a brief check shows that it doesn't allow a user to set the > TXCSUM. > > It does seem to do RX offload, and the comments in the driver suggest > some .. ahem, creative hardware behaviour: > > |/* The checksum appears to be simplistically calculated * over the > udp/tcp header and data up to the end of the * eth frame. Which means > if the eth frame is padded * the csum calculation is incorrectly > performed over * the padding bytes as well. Therefore to be safe we * > ignore the H/W csum on frames less than or equal to * 64 bytes. * * > Ignore H/W csum for non-IPv4 packets. */ | > > It=E2=80=99s not impossible that there=E2=80=99s some more issues like t= hat in the > hardware, or even that there are different chip revisions out there. > > That also matches up with |ifconfig ue0 -rxcsum| fixing things. > > Best regards, > Kristof > Hello again, just gave it another try, using "ping heise.de" (twice) from within the jail. This is the output of tcpdump: # tcpdump -i pflog0 -vv tcpdump: listening on pflog0, link-type PFLOG (OpenBSD pflog file), capture size 262144 bytes 14:06:04.293996 IP (tos 0x0, ttl 64, id 19576, offset 0, flags [none], proto UDP (17), length 54) =C2=A0=C2=A0=C2=A0 PC-192-168-178-3.fritz.box.52421 > fritz.box.domain: [= bad udp cksum 0xe589 -> 0x0a2c!] 64654+ A? heise.de. (26) Netstat: # netstat -s -p udp | grep checksum =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 4 with bad checksum =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 0 with no checksum Packet-capture from the router is attached. Best regards, Carsten --------------582D89986A452AA4BF8553AD Content-Type: application/octet-stream; name="rxcsum.pcap" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rxcsum.pcap" NM2yoQIABAAAAAAAAAAAAAAIAABpAAAAinydXzNVBwBeAAAAXgAAAAAAAAAAAAAAiAMsAOAo beXM8obHpkdLw+AobeXM72A0uCfrVX5wAACqqgMAAAAIAEUAADZ8AAAAQBEZYcCosgPAqLIB 0iUANQAiIdHfiQEAAAEAAAAAAAAFaGVpc2UCZGUAAAEAAYp8nV/7XAcAbgAAAG4AAAAAAAAA AAAAAIgDMAGGx6ZHS8PgKG3lzPK4J+tVfnDAXOAobeXM7wAAqqoDAAAACABFAABGOBAAAEAR XUHAqLIBwKiyAwA10iUAMmdi34mBgAABAAEAAAAABWhlaXNlAmRlAAABAAHADAABAAEAASgF AATBY5BQ --------------582D89986A452AA4BF8553AD--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f2a38b96-917b-c723-f44f-043abe6c4629>