From nobody Tue Sep 2 20:40:33 2025 X-Original-To: dev-commits-src-main@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 4cGd0x6Yl2z65PWm; Tue, 02 Sep 2025 20:40:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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 "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cGd0x6062z3wFC; Tue, 02 Sep 2025 20:40:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1756845633; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EsnEp9aHN69qaNv/2OSFnfUp7zdRjLBMZGXGL8HQNGg=; b=Z1tnCJUnAN+p400/2us3cyn5VIqeD+l8ONh75syL0rsWQyjX4JCSpWI58EmIz7rpksxsls 5CEQgDbdumSuA5a93FwEIrEizHYL1dgiAramyU+JiX8ADxb7UBNPNN9OD2uCNKU+2Cn/Rz JL6meM/C8KFKKnyjnGlljzuFWIwvaPVB/I85RQpyAuysCPtvJ4VvqhFbwyC/C1nFYEIlBr EGQeReaSwk291S8xpB3s2HDDAEDwaSCkt99DdsvS0XD8Q2rdyEmFzT0LYOQZ6x7IdkyKZK CUO1SnEprNCBqEt5XLSV3a1ZHc9UAtcJic3HjhtV7W1EhHtnHlLJrNqR7FKpXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1756845633; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EsnEp9aHN69qaNv/2OSFnfUp7zdRjLBMZGXGL8HQNGg=; b=R587Ijf1OTImYAHRb+iCoDBGJAeN9aN9JGhQg5hy7IaRutb02Jqbh79irG7W9LtgjVrtrt f7YeCmBV/XHbU+TZTmD2vdg4KqAWGfBH7azdeiCqJk+y+ItXujMrcNl0co7LYf4dd1MZ4t QSk0k2FUpnmtaUGziZ9/PTUs3blGiTgArNQeHGHX7hqahUVbISx9r9Cujrkhl2vcPFI0KQ DoNouhOeD7CpJkKdeQzGafHRc7xGOAjfB3RPyENurhVGE84M9GhRzD0P3ivoT1MtTWbpAx m8yP/gzlfnM5u79Y7Gd/Cwy0urKBYAiEJhocTJvqyiaDpLpdtwMmtSoIm4Zo/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1756845633; a=rsa-sha256; cv=none; b=hfIQXbDXv/dtrzAO8htoqfxdSAdBhDs8U2r918GbyFV/ZMXhqJovqUOOmFE55sejYW42e7 LxLlqcHwlybD2txmT4DhVQ8OV/rO3R92QhFz3fMlSH2x1VcPTwFexWF0hpCjbROoHhpGff 3sfntKftP4lVQraetToQGRBvf0xx2Nyb9DYxhVFRHydOavuMpgMUwALVPsKDguOkPUehh0 YGkHBISrd3cUJ5B3GGoHs98HyErFcD95zdKVsxfOa1KSWC1Y7ZDa1vS2R+U2v1tiINxUOO Djen5ac0ax1S8t6kPdgZMWpDBx5PWYNz8Z3YHieX84w4LYLlwYuw6K+PcLuk1w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4cGd0x57SJz128n; Tue, 02 Sep 2025 20:40:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 582KeXH4078963; Tue, 2 Sep 2025 20:40:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 582KeXjT078960; Tue, 2 Sep 2025 20:40:33 GMT (envelope-from git) Date: Tue, 2 Sep 2025 20:40:33 GMT Message-Id: <202509022040.582KeXjT078960@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michael Tuexen Subject: git: 5240eab94e6e - main - Revert "epair: add support for checksum offloading" List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5240eab94e6e218aaaa4221da5cc0d4a10c844fd Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=5240eab94e6e218aaaa4221da5cc0d4a10c844fd commit 5240eab94e6e218aaaa4221da5cc0d4a10c844fd Author: Michael Tuexen AuthorDate: 2025-09-02 20:39:32 +0000 Commit: Michael Tuexen CommitDate: 2025-09-02 20:39:32 +0000 Revert "epair: add support for checksum offloading" This reverts commit e4ea162509e400340a2bc3e755071a92f3465e2d. kp reports failures related to pf tests. Revert until we understand what is going wrong. --- share/man/man4/epair.4 | 24 +------------------- sys/net/if_epair.c | 61 ++------------------------------------------------ 2 files changed, 3 insertions(+), 82 deletions(-) diff --git a/share/man/man4/epair.4 b/share/man/man4/epair.4 index 0014836b01ea..342b15b5612a 100644 --- a/share/man/man4/epair.4 +++ b/share/man/man4/epair.4 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 2, 2025 +.Dd August 12, 2025 .Dt EPAIR 4 .Os .Sh NAME @@ -108,28 +108,6 @@ As with any other Ethernet interface, can have a .Xr vlan 4 configured on top of it. -.Pp -The -.Nm -has RXCSUM and RXCSUM6 enabled because it may receive a packet where the -checksum has already been validated by a physical interface. -The -.Nm -supports TXCSUM and TXCSUM6 for TCP and UDP, but only by forwarding the order -to compute the checksum. -Thus, when using an -.Nm -interface, a TCP or UDP sender can offload checksum computation -to a physical interface. -Note that, in case the packet does not leave the host, the checksum is -unnecessary and will be ignored if offloaded. -TXCSUM and TXCSUM6 are synchronized between the -.Nm -interface pair (i.e., enabling/disabling the capability on one end -enables/disables it on the other end). -In case one end is in a bridge and the bridge disabled TXCSUM or TXCSUM6, -this avoids a sender to send packets with checksum offloading into the -bridge by using the other end. .Sh SEE ALSO .Xr ioctl 2 , .Xr altq 4 , diff --git a/sys/net/if_epair.c b/sys/net/if_epair.c index fbffa8f359a0..581c2434b8fb 100644 --- a/sys/net/if_epair.c +++ b/sys/net/if_epair.c @@ -69,7 +69,6 @@ #include #include #include -#include #include #ifdef RSS #include @@ -435,21 +434,6 @@ epair_media_status(struct ifnet *ifp __unused, struct ifmediareq *imr) imr->ifm_active = IFM_ETHER | IFM_10G_T | IFM_FDX; } -/* - * Update ifp->if_hwassist according to the current value of ifp->if_capenable. - */ -static void -epair_caps_changed(struct ifnet *ifp) -{ - uint64_t hwassist = 0; - - if (ifp->if_capenable & IFCAP_TXCSUM) - hwassist |= CSUM_IP_TCP | CSUM_IP_UDP; - if (ifp->if_capenable & IFCAP_TXCSUM_IPV6) - hwassist |= CSUM_IP6_TCP | CSUM_IP6_UDP; - ifp->if_hwassist = hwassist; -} - static int epair_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) { @@ -477,44 +461,6 @@ epair_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) error = 0; break; - case SIOCGIFCAP: - ifr->ifr_reqcap = ifp->if_capabilities; - ifr->ifr_curcap = ifp->if_capenable; - error = 0; - break; - case SIOCSIFCAP: - /* - * Enable/disable capabilities as requested, besides - * IFCAP_RXCSUM(_IPV6), which always remain enabled. - * Incoming packets may have the mbuf flag CSUM_DATA_VALID set. - * Without IFCAP_RXCSUM(_IPV6), this flag would have to be - * removed, which does not seem helpful. - */ - ifp->if_capenable = ifr->ifr_reqcap | IFCAP_RXCSUM | - IFCAP_RXCSUM_IPV6; - epair_caps_changed(ifp); - /* - * If IFCAP_TXCSUM(_IPV6) has been changed, change it on the - * other epair interface as well. - * A bridge disables IFCAP_TXCSUM(_IPV6) when adding one epair - * interface if another interface in the bridge has it disabled. - * In that case this capability needs to be disabled on the - * other epair interface to avoid sending packets in the bridge - * that rely on this capability. - */ - sc = ifp->if_softc; - if ((ifp->if_capenable ^ sc->oifp->if_capenable) & - (IFCAP_TXCSUM | IFCAP_TXCSUM_IPV6)) { - sc->oifp->if_capenable &= - ~(IFCAP_TXCSUM | IFCAP_TXCSUM_IPV6); - sc->oifp->if_capenable |= ifp->if_capenable & - (IFCAP_TXCSUM | IFCAP_TXCSUM_IPV6); - epair_caps_changed(sc->oifp); - } - VLAN_CAPABILITIES(ifp); - error = 0; - break; - default: /* Let the common ethernet handler process this. */ error = ether_ioctl(ifp, cmd, data); @@ -626,11 +572,8 @@ epair_setup_ifp(struct epair_softc *sc, char *name, int unit) ifp->if_dname = epairname; ifp->if_dunit = unit; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; - ifp->if_capabilities = IFCAP_VLAN_MTU | IFCAP_TXCSUM | - IFCAP_TXCSUM_IPV6 | IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6; - ifp->if_capenable = IFCAP_VLAN_MTU | IFCAP_TXCSUM | - IFCAP_TXCSUM_IPV6 | IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6; - epair_caps_changed(ifp); + ifp->if_capabilities = IFCAP_VLAN_MTU; + ifp->if_capenable = IFCAP_VLAN_MTU; ifp->if_transmit = epair_transmit; ifp->if_qflush = epair_qflush; ifp->if_start = epair_start;