[PATCH net-next v2] net: bridge: switchdev: pass more port flags to drivers

From: DENG Qingfang
Date: Thu Aug 12 2021 - 10:22:26 EST


These 3 port flags: BR_HAIRPIN_MODE, BR_MULTICAST_TO_UNICAST, and
BR_ISOLATED, affect the data path and should be handled by switchdev
drivers.

Add them to BR_PORT_FLAGS_HW_OFFLOAD so they can be passed down to
the drivers.

Suggested-by: Vladimir Oltean <olteanv@xxxxxxxxx>
Signed-off-by: DENG Qingfang <dqfext@xxxxxxxxx>
---
v1 -> v2: added more flags

net/bridge/br_switchdev.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/net/bridge/br_switchdev.c b/net/bridge/br_switchdev.c
index 6bf518d78f02..2ab46178c47c 100644
--- a/net/bridge/br_switchdev.c
+++ b/net/bridge/br_switchdev.c
@@ -70,8 +70,10 @@ bool nbp_switchdev_allowed_egress(const struct net_bridge_port *p,
}

/* Flags that can be offloaded to hardware */
-#define BR_PORT_FLAGS_HW_OFFLOAD (BR_LEARNING | BR_FLOOD | \
- BR_MCAST_FLOOD | BR_BCAST_FLOOD)
+#define BR_PORT_FLAGS_HW_OFFLOAD (BR_HAIRPIN_MODE | BR_LEARNING | \
+ BR_FLOOD | BR_MCAST_FLOOD | \
+ BR_MULTICAST_TO_UNICAST | \
+ BR_BCAST_FLOOD | BR_ISOLATED)

int br_switchdev_set_port_flag(struct net_bridge_port *p,
unsigned long flags,
--
2.25.1