bridge: fdb dumping takes a filter device
[deliverable/linux.git] / net / bridge / br_fdb.c
index 7be33667a839fed9ee6b218ab8ce2ac64d77dd81..6edecd11ecf07db6eff2eb5af38c507c5f2ea842 100644 (file)
@@ -676,6 +676,7 @@ errout:
 int br_fdb_dump(struct sk_buff *skb,
                struct netlink_callback *cb,
                struct net_device *dev,
+               struct net_device *filter_dev,
                int idx)
 {
        struct net_bridge *br = netdev_priv(dev);
@@ -691,6 +692,10 @@ int br_fdb_dump(struct sk_buff *skb,
                        if (idx < cb->args[0])
                                goto skip;
 
+                       if (filter_dev && (!f->dst || !f->dst->dev ||
+                                          f->dst->dev != filter_dev))
+                               goto skip;
+
                        if (fdb_fill_info(skb, br, f,
                                          NETLINK_CB(cb->skb).portid,
                                          cb->nlh->nlmsg_seq,
This page took 0.025834 seconds and 5 git commands to generate.