]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
bridge: add bridge_flags_bit enum
authorEric Dumazet <edumazet@google.com>
Thu, 4 Jun 2026 14:13:34 +0000 (14:13 +0000)
committerJakub Kicinski <kuba@kernel.org>
Sat, 6 Jun 2026 00:46:17 +0000 (17:46 -0700)
We want to use atomic operations for lockless p->flags changes
and reads.

Add definitions for bits in addition of masks so that we can use
test_bit(), clear_bit() and set_bit() in subsequent patches.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Link: https://patch.msgid.link/20260604141343.2124500-3-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/if_bridge.h

index ec9ffea1e46ede3762f108f6e7085ebb1bf1d2e1..75673b8bffcb8ad6396e6a05b8af8150208fb6fe 100644 (file)
@@ -36,32 +36,60 @@ struct br_ip_list {
        struct br_ip addr;
 };
 
-#define BR_HAIRPIN_MODE                BIT(0)
-#define BR_BPDU_GUARD          BIT(1)
-#define BR_ROOT_BLOCK          BIT(2)
-#define BR_MULTICAST_FAST_LEAVE        BIT(3)
-#define BR_ADMIN_COST          BIT(4)
-#define BR_LEARNING            BIT(5)
-#define BR_FLOOD               BIT(6)
+enum bridge_flags_bit {
+       BR_HAIRPIN_MODE_BIT,
+       BR_BPDU_GUARD_BIT,
+       BR_ROOT_BLOCK_BIT,
+       BR_MULTICAST_FAST_LEAVE_BIT,
+       BR_ADMIN_COST_BIT,
+       BR_LEARNING_BIT,
+       BR_FLOOD_BIT,
+       BR_PROMISC_BIT,
+       BR_PROXYARP_BIT,
+       BR_LEARNING_SYNC_BIT,
+       BR_PROXYARP_WIFI_BIT,
+       BR_MCAST_FLOOD_BIT,
+       BR_MULTICAST_TO_UNICAST_BIT,
+       BR_VLAN_TUNNEL_BIT,
+       BR_BCAST_FLOOD_BIT,
+       BR_NEIGH_SUPPRESS_BIT,
+       BR_ISOLATED_BIT,
+       BR_MRP_AWARE_BIT,
+       BR_MRP_LOST_CONT_BIT,
+       BR_MRP_LOST_IN_CONT_BIT,
+       BR_TX_FWD_OFFLOAD_BIT,
+       BR_PORT_LOCKED_BIT,
+       BR_PORT_MAB_BIT,
+       BR_NEIGH_VLAN_SUPPRESS_BIT,
+       BR_NEIGH_FORWARD_GRAT_BIT,
+};
+
+#define BR_HAIRPIN_MODE                BIT(BR_HAIRPIN_MODE_BIT)
+#define BR_BPDU_GUARD          BIT(BR_BPDU_GUARD_BIT)
+#define BR_ROOT_BLOCK          BIT(BR_ROOT_BLOCK_BIT)
+#define BR_MULTICAST_FAST_LEAVE        BIT(BR_MULTICAST_FAST_LEAVE_BIT)
+#define BR_ADMIN_COST          BIT(BR_ADMIN_COST_BIT)
+#define BR_LEARNING            BIT(BR_LEARNING_BIT)
+#define BR_FLOOD               BIT(BR_FLOOD_BIT)
 #define BR_AUTO_MASK           (BR_FLOOD | BR_LEARNING)
-#define BR_PROMISC             BIT(7)
-#define BR_PROXYARP            BIT(8)
-#define BR_LEARNING_SYNC       BIT(9)
-#define BR_PROXYARP_WIFI       BIT(10)
-#define BR_MCAST_FLOOD         BIT(11)
-#define BR_MULTICAST_TO_UNICAST        BIT(12)
-#define BR_VLAN_TUNNEL         BIT(13)
-#define BR_BCAST_FLOOD         BIT(14)
-#define BR_NEIGH_SUPPRESS      BIT(15)
-#define BR_ISOLATED            BIT(16)
-#define BR_MRP_AWARE           BIT(17)
-#define BR_MRP_LOST_CONT       BIT(18)
-#define BR_MRP_LOST_IN_CONT    BIT(19)
-#define BR_TX_FWD_OFFLOAD      BIT(20)
-#define BR_PORT_LOCKED         BIT(21)
-#define BR_PORT_MAB            BIT(22)
-#define BR_NEIGH_VLAN_SUPPRESS BIT(23)
-#define BR_NEIGH_FORWARD_GRAT  BIT(24)
+#define BR_PROMISC             BIT(BR_PROMISC_BIT)
+#define BR_PROXYARP            BIT(BR_PROXYARP_BIT)
+#define BR_LEARNING_SYNC       BIT(BR_LEARNING_SYNC_BIT)
+#define BR_PROXYARP_WIFI       BIT(BR_PROXYARP_WIFI_BIT)
+#define BR_MCAST_FLOOD         BIT(BR_MCAST_FLOOD_BIT)
+#define BR_MULTICAST_TO_UNICAST        BIT(BR_MULTICAST_TO_UNICAST_BIT)
+#define BR_VLAN_TUNNEL         BIT(BR_VLAN_TUNNEL_BIT)
+#define BR_BCAST_FLOOD         BIT(BR_BCAST_FLOOD_BIT)
+#define BR_NEIGH_SUPPRESS      BIT(BR_NEIGH_SUPPRESS_BIT)
+#define BR_ISOLATED            BIT(BR_ISOLATED_BIT)
+#define BR_MRP_AWARE           BIT(BR_MRP_AWARE_BIT)
+#define BR_MRP_LOST_CONT       BIT(BR_MRP_LOST_CONT_BIT)
+#define BR_MRP_LOST_IN_CONT    BIT(BR_MRP_LOST_IN_CONT_BIT)
+#define BR_TX_FWD_OFFLOAD      BIT(BR_TX_FWD_OFFLOAD_BIT)
+#define BR_PORT_LOCKED         BIT(BR_PORT_LOCKED_BIT)
+#define BR_PORT_MAB            BIT(BR_PORT_MAB_BIT)
+#define BR_NEIGH_VLAN_SUPPRESS BIT(BR_NEIGH_VLAN_SUPPRESS_BIT)
+#define BR_NEIGH_FORWARD_GRAT  BIT(BR_NEIGH_FORWARD_GRAT_BIT)
 
 #define BR_DEFAULT_AGEING_TIME (300 * HZ)