[dpdk-dev] [PATCH v3] kni: Add link status update
Vijayakumar Muthuvel Manickam
mmvijay at gmail.com
Tue Jun 16 08:39:54 CEST 2015
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>
---
Added kernel version check as .ndo_change_carrier is available only in kernel
versions 3.9 and after
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 dd95db5..9f9022b 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
--
1.8.1.4
More information about the dev
mailing list