From nobody Mon Feb 9 17:13:28 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4f8rrD6tlfz6RkWr; Mon, 09 Feb 2026 17:13:32 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8rrD6NdPz3gWx; Mon, 09 Feb 2026 17:13:32 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770657212; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hv6TT6TnMKWXlYdN9S84zwOS2ALfuicsIVTaADJG9BI=; b=FJVzlIunAb2O6e1lKJe0lus65RmTdcnXc3cgCUgcrJ9zsubjVel8Musyn9nhrocuo3d6+U KhgmNczX2j3p3+fw8jj6fxkp4+d3YQA9swcN3YMxh6ydfCvuI3MaNYSfXnXBsvep7otMcn JH0mO5ZhTU5uACI0v49hX4DZ5GY6LHDf58WesoZWFZVmzwZY49laCYcmgwcGjB/Oi2G9Gd Ok1PDx3K67LRxUH7vOXouNMnpwbf7diwClVIixtlrfPbpYNufQ/q7ejdoGkg+5pYa2PHZc tjoDOkR1qhwWox8mEPvluP28YWwbq1hbGcs7JfAE67Ny9i7KjpcvK1sZcXI9tw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770657212; a=rsa-sha256; cv=none; b=jV81Nt3fz8A37Is4xoDXM7w+BctPuyWcpGR6DeNxNoLtwYvhPL2zvOoM/Whjov/W4OthYO w/m5thPsKBTW7lSobvxXTcFMJoBXM5sDt+oReA3/HjdPMx4pl31mAIykpG0zuUd03vPzPs FzaIH2bXg2WUE1Mko/fDyq3YvOpaWrHfCAHcVpMZeEAUDCP3PCz/7TG55aPOQW9nO/Y+lc Cd3Wik45KUI5RB2CvIjXLBlf3hPRv1uDeHWsMvtjR2nPm6ehu32gUxSLNczDdh2MNOzHso xFiZDXJExTixVwTYiz2zrtpHYf9VXIy0qmCJlYBLWxRnBFNUcAQrE19MY5mVWQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770657212; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hv6TT6TnMKWXlYdN9S84zwOS2ALfuicsIVTaADJG9BI=; b=p9spj3LkfQwyy6Hb0/9VgmJDRjFyqK0BGzb5yGQY/IeGDnFWaQsoSaHACG5Q54bHXVn4wY CCnWW5mZsWlhP69MsUs/bwx1skwI5y1Ml/dDe2R0igfx08e4r9BflV81PISzkHJzpgpH/V glQydis8GzYUwj/FyWt5F+pqTrDsxvy4McRCC1IYNagAuMwqkqpZ897Ur5PwuBP55N+cTu uGhHStbB5nUxK3irt3vQBB0VarLsPoEZm7+Ej5bcKLV3/5LYE5h3Zj9ydfvz+TKihLEA9d /cBok2+IxS6K6UdHoINmahxePyKT+oF8AL87cNIZF1b8deE7d/VmRv3O6t4clA== Received: from smtpclient.apple (unknown [IPv6:2a02:8109:1101:be00:bdf7:fa79:a76b:fa50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: tuexen) by smtp.freebsd.org (Postfix) with ESMTPSA id 4f8rrC4Mkkz1KB; Mon, 09 Feb 2026 17:13:31 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Content-Type: text/plain; charset=us-ascii List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3864.300.41.1.7\)) Subject: Re: git: 7266121ce985 - main - ure: improve transmit checksum offloading From: Michael Tuexen X-Priority: 3 (Normal) In-Reply-To: <1315337813.3441.1770653767432@localhost> Date: Mon, 9 Feb 2026 18:13:28 +0100 Cc: "dev-commits-src-all@freebsd.org" , "src-committers@freebsd.org" , "dev-commits-src-main@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <13A22FE6-C164-466B-9417-7B2BB6CEAA30@FreeBSD.org> References: <6988ef21.3e6ef.54b19aac@gitrepo.freebsd.org> <1315337813.3441.1770653767432@localhost> To: Ronald Klop X-Mailer: Apple Mail (2.3864.300.41.1.7) > On 9. Feb 2026, at 17:16, Ronald Klop wrote: >=20 > Thanks, >=20 > I noticed this last week and was still investigating when I saw this = commit. TCP/IPv6 works fine now. Thanks for letting me know! Best regards Michael >=20 > ure0 on uhub1 > ure0: on usbus1 > ue0: on ure0 >=20 > This is plugged into a Raspberry Pi 5. >=20 > Thanks. >=20 > Ronald. >=20 > Van: Michael Tuexen > Datum: zondag, 8 februari 2026 21:16 > Aan: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, = dev-commits-src-main@FreeBSD.org > Onderwerp: git: 7266121ce985 - main - ure: improve transmit checksum = offloading > The branch main has been updated by tuexen: >=20 > URL: = https://cgit.FreeBSD.org/src/commit/?id=3D7266121ce985a1a895441357c20b0e9d= 56b4e5f5 >=20 > commit 7266121ce985a1a895441357c20b0e9d56b4e5f5 > Author: Michael Tuexen > AuthorDate: 2026-02-08 20:11:18 +0000 > Commit: Michael Tuexen > CommitDate: 2026-02-08 20:16:20 +0000 >=20 > ure: improve transmit checksum offloading > =20 > Apparently, the name of the variable l4off was correct. Providing = the > offset to the TCP or UDP header allows the transmit checksum = offload to > work for TCP/IPv4, TCP/IPv6, UDP/IPv4, and UDP/IPv6. > =20 > Reported by: vishwin > Reviewed by: vishwin > MFC after: 1 week > Differential Revision: https://reviews.freebsd.org/D55187 > --- > sys/dev/usb/net/if_ure.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) >=20 > diff --git a/sys/dev/usb/net/if_ure.c b/sys/dev/usb/net/if_ure.c > index 3dea88eb10f1..92160fe9b1d2 100644 > --- a/sys/dev/usb/net/if_ure.c > +++ b/sys/dev/usb/net/if_ure.c > @@ -24,6 +24,8 @@ > * SUCH DAMAGE. > */ > =20 > +#include "opt_inet6.h" > + > #include > #include > #include > @@ -44,6 +46,10 @@ > /* needed for checksum offload */ > #include > #include > +#ifdef INET6 > +#include > +#include > +#endif > =20 > #include > #include > @@ -62,8 +68,6 @@ > =20 > #include "miibus_if.h" > =20 > -#include "opt_inet6.h" > - > #ifdef USB_DEBUG > static int ure_debug =3D 0; > =20 > @@ -2179,7 +2183,6 @@ ure_txcsum(struct mbuf *m, int caps, uint32_t = *regout) > struct ip ip; > struct ether_header *eh; > int flags; > - uint32_t data; > uint32_t reg; > int l3off, l4off; > uint16_t type; > @@ -2214,10 +2217,9 @@ ure_txcsum(struct mbuf *m, int caps, uint32_t = *regout) > if (flags & CSUM_IP) > reg |=3D URE_TXPKT_IPV4_CS; > =20 > - data =3D m->m_pkthdr.csum_data; > if (flags & (CSUM_IP_TCP | CSUM_IP_UDP)) { > m_copydata(m, l3off, sizeof ip, (caddr_t)&ip); > - l4off =3D l3off + (ip.ip_hl << 2) + data; > + l4off =3D l3off + (ip.ip_hl << 2); > if (__predict_false(l4off > URE_L4_OFFSET_MAX)) > return (1); > =20 > @@ -2230,7 +2232,9 @@ ure_txcsum(struct mbuf *m, int caps, uint32_t = *regout) > } > #ifdef INET6 > else if (flags & (CSUM_IP6_TCP | CSUM_IP6_UDP)) { > - l4off =3D l3off + data; > + l4off =3D ip6_lasthdr(m, l3off, IPPROTO_IPV6, NULL); > + if (__predict_false(l4off < 0)) > + return (1); > if (__predict_false(l4off > URE_L4_OFFSET_MAX)) > return (1); > =20 > =20 > =20