--- a/include/linux/if_bridge.h +++ b/include/linux/if_bridge.h @@ -201,4 +201,7 @@ extern br_get_dst_hook_t __rcu *br_get_d extern struct net_device *br_fdb_bridge_dev_get_and_hold(struct net_bridge *br); /* QCA NSS bridge-mgr support - End */ +/* QCA NSS SSDK support - Start */ +extern int br_fdb_delete_by_netdev(struct net_device *dev,const unsigned char *addr, u16 vid); +/* QCA NSS SSDK support - End */ #endif --- a/net/bridge/br_fdb.c +++ b/net/bridge/br_fdb.c @@ -1181,6 +1181,19 @@ static int __br_fdb_delete(struct net_br return err; } +int br_fdb_delete_by_netdev(struct net_device *dev, + const unsigned char *addr, u16 vid) +{ + int err; + + rtnl_lock(); + err = br_fdb_delete(NULL, NULL, dev, addr, vid); + rtnl_unlock(); + + return err; +} +EXPORT_SYMBOL_GPL(br_fdb_delete_by_netdev); + /* Remove neighbor entry with RTM_DELNEIGH */ int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[], struct net_device *dev,