[dpdk-dev] [PATCH v3 3/6] net/tap: add multicast addresses management
Pascal Mazon
pascal.mazon at 6wind.com
Tue Mar 7 17:31:35 CET 2017
A tap netdevice actually receives every packet, without any filtering
whatsoever. There is no need for any multicast address registration
to receive multicast packets.
Signed-off-by: Pascal Mazon <pascal.mazon at 6wind.com>
---
doc/guides/nics/features/tap.ini | 1 +
drivers/net/tap/rte_eth_tap.c | 13 +++++++++++++
2 files changed, 14 insertions(+)
diff --git a/doc/guides/nics/features/tap.ini b/doc/guides/nics/features/tap.ini
index dad5a0561087..6878a9b8fd17 100644
--- a/doc/guides/nics/features/tap.ini
+++ b/doc/guides/nics/features/tap.ini
@@ -9,6 +9,7 @@ Jumbo frame = Y
Promiscuous mode = Y
Allmulticast mode = Y
Basic stats = Y
+Multicast MAC filter = Y
Speed capabilities = Y
Unicast MAC filter = Y
Other kdrv = Y
diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index ef525a3f0826..301072f20930 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -721,6 +721,18 @@ tap_tx_queue_setup(struct rte_eth_dev *dev,
return 0;
}
+static int
+tap_set_mc_addr_list(struct rte_eth_dev *dev __rte_unused,
+ struct ether_addr *mc_addr_set __rte_unused,
+ uint32_t nb_mc_addr __rte_unused)
+{
+ /*
+ * Nothing to do actually: the tap has no filtering whatsoever, every
+ * packet is received.
+ */
+ return 0;
+}
+
static const struct eth_dev_ops ops = {
.dev_start = tap_dev_start,
.dev_stop = tap_dev_stop,
@@ -741,6 +753,7 @@ static const struct eth_dev_ops ops = {
.mac_addr_remove = tap_mac_remove,
.mac_addr_add = tap_mac_add,
.mac_addr_set = tap_mac_set,
+ .set_mc_addr_list = tap_set_mc_addr_list,
.stats_get = tap_stats_get,
.stats_reset = tap_stats_reset,
};
--
2.8.0.rc0
More information about the dev
mailing list