From patchwork Mon Apr 16 23:24:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 38256 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6C8691B012; Tue, 17 Apr 2018 01:24:52 +0200 (CEST) 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 ; Tue, 17 Apr 2018 01:24:49 +0200 (CEST) Received: by mail-pf0-f194.google.com with SMTP id p6so11259486pfn.4 for ; 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 X-Google-Original-From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Matching documentation for new netvsc device. Signed-off-by: Stephen Hemminger --- 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 ` 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 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 -----------