From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <stephen@networkplumber.org>
Received: from mail-pf0-f194.google.com (mail-pf0-f194.google.com
 [209.85.192.194]) by dpdk.org (Postfix) with ESMTP id 8615E1AFF5
 for <dev@dpdk.org>; Tue, 17 Apr 2018 01:24:49 +0200 (CEST)
Received: by mail-pf0-f194.google.com with SMTP id p6so11259486pfn.4
 for <dev@dpdk.org>; Mon, 16 Apr 2018 16:24:49 -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:in-reply-to:references;
 bh=OZsAOMlSt+VrI0xHZgE9MLDBErcMRoN69rxY0dUVNmc=;
 b=iIr0p0j8w9nra36rVC3AlgxoY0OFmkeEVS7ePjeDlZbuk9qQ4JShZ64rpdsvr2x4xG
 nKnWuOM4ApBEe95GKzd9aIaBizgBoSilaAmHADvW6Ic/lFD08SIvNsQU2eznrtHsHWAy
 TGJh98Pvj6ect6zyNCXMnllB2pB1axjFnGVhs9/wS2BkWqUVayOVNcvRq3jhsx1QNTV0
 yN02aRo5AqZSDwrRwPdSsOeuls6x4ijZDD5wXSMltLpmm2hI85ZXn46FZphusmtIXHAY
 daSNjTAu27fwKp3kUqIOoQX++xmI3g6NIDkj3N8UhP8hxJCYffUe3qZXD8fqK92BWmO+
 TTOA==
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:in-reply-to
 :references;
 bh=OZsAOMlSt+VrI0xHZgE9MLDBErcMRoN69rxY0dUVNmc=;
 b=ESG7y1aNx9l0w6KQIzRy7l+JKrbTlKFswk232Leg7PmK+ux8ISjyU7/I4r+zm1RqK5
 8kbAMq+YQInFuCCal2yUhbQsVpfAcbIE0YXn0RUK2WyGFzCuFED9kWyR4Lc4mdMUoHbd
 E6Ki3ZitFFJslrsoblumHZ5WO+JXyYJcaUUUyw+VhY5zL0Kwx2xYC1kd7c23rDYSTsEb
 RiWq3aG2BQMRhEb7Pb7Vl/Ue6lDxiuUOuPWI4qkMTSkxevpvum4r5HtsywwHbWQkkT0r
 2VnXWVJ77gPYQ+ug1hCE85J5Bd37QYI05LjyGAcc7LrW7X3JcLA6NCq12fPJOATUDbAc
 gzAQ==
X-Gm-Message-State: ALQs6tCa6HPvKbzW8ZbQWsvk1IYZXwwHk+uBGEFIsDTphR7wsO2NDE7x
 z+MT/gtNVF9nSD2Ev8Fw4wfO/5hktTM=
X-Google-Smtp-Source: AIpwx491EuQajFWJNHJiPTsOPXvbnnUeZtQ1f7tZ63igA1rokhDCQBVNXv2QIJc1loj5A4OGnB+dNg==
X-Received: by 10.99.4.69 with SMTP id 66mr4841768pge.323.1523921088147;
 Mon, 16 Apr 2018 16:24:48 -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.46
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 16 Apr 2018 16:24:46 -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:38 -0700
Message-Id: <20180416232439.8018-4-sthemmin@microsoft.com>
X-Mailer: git-send-email 2.17.0
In-Reply-To: <20180416232439.8018-1-sthemmin@microsoft.com>
References: <20180416232439.8018-1-sthemmin@microsoft.com>
Subject: [dpdk-dev] [PATCH v2 3/4] net/netvsc: add documentation
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:49 -0000

Matching documentation for new netvsc device.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
---
 doc/guides/nics/index.rst              |  1 +
 doc/guides/nics/netvsc.rst             | 73 ++++++++++++++++++++++++++
 doc/guides/rel_notes/release_18_05.rst |  6 +++
 3 files changed, 80 insertions(+)
 create mode 100644 doc/guides/nics/netvsc.rst

diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst
index ea9110c81159..97727731375a 100644
--- a/doc/guides/nics/index.rst
+++ b/doc/guides/nics/index.rst
@@ -23,6 +23,7 @@ Network Interface Controller Drivers
     ena
     enic
     fm10k
+    hyperv
     i40e
     igb
     ixgbe
diff --git a/doc/guides/nics/netvsc.rst b/doc/guides/nics/netvsc.rst
new file mode 100644
index 000000000000..db33772fb25b
--- /dev/null
+++ b/doc/guides/nics/netvsc.rst
@@ -0,0 +1,73 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) Microsoft Corporation.
+
+Poll Mode Driver for Hyper-V Network Virtual NIC
+================================================
+
+Hyper-V is a hypervisor integrated into Window Server 2008, Windows 10
+and later versions.  It supports a para-virtualized network interface
+called netvsc that is visible on the virtual machine bus (VMBUS).  In
+the Data Plane Development Kit (DPDK), we provide a Network Virtual
+Service Client (NetVSC) Poll Mode Driver (PMD). The NetVSC PMD
+supports Windows Server 2016 and Microsoft Azure cloud.
+
+NetVSC Implementation in DPDK
+-----------------------------
+
+The Netvsc PMD is a standalone driver. VMBus network devices that are
+being used by DPDK must be unbound from the Linux kernel driver
+(hv_netvsc) and bound to the Userspace IO driver for Hyper-V
+(uio_hv_generic).
+
+This is most conveniently done with the
+`driverctl <https://gitlab.com/driverctl/driverctl>` script.
+The kernel must be version 5.0 or later to allow driver_override
+to work.
+
+To list all vmbus network devices
+  # driverctl -b vmbus -v list-devices | grep netvsc
+
+  # driverctl -b vmbus set-override <device guid> uio_hv_generic
+
+To determine the guid associated with a particular existing Ethernet
+device use:
+  $ basename $(readlink /sys/class/net/ethN/device)
+
+
+Features and Limitations of Hyper-V PMD
+---------------------------------------
+
+In this release, the hyper PMD driver provides the basic functionality of packet reception and transmission.
+
+*   It supports merge-able buffers per packet when receiving packets and scattered buffer per packet
+    when transmitting packets. The packet size supported is from 64 to 65536.
+
+*   It supports multicast packets and promiscuous mode. In order to this to work, the guest network
+    configuration on Hyper-V must be configured to allow this as well.
+
+*   Hyper-V driver does not support MAC or VLAN filtering because the host does not support it.
+    The device has only a single MAC address.
+
+*   VLAN tags are always stripped and presented in mbuf tci field.
+
+*   The Hyper-V driver does not use or support Link State or Rx interrupt.
+
+*   The number of queues is limited by the host (currently 64).
+    When used with 4.16 kernel only a single queue is available.
+
+*   This driver is intended for use with synthetic path only.
+    Accelerated Networking (SR-IOV) acceleration is not supported yet.
+    Use the VDEV_NETVSC device for accelerated networking instead.
+
+
+Prerequisites
+-------------
+
+The following prerequisites apply:
+
+*   Linux kernel support for UIO on vmbus is done with the uio_hv_generic driver.
+    This driver was originally added in 4.14 kernel, but that version lacks necessary
+    features for networking. The 4.16 kernel will work but is limited to a single queue.
+    Supporting multiple queues (subchannels) required additional changes
+    which were added in 5.0.
+
diff --git a/doc/guides/rel_notes/release_18_05.rst b/doc/guides/rel_notes/release_18_05.rst
index bc9cdda6af7a..91e7e8c9551b 100644
--- a/doc/guides/rel_notes/release_18_05.rst
+++ b/doc/guides/rel_notes/release_18_05.rst
@@ -115,6 +115,12 @@ New Features
 
   Linux uevent is supported as backend of this device event notification framework.
 
+* **Added experimental support for Hyper-V netvsc PMD.**
+
+  The new experimntal ``netvsc`` poll mode driver provides native support for
+  networking on Hyper-V. See the :doc:`../nics/netvsce` nic driver guide
+  for more details on this   new driver.
+
 
 API Changes
 -----------
-- 
2.17.0