This is preliminary support for native Hyper-V bus and network device. The code is a rewrite of earlier code done by Brocade/Vyatta with much of it coming from FreeBSD.
Only Linux is supported. Stephen Hemminger (3): bus: add vmbus support usertools: add hv_uio_setup script net: add hyper-v network device MAINTAINERS | 10 + config/common_base | 15 + config/common_linuxapp | 3 + doc/guides/nics/hyperv.rst | 71 ++ drivers/bus/Makefile | 3 + drivers/bus/vmbus/Makefile | 10 + drivers/bus/vmbus/common/Makefile | 9 + drivers/bus/vmbus/common/common_bufring.c | 234 +++++ drivers/bus/vmbus/common/common_chan.c | 307 ++++++ drivers/bus/vmbus/common/common_uio.c | 232 +++++ drivers/bus/vmbus/common/common_vmbus.c | 288 +++++ drivers/bus/vmbus/common/include/rte_vmbus.h | 391 +++++++ drivers/bus/vmbus/common/include/vmbus_logs.h | 14 + drivers/bus/vmbus/common/include/vmbus_reg.h | 360 +++++++ drivers/bus/vmbus/common/vmbus_private.h | 123 +++ drivers/bus/vmbus/linuxapp/Makefile | 22 + .../bus/vmbus/linuxapp/rte_bus_vmbus_version.map | 22 + drivers/bus/vmbus/linuxapp/vmbus_bus.c | 356 +++++++ drivers/bus/vmbus/linuxapp/vmbus_uio.c | 340 ++++++ drivers/net/Makefile | 1 + drivers/net/hyperv/Makefile | 18 + drivers/net/hyperv/hn_ethdev.c | 626 +++++++++++ drivers/net/hyperv/hn_logs.h | 35 + drivers/net/hyperv/hn_nvs.c | 530 ++++++++++ drivers/net/hyperv/hn_nvs.h | 259 +++++ drivers/net/hyperv/hn_rndis.c | 1018 ++++++++++++++++++ drivers/net/hyperv/hn_rndis.h | 32 + drivers/net/hyperv/hn_rxtx.c | 1095 ++++++++++++++++++++ drivers/net/hyperv/hn_var.h | 135 +++ drivers/net/hyperv/ndis.h | 379 +++++++ drivers/net/hyperv/rndis.h | 419 ++++++++ drivers/net/hyperv/rte_pmd_hyperv_version.map | 5 + mk/rte.app.mk | 3 + usertools/hv_uio_setup.sh | 39 + 34 files changed, 7404 insertions(+) create mode 100644 doc/guides/nics/hyperv.rst create mode 100644 drivers/bus/vmbus/Makefile create mode 100644 drivers/bus/vmbus/common/Makefile create mode 100644 drivers/bus/vmbus/common/common_bufring.c create mode 100644 drivers/bus/vmbus/common/common_chan.c create mode 100644 drivers/bus/vmbus/common/common_uio.c create mode 100644 drivers/bus/vmbus/common/common_vmbus.c create mode 100644 drivers/bus/vmbus/common/include/rte_vmbus.h create mode 100644 drivers/bus/vmbus/common/include/vmbus_logs.h create mode 100644 drivers/bus/vmbus/common/include/vmbus_reg.h create mode 100644 drivers/bus/vmbus/common/vmbus_private.h create mode 100644 drivers/bus/vmbus/linuxapp/Makefile create mode 100644 drivers/bus/vmbus/linuxapp/rte_bus_vmbus_version.map create mode 100644 drivers/bus/vmbus/linuxapp/vmbus_bus.c create mode 100644 drivers/bus/vmbus/linuxapp/vmbus_uio.c create mode 100644 drivers/net/hyperv/Makefile create mode 100644 drivers/net/hyperv/hn_ethdev.c create mode 100644 drivers/net/hyperv/hn_logs.h create mode 100644 drivers/net/hyperv/hn_nvs.c create mode 100644 drivers/net/hyperv/hn_nvs.h create mode 100644 drivers/net/hyperv/hn_rndis.c create mode 100644 drivers/net/hyperv/hn_rndis.h create mode 100644 drivers/net/hyperv/hn_rxtx.c create mode 100644 drivers/net/hyperv/hn_var.h create mode 100644 drivers/net/hyperv/ndis.h create mode 100644 drivers/net/hyperv/rndis.h create mode 100644 drivers/net/hyperv/rte_pmd_hyperv_version.map create mode 100755 usertools/hv_uio_setup.sh -- 2.15.1