From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <stephen@networkplumber.org>
Received: from mail-pg0-f67.google.com (mail-pg0-f67.google.com [74.125.83.67])
 by dpdk.org (Postfix) with ESMTP id 08EA2D5C0
 for <dev@dpdk.org>; Tue, 17 Apr 2018 01:24:44 +0200 (CEST)
Received: by mail-pg0-f67.google.com with SMTP id b9so4528889pgf.6
 for <dev@dpdk.org>; Mon, 16 Apr 2018 16:24:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=networkplumber-org.20150623.gappssmtp.com; s=20150623;
 h=from:to:cc:subject:date:message-id;
 bh=rIG8GYSwOEbg0B5BUOlNJVNWyDM3ikMkqU8Ni0AaTaI=;
 b=ncRdDK5bvOMKla85oN9p+hec0LXJB1+7hmHozxDmC2MFKDGB8099jyFaDTEEVgyZH9
 hVaM8rgDlTQtY262VtJFv7MDRDRTxd7oVZolcvcqzTB9/dQJbfxRcs1ci0d5M92pLmEu
 xVEBfIvBGFXhkmYk62qiiIZqaxsqCpB2q7079/MSONKudxD6yv3jCb5OtDTKzpmQTaxo
 ElMu8/99vvoOMCg+KXIkSm8oqRkkkMEh3oy6TJFOOKhzEzVnsdBOB6j9zXrhNaCUzc/3
 XCn1WJCDQXqAaen7QsypuDR1FS3kYa2QDT2v0lklLRCcqsfeqp/r5+/JIHENEVQHpsGs
 zY/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=rIG8GYSwOEbg0B5BUOlNJVNWyDM3ikMkqU8Ni0AaTaI=;
 b=Fstm7gynoI6j6OH1+nKoPHu8LbG208kT9HALgWC95+JKldiR6Tg75J6QoewniK/vHS
 OnyJCalk+/9ptG/wQwkvFB6WPHSpTD6IdZLqtPSofuPfatDVu8dTQHNWk325F6SuRBSB
 LVx3TtcNQ9AuJu3JTy5PmkpLUERrEweCvBeNbCiBabkRPFT2T6zD+s2T3kgCHwFYWnBV
 N+ZU2myK4FctChO0vx3K5tdTfshcQegnFGd188g/c9OEl0PGG25dAem1he7s1ISXDtji
 9yHQJCKzBC1DrU/EqmZGqR6EIaUcJnZ035D6SZeJXSE068w8hiQCgn/S/n5/bX2QTaR/
 4PuA==
X-Gm-Message-State: ALQs6tCnfvFEBIa8i7Tmv3HTamshHtvvrBx5ktIW3tU1WGl6cXTgHFWl
 inoiIMDxGk+R7y2cFssQp2vqpdKF/tM=
X-Google-Smtp-Source: AIpwx4+sGFLJmAndN1lmSGM3Y3BHqJTRPfhj/i3u6Ezcp/QnOW2xEz5azFnvxYFPU/lxsZt4Gyw6bQ==
X-Received: by 10.99.95.5 with SMTP id t5mr6237780pgb.165.1523921083863;
 Mon, 16 Apr 2018 16:24:43 -0700 (PDT)
Received: from xeon-e3.lan (204-195-71-95.wavecable.com. [204.195.71.95])
 by smtp.gmail.com with ESMTPSA id c64sm26919102pfe.152.2018.04.16.16.24.42
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 16 Apr 2018 16:24:43 -0700 (PDT)
From: Stephen Hemminger <stephen@networkplumber.org>
X-Google-Original-From: Stephen Hemminger <sthemmin@microsoft.com>
To: dev@dpdk.org
Cc: Stephen Hemminger <sthemmin@microsoft.com>
Date: Mon, 16 Apr 2018 16:24:35 -0700
Message-Id: <20180416232439.8018-1-sthemmin@microsoft.com>
X-Mailer: git-send-email 2.17.0
Subject: [dpdk-dev] [PATCH v2 0/4] Hyper-V Netvsc PMD
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 16 Apr 2018 23:24:45 -0000

This is a revised version of the Hyper-V native bus (VMbus)
and network device (netvsc) drivers. This virtual device
is used in Microsoft Hyper-V in Windows 10, Windows Server 2016
and Azure. Most of this code was extracted from FreeBSD and some of
this is from earlier code donated by Brocade.

Only Linux is supported at present, but the code is split
to allow future FreeBSD and Windows support.

This version works with upstream kernel (4.16) but in that
mode only a single queue is supported. With additional
patches that are pending for 5.0 kernel, multi-queue
support works as well.

Device binding is best done via driverctl; this required some
additional fixes to kernel and driverctl to work correctly.
Linux kernel vmbus support needed to support sysfs driver_override
and driverctl needed to handle non-PCI bus from udev.
 https://gitlab.com/driverctl/driverctl/merge_requests/3
 http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2018-April/118889.html


Stephen Hemminger (4):
  bus/vmbus: add hyper-v virtual bus support
  net/netvsc: add hyper-v netvsc network device
  net/netvsc: add documentation
  bus/vmbus and net/netvsc: add meson build support

 MAINTAINERS                                   |   10 +
 config/common_base                            |   13 +
 config/common_linuxapp                        |    4 +
 config/meson.build                            |    7 +
 doc/guides/nics/index.rst                     |    1 +
 doc/guides/nics/netvsc.rst                    |   73 +
 doc/guides/rel_notes/release_18_05.rst        |    6 +
 drivers/bus/Makefile                          |    1 +
 drivers/bus/meson.build                       |    2 +-
 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           |  379 +++++
 drivers/bus/vmbus/meson.build                 |   17 +
 drivers/bus/vmbus/private.h                   |  132 ++
 drivers/bus/vmbus/rte_bus_vmbus.h             |  400 ++++++
 drivers/bus/vmbus/rte_bus_vmbus_version.map   |   28 +
 drivers/bus/vmbus/rte_vmbus_reg.h             |  344 +++++
 drivers/bus/vmbus/vmbus_bufring.c             |  241 ++++
 drivers/bus/vmbus/vmbus_channel.c             |  405 ++++++
 drivers/bus/vmbus/vmbus_common.c              |  286 ++++
 drivers/bus/vmbus/vmbus_common_uio.c          |  232 ++++
 drivers/net/Makefile                          |    1 +
 drivers/net/meson.build                       |    2 +-
 drivers/net/netvsc/Makefile                   |   23 +
 drivers/net/netvsc/hn_ethdev.c                |  760 ++++++++++
 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                  | 1221 +++++++++++++++++
 drivers/net/netvsc/hn_var.h                   |  140 ++
 drivers/net/netvsc/meson.build                |   13 +
 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 +
 38 files changed, 7869 insertions(+), 2 deletions(-)
 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/meson.build
 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/meson.build
 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

-- 
2.17.0