kni: Add set_rx_mode callback to handle multicast groups
PATCH v2 1/1 kni: Add set_rx_mode callback to handle multicast groups
We did some (very basic) tests with IGMP, which involves adding multicast addresses to ETH interfaces. This is done via the ip tool, an example can be found on e.g.,
http://superuser.com/questions/324824/linux-built-in-or-open-source-program-to-join-multicast-group
and this will fail on KNI interfaces because of an unimplemented ioctl SIOCADDMULTI. The patch simply adds an empty callback for set_rx_mode (typically used for setting up hardware) so that the ioctl succeeds. This is the same thing as the Linux tap interface does.
---
ChangeLog:
v2: Improve motivation for the patch
lib/librte_eal/linuxapp/kni/kni_net.c | 6 ++++++ 1 file changed, 6 insertions(+)
(quoted diff) +0 -0
b/lib/librte_eal/linuxapp/kni/kni_net.c index dd95db5..cf93c4b 100644
lib/librte_eal/linuxapp/kni/kni_net.c +0 -0
@@ -495,6 +495,11 @@ kni_net_ioctl(struct net_device *dev, struct ifreq
*rq, int cmd) return 0;
}
+static void
+kni_net_set_rx_mode(struct net_device *dev)
+{
+}
+
static int
kni_net_change_mtu(struct net_device *dev, int new_mtu) {
@@ -645,6 +650,7 @@ static const struct net_device_ops kni_net_netdev_ops = { .ndo_start_xmit = kni_net_tx,
.ndo_change_mtu = kni_net_change_mtu, .ndo_do_ioctl = kni_net_ioctl,
+ .ndo_set_rx_mode = kni_net_set_rx_mode,
.ndo_get_stats = kni_net_stats, .ndo_tx_timeout = kni_net_tx_timeout, .ndo_set_mac_address = kni_net_set_mac,
Signature · 1 line
1.9.1
Quoted 16 lines
-----Original Message-----
From: Simon Kagstrom [mailto:[email protected]]
Sent: Tuesday, June 2, 2015 3:22 PM
To: [email protected]; Zhang, Helin; [email protected]
Subject: [PATCH v2] kni: Addset_rx_modecallback to handle multicast groupsWe did some (very basic) tests with IGMP, which involves adding multicast addresses to ETH interfaces. This is done via the ip tool, an example can be found on e.g.,
http://superuser.com/questions/324824/linux-built-in-or-open-source-program-
to-join-multicast-group
Quoted 7 lines
and this will fail on KNI interfaces because of an unimplemented ioctl SIOCADDMULTI. The patch simply adds an empty callback for
set_rx_mode(typically used for setting up hardware) so that the ioctl succeeds. This is the same thing as the Linux tap interface does.Signed-off-by Simon Kagstrom <[email protected]>Signed-off-by Johan Faltstrom <[email protected]>
Quoted 30 lines
---
ChangeLog:v2: Improve motivation for the patch
lib/librte_eal/linuxapp/kni/kni_net.c | 6 ++++++ 1 file changed, 6 insertions(+)(quoted diff) +0
-0
b/lib/librte_eal/linuxapp/kni/kni_net.cindex dd95db5..cf93c4b 100644lib/librte_eal/linuxapp/kni/kni_net.c +5
-1@@ -495,6 +495,11 @@ kni_net_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) return 0; } +static void +kni_net_set_rx_mode (struct net_device *dev) { } +static int kni_net_change_mtu(struct net_device *dev, int new_mtu) { @@ -645,6 +650,7 @@ static const struct net_device_ops kni_net_netdev_ops = { .ndo_start_xmit = kni_net_tx, .ndo_change_mtu = kni_net_change_mtu, .ndo_do_ioctl = kni_net_ioctl, + .ndo_set_rx_mode = kni_net_set_rx_mode, .ndo_get_stats = kni_net_stats, .ndo_tx_timeout = kni_net_tx_timeout, .ndo_set_mac_address = kni_net_set_mac, --1.9.1
Thomas Monjalon
AppliedQuoted 7 lines
Quoted 7 lines
We did some (very basic) tests with IGMP, which involves adding multicast addresses to ETH interfaces. This is done via the ip tool, an example can be found on e.g.,
http://superuser.com/questions/324824/linux-built-in-or-open-source-program-
to-join-multicast-group
Quoted 8 lines
Quoted 7 lines
and this will fail on KNI interfaces because of an unimplemented ioctl SIOCADDMULTI. The patch simply adds an empty callback for
set_rx_mode(typically used for setting up hardware) so that the ioctl succeeds. This is the same thing as the Linux tap interface does.Signed-off-by Simon Kagstrom <[email protected]>Signed-off-by Johan Faltstrom <[email protected]>Acked-by Helin Zhang <[email protected]>
Applied, thanks