From: Roopa Prabhu <redacted>
This patch adds support to get MAC and VLAN filter rtnl_link_ops
on a macvtap interface. It adds support for get_rx_addr_filter_size,
get_rx_vlan_filter_size, fill_rx_addr_filter and fill_rx_vlan_filter
rtnl link operations. Calls equivalent macvlan operations.
Signed-off-by: Roopa Prabhu <redacted>
Signed-off-by: Christian Benvenuti <redacted>
Signed-off-by: David Wang <redacted>
---
drivers/net/macvtap.c | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
index 8a2cb59..9b40de7 100644
--- a/drivers/net/macvtap.c
+++ b/drivers/net/macvtap.c
@@ -285,6 +285,29 @@ static int macvtap_set_rx_vlan_filter(struct net_device *dev,
return macvlan_set_rx_vlan_filter(dev, tb);
}
+static int macvtap_fill_rx_addr_filter(struct sk_buff *skb,
+ const struct net_device *dev)
+{
+ return macvlan_fill_rx_addr_filter(skb, dev);
+}
+
+static int macvtap_fill_rx_vlan_filter(struct sk_buff *skb,
+ const struct net_device *dev)
+{
+ return macvlan_fill_rx_vlan_filter(skb, dev);
+}
+
+static size_t macvtap_get_rx_addr_filter_size(const struct net_device *dev)
+{
+ return macvlan_get_rx_addr_filter_size(dev);
+}
+
+static size_t macvtap_get_rx_vlan_filter_size(const struct net_device *dev)
+{
+ return macvlan_get_rx_vlan_filter_size(dev);
+}
+
+
static int macvtap_newlink(struct net *src_net,
struct net_device *dev,
struct nlattr *tb[],@@ -335,6 +358,10 @@ static struct rtnl_link_ops macvtap_link_ops __read_mostly = {
.dellink = macvtap_dellink,
.set_rx_addr_filter = macvtap_set_rx_addr_filter,
.set_rx_vlan_filter = macvtap_set_rx_vlan_filter,
+ .get_rx_addr_filter_size = macvtap_get_rx_addr_filter_size,
+ .get_rx_vlan_filter_size = macvtap_get_rx_vlan_filter_size,
+ .fill_rx_addr_filter = macvtap_fill_rx_addr_filter,
+ .fill_rx_vlan_filter = macvtap_fill_rx_vlan_filter,
};