From c077fb455f7e298041a8bc8f5de1544df8b42282 Mon Sep 17 00:00:00 2001 From: Vijayakumar Muthuvel Manickam Date: Tue, 16 Jun 2015 02:39:54 -0400 Subject: [PATCH] kni: add link status update 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 Acked-by: Helin Zhang --- lib/librte_eal/linuxapp/kni/kni_net.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c b/lib/librte_eal/linuxapp/kni/kni_net.c index dd95db5b76..9f9022b776 100644 --- a/lib/librte_eal/linuxapp/kni/kni_net.c +++ b/lib/librte_eal/linuxapp/kni/kni_net.c @@ -632,6 +632,17 @@ static int kni_net_set_mac(struct net_device *netdev, void *p) return 0; } +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 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; +} +#endif + static const struct header_ops kni_net_header_ops = { .create = kni_net_header, .rebuild = kni_net_rebuild_header, @@ -648,6 +659,9 @@ 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, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0)) + .ndo_change_carrier = kni_net_change_carrier, +#endif }; void -- 2.20.1