--- zzzz-none-000/linux-4.9.231/net/switchdev/switchdev.c 2020-07-22 07:10:54.000000000 +0000 +++ falcon-5590-729/linux-4.9.231/net/switchdev/switchdev.c 2022-03-30 12:03:36.000000000 +0000 @@ -768,7 +768,8 @@ .id = SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS, }; u16 mode = BRIDGE_MODE_UNDEF; - u32 mask = BR_LEARNING | BR_LEARNING_SYNC | BR_FLOOD; + u32 mask = BR_LEARNING | BR_LEARNING_SYNC | BR_FLOOD | BR_HAIRPIN_MODE | + BR_ISOLATED; int err; if (!netif_is_bridge_port(dev)) @@ -819,6 +820,7 @@ [IFLA_BRPORT_LEARNING] = { .type = NLA_U8 }, [IFLA_BRPORT_LEARNING_SYNC] = { .type = NLA_U8 }, [IFLA_BRPORT_UNICAST_FLOOD] = { .type = NLA_U8 }, + [IFLA_BRPORT_ISOLATED] = { .type = NLA_U8 }, }; static int switchdev_port_br_setlink_protinfo(struct net_device *dev, @@ -846,6 +848,12 @@ case IFLA_BRPORT_UNICAST_FLOOD: err = switchdev_port_br_setflag(dev, attr, BR_FLOOD); break; + case IFLA_BRPORT_MODE: + err = switchdev_port_br_setflag(dev, attr, BR_HAIRPIN_MODE); + break; + case IFLA_BRPORT_ISOLATED: + err = switchdev_port_br_setflag(dev, attr, BR_ISOLATED); + break; default: err = -EOPNOTSUPP; break;