[dpdk-dev] [PATCH v5 9/9] kni: add minimal ethtool
Igor Ryzhov
iryzhov at nfware.com
Fri Jun 21 10:26:09 CEST 2019
Hi Stephen,
As ethtool support is restored, I think your patch #7 should be
updated to keep ethtool support in docs.
Best regards,
Igor
On Thu, Jun 20, 2019 at 10:22 PM Stephen Hemminger
<stephen at networkplumber.org> wrote:
>
> Some applications use ethtool so add the minimum ethtool ops.
>
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> ---
> kernel/linux/kni/kni_dev.h | 2 ++
> kernel/linux/kni/kni_misc.c | 1 +
> kernel/linux/kni/kni_net.c | 14 ++++++++++++++
> 3 files changed, 17 insertions(+)
>
> diff --git a/kernel/linux/kni/kni_dev.h b/kernel/linux/kni/kni_dev.h
> index ceba5f73c1d9..c1ca6789ce12 100644
> --- a/kernel/linux/kni/kni_dev.h
> +++ b/kernel/linux/kni/kni_dev.h
> @@ -11,6 +11,8 @@
> #endif
> #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
>
> +#define KNI_VERSION "1.0"
> +
> #include "compat.h"
>
> #include <linux/if.h>
> diff --git a/kernel/linux/kni/kni_misc.c b/kernel/linux/kni/kni_misc.c
> index be45f823408f..2b75502a8b0e 100644
> --- a/kernel/linux/kni/kni_misc.c
> +++ b/kernel/linux/kni/kni_misc.c
> @@ -21,6 +21,7 @@
> #include "compat.h"
> #include "kni_dev.h"
>
> +MODULE_VERSION(KNI_VERSION);
> MODULE_LICENSE("Dual BSD/GPL");
> MODULE_AUTHOR("Intel Corporation");
> MODULE_DESCRIPTION("Kernel Module for managing kni devices");
> diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
> index 320d51d7fc83..319ee2dcb19a 100644
> --- a/kernel/linux/kni/kni_net.c
> +++ b/kernel/linux/kni/kni_net.c
> @@ -13,6 +13,7 @@
> #include <linux/version.h>
> #include <linux/netdevice.h>
> #include <linux/etherdevice.h> /* eth_type_trans */
> +#include <linux/ethtool.h>
> #include <linux/skbuff.h>
> #include <linux/kthread.h>
> #include <linux/delay.h>
> @@ -725,6 +726,18 @@ static const struct net_device_ops kni_net_netdev_ops = {
> #endif
> };
>
> +static void kni_get_drvinfo(struct net_device *dev,
> + struct ethtool_drvinfo *info)
> +{
> + strlcpy(info->version, KNI_VERSION, sizeof(info->version));
> + strlcpy(info->driver, "kni", sizeof(info->driver));
> +}
> +
> +static const struct ethtool_ops kni_net_ethtool_ops = {
> + .get_drvinfo = kni_get_drvinfo,
> + .get_link = ethtool_op_get_link,
> +};
> +
> void
> kni_net_init(struct net_device *dev)
> {
> @@ -736,6 +749,7 @@ kni_net_init(struct net_device *dev)
> ether_setup(dev); /* assign some of the fields */
> dev->netdev_ops = &kni_net_netdev_ops;
> dev->header_ops = &kni_net_header_ops;
> + dev->ethtool_ops = &kni_net_ethtool_ops;
> dev->watchdog_timeo = WD_TIMEOUT;
> }
>
> --
> 2.20.1
>
More information about the dev
mailing list