From nobody Tue Apr 09 10:51:24 2024 X-Original-To: dev-commits-src-branches@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 4VDN705G4wz5Gjbr; Tue, 9 Apr 2024 10:51:24 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VDN703RCRz4kJJ; Tue, 9 Apr 2024 10:51:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1712659884; 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=iCt3JfJ0zHH2MfwJg2fvkM2aN+dnHR9rNca6CuIok0A=; b=Tvbt7kxlIucORq57uOyPKJYuuOlolXFxYcuQK9avn4FSHrnhLAbqkY6IAhwkYqBIPNABml etUvysTO7SfVEgYwK0LV7BHptaV6yLWEq/pnY8Q7QAv/IUno8oJicGLEY1h89cSwffRakY WHik3+zg9Lq9OTA47vEGypUN0y9oizBK40aTnloAduTviNEUShvxDostvgWpEPXxvnFLNh +t1svk5vB2Fjr70xjSVBYgoC6ttD4q0t/7VJY39chlmGA1whVE28mAl9WovVRBq5i66WRA 94+4vGQmpfgEGmtHBm62roWiK6u2vk1UfXWjUy/T4Kz3ieCbxoLIhr1oRqDg4A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1712659884; a=rsa-sha256; cv=none; b=wWwsSrsmKqTRlMNZKyr3z++wY61s4fsLPKbVXp0aAokxWnHK5nrkMu2UXS0DGAFaVuP4p7 P6PMRuvnDoAsYcEMaHefMYoN5G6X2iLRY46xDoDjNlTs7+RjQLesBTt29FbDaWrDVAZ4AC NlgeCrIezIX2eFPEdLo7YQDgPZxEuEDEy3TMymTmeF5xrNA8Du6aK6Vzy2bQunwPBlXnTj 9KYev2WUVDbE7sCImnkKNakpKXS8+uiivgwutwjHq3yPLn78ebuKtAPViwz+tHxEUJ8zp2 T7KQOljrzNos+it/dXUMYVoMkLhguBji55Dyzjj68beDIWQV/YRn0wfk9m/y/w== 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=1712659884; 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=iCt3JfJ0zHH2MfwJg2fvkM2aN+dnHR9rNca6CuIok0A=; b=RKsas+k9UnrucE1B8zabrKTkFVNhC8EQZBN2Zia7+M5q7VtXA5Sxo1SHpqUILShzxvzNxX BLr744f+Wqq+d9PoNUUhTFk6E2Oc7BWvWTSwAGMA0cNl7pc3dqp7BFXKc+bBMyGYMftGFi eQKumegPBUudw1Xc7ICmKQSli44XjKwGoLc8fsbPrmLWpXVXchvDJgLCLkBdzZs6usbrUt CHBZXG638P9Vp6tBaSAaFNUEKwvv3DSIMSBFGb64eV1C5l/cVVAq+8+dRu7CNxPzPLX0oy zaBlcTV+cpmvEKeERDlK5FUnanRqnnVSFHXmfEFoMNJ3CuJSf3bT11eeSTag1g== 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 4VDN702ycszrSG; Tue, 9 Apr 2024 10:51:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 439ApOZn012136; Tue, 9 Apr 2024 10:51:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 439ApObt012133; Tue, 9 Apr 2024 10:51:24 GMT (envelope-from git) Date: Tue, 9 Apr 2024 10:51:24 GMT Message-Id: <202404091051.439ApObt012133@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Eugene Grosbein Subject: git: 1879f7affbf8 - stable/13 - MFC: if_bridge: change MTU for new members List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: dev-commits-src-branches+owner@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 1879f7affbf80c701c76081b2b8511f4c7dd81f5 Auto-Submitted: auto-generated The branch stable/13 has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=1879f7affbf80c701c76081b2b8511f4c7dd81f5 commit 1879f7affbf80c701c76081b2b8511f4c7dd81f5 Author: Eugene Grosbein AuthorDate: 2024-04-09 10:49:05 +0000 Commit: Eugene Grosbein CommitDate: 2024-04-09 10:50:20 +0000 MFC: if_bridge: change MTU for new members Rather than reject new bridge members because they have the wrong MTU change it to match the bridge. If that fails, reject the new interface. PR: 264883 Different Revision: https://reviews.freebsd.org/D35597 (cherry picked from commit 1865ebfb12ddaf3d0ff1458e6152b3cb1f1bdee8) --- sys/net/if_bridge.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index 662b425bc89e..e0fe45e3d326 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -945,6 +945,8 @@ bridge_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) break; case SIOCSIFMTU: + oldmtu = sc->sc_ifp->if_mtu; + if (ifr->ifr_mtu < IF_MINMTU) { error = EINVAL; break; @@ -954,17 +956,27 @@ bridge_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) break; } CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { - if (bif->bif_ifp->if_mtu != ifr->ifr_mtu) { - log(LOG_NOTICE, "%s: invalid MTU: %u(%s)" - " != %d\n", sc->sc_ifp->if_xname, - bif->bif_ifp->if_mtu, - bif->bif_ifp->if_xname, ifr->ifr_mtu); + error = (*bif->bif_ifp->if_ioctl)(bif->bif_ifp, + SIOCSIFMTU, (caddr_t)ifr); + if (error != 0) { + log(LOG_NOTICE, "%s: invalid MTU: %u for" + " member %s\n", sc->sc_ifp->if_xname, + ifr->ifr_mtu, + bif->bif_ifp->if_xname); error = EINVAL; break; } } - if (!error) + if (error) { + /* Restore the previous MTU on all member interfaces. */ + ifr->ifr_mtu = oldmtu; + CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { + (*bif->bif_ifp->if_ioctl)(bif->bif_ifp, + SIOCSIFMTU, (caddr_t)ifr); + } + } else { sc->sc_ifp->if_mtu = ifr->ifr_mtu; + } break; default: /*