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