[dpdk-dev] [PATCH v2] kni: Add set_rx_mode callback to handle multicast groups

Zhang, Helin helin.zhang at intel.com
Tue Jun 2 09:31:44 CEST 2015



> -----Original Message-----
> From: Simon Kagstrom [mailto:simon.kagstrom at netinsight.net]
> Sent: Tuesday, June 2, 2015 3:22 PM
> To: dev at dpdk.org; Zhang, Helin; stephen at networkplumber.org
> Subject: [PATCH v2] 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.
> 
> Signed-off-by: Simon Kagstrom <simon.kagstrom at netinsight.net>
> Signed-off-by: Johan Faltstrom <johan.faltstrom at netinsight.net>
Acked-by: Helin Zhang <helin.zhang at intel.com>

> ---
> ChangeLog:
> 
> v2: Improve motivation for the patch
> 
>  lib/librte_eal/linuxapp/kni/kni_net.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c
> b/lib/librte_eal/linuxapp/kni/kni_net.c index dd95db5..cf93c4b 100644
> --- a/lib/librte_eal/linuxapp/kni/kni_net.c
> +++ b/lib/librte_eal/linuxapp/kni/kni_net.c
> @@ -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



More information about the dev mailing list