[dpdk-dev] [PATCH v2] kni: Add link status update

Stephen Hemminger stephen at networkplumber.org
Mon Jun 15 18:09:04 CEST 2015


On Mon, 15 Jun 2015 04:21:43 -0400
Vijayakumar Muthuvel Manickam <mmvijay at gmail.com> wrote:

> Implement .ndo_change_carrier to enable
> DPDK applications to propagate link state changes to
> kni virtual interfaces through sysfs
> 
> Signed-off-by: Vijayakumar Muthuvel Manickam <mmvijay at gmail.com>
> ---
> Implemented .ndo_change_carrier instead of adding a new ioctl
> 
>  lib/librte_eal/linuxapp/kni/kni_net.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c b/lib/librte_eal/linuxapp/kni/kni_net.c
> index dd95db5..10c94ce 100644
> --- a/lib/librte_eal/linuxapp/kni/kni_net.c
> +++ b/lib/librte_eal/linuxapp/kni/kni_net.c
> @@ -632,6 +632,15 @@ static int kni_net_set_mac(struct net_device *netdev, void *p)
>  	return 0;
>  }
>  
> +static int kni_net_change_carrier(struct net_device *dev, bool new_carrier)
> +{
> +	if (new_carrier)
> +		netif_carrier_on(dev);
> +	else
> +		netif_carrier_off(dev);
> +	return 0;
> +}
> +
>  static const struct header_ops kni_net_header_ops = {
>  	.create  = kni_net_header,
>  	.rebuild = kni_net_rebuild_header,
> @@ -648,6 +657,7 @@ static const struct net_device_ops kni_net_netdev_ops = {
>  	.ndo_get_stats = kni_net_stats,
>  	.ndo_tx_timeout = kni_net_tx_timeout,
>  	.ndo_set_mac_address = kni_net_set_mac,
> +	.ndo_change_carrier = kni_net_change_carrier,
>  };
>  
>  void

Acked-by: Stephen Hemminger <stephen at networkplumber.org>

You might need to have a kernel version test?? since carrier change was
introduced in 3.9 kernel


More information about the dev mailing list