This is an experimental driver originally developed by Vyatta/Brocade/ATT to support DPDK on Hyper-V. It is a native DPDK driver (unlike the TAP solution) for VMBus. The driver relies on the version UIO for Hyper-V (uio_hv_generic) which is in upstream kernel next tree (char-misc-next).
It is not yet a full replacement for the failsafe/tap/vdev_netvsc solution since it does not support SR-IOV. The driver and bus interface are marked experimental until it is ready to replace them. Stephen Hemminger (3): bus/vmbus: add hyper-v virtual bus support usertools: add hv_uio_setup script net/netvsc: add hyper-v netvsc network device MAINTAINERS | 10 + config/common_base | 13 + config/common_linuxapp | 4 + doc/guides/nics/index.rst | 1 + doc/guides/nics/netvsc.rst | 53 ++ drivers/bus/Makefile | 1 + drivers/bus/vmbus/Makefile | 36 + drivers/bus/vmbus/linux/Makefile | 3 + drivers/bus/vmbus/linux/vmbus_bus.c | 354 +++++++ drivers/bus/vmbus/linux/vmbus_uio.c | 340 +++++++ drivers/bus/vmbus/private.h | 125 +++ drivers/bus/vmbus/rte_bus_vmbus.h | 381 ++++++++ drivers/bus/vmbus/rte_bus_vmbus_version.map | 23 + drivers/bus/vmbus/rte_vmbus_reg.h | 344 +++++++ drivers/bus/vmbus/vmbus_bufring.c | 242 +++++ drivers/bus/vmbus/vmbus_channel.c | 351 +++++++ drivers/bus/vmbus/vmbus_common.c | 287 ++++++ drivers/bus/vmbus/vmbus_common_uio.c | 232 +++++ drivers/net/Makefile | 1 + drivers/net/netvsc/Makefile | 23 + drivers/net/netvsc/hn_ethdev.c | 751 +++++++++++++++ drivers/net/netvsc/hn_logs.h | 35 + drivers/net/netvsc/hn_nvs.c | 533 +++++++++++ drivers/net/netvsc/hn_nvs.h | 243 +++++ drivers/net/netvsc/hn_rndis.c | 1101 ++++++++++++++++++++++ drivers/net/netvsc/hn_rndis.h | 26 + drivers/net/netvsc/hn_rxtx.c | 1224 +++++++++++++++++++++++++ drivers/net/netvsc/hn_var.h | 140 +++ drivers/net/netvsc/ndis.h | 378 ++++++++ drivers/net/netvsc/rndis.h | 414 +++++++++ drivers/net/netvsc/rte_pmd_netvsc_version.map | 5 + mk/rte.app.mk | 2 + usertools/hv_uio_setup.sh | 40 + 33 files changed, 7716 insertions(+) create mode 100644 doc/guides/nics/netvsc.rst create mode 100644 drivers/bus/vmbus/Makefile create mode 100644 drivers/bus/vmbus/linux/Makefile create mode 100644 drivers/bus/vmbus/linux/vmbus_bus.c create mode 100644 drivers/bus/vmbus/linux/vmbus_uio.c create mode 100644 drivers/bus/vmbus/private.h create mode 100644 drivers/bus/vmbus/rte_bus_vmbus.h create mode 100644 drivers/bus/vmbus/rte_bus_vmbus_version.map create mode 100644 drivers/bus/vmbus/rte_vmbus_reg.h create mode 100644 drivers/bus/vmbus/vmbus_bufring.c create mode 100644 drivers/bus/vmbus/vmbus_channel.c create mode 100644 drivers/bus/vmbus/vmbus_common.c create mode 100644 drivers/bus/vmbus/vmbus_common_uio.c create mode 100644 drivers/net/netvsc/Makefile create mode 100644 drivers/net/netvsc/hn_ethdev.c create mode 100644 drivers/net/netvsc/hn_logs.h create mode 100644 drivers/net/netvsc/hn_nvs.c create mode 100644 drivers/net/netvsc/hn_nvs.h create mode 100644 drivers/net/netvsc/hn_rndis.c create mode 100644 drivers/net/netvsc/hn_rndis.h create mode 100644 drivers/net/netvsc/hn_rxtx.c create mode 100644 drivers/net/netvsc/hn_var.h create mode 100644 drivers/net/netvsc/ndis.h create mode 100644 drivers/net/netvsc/rndis.h create mode 100644 drivers/net/netvsc/rte_pmd_netvsc_version.map create mode 100755 usertools/hv_uio_setup.sh -- 2.16.3