[Bug 221122] Attaching interface to a bridge stops all traffic on uplink NIC for few seconds

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 01 Sep 2023 23:07:01 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221122

--- Comment #35 from spork@bway.net ---
OK, really done for now... :)

I'm trying this out for a bit.

[root@clweb5 /usr/src/sys/net]# diff -u if_bridge.c.dist if_bridge.c.caps
--- if_bridge.c.dist    2023-08-31 22:47:16.758453000 -0400
+++ if_bridge.c.caps    2023-09-01 19:05:41.724323000 -0400
@@ -452,6 +452,13 @@
     CTLFLAG_RWTUN | CTLFLAG_VNET, &VNET_NAME(log_stp), 0,
     "Log STP state changes");

+/* restore member if capabilites */
+VNET_DEFINE_STATIC(int, restore_caps) = 1;
+#define        V_restore_caps  VNET(restore_caps)
+SYSCTL_INT(_net_link_bridge, OID_AUTO, restore_caps,
+    CTLFLAG_RWTUN | CTLFLAG_VNET, &VNET_NAME(restore_caps), 0,
+    "Restore member interface flags on reinit");
+
 /* share MAC with first bridge member */
 VNET_DEFINE_STATIC(int, bridge_inherit_mac);
 #define        V_bridge_inherit_mac    VNET(bridge_inherit_mac)
@@ -1151,7 +1158,8 @@
 #endif
                        break;
                }
-               /* reneable any interface capabilities */
+               /* reneable any interface capabilities if restore_caps is set
*/
+               if (V_restore_caps)
                bridge_set_ifcap(sc, bif, bif->bif_savedcaps);
        }
        bstp_destroy(&bif->bif_stp);    /* prepare to free */

-- 
You are receiving this mail because:
You are the assignee for the bug.