From patchwork Fri Aug 4 14:54:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcelo Henrique Cerri X-Patchwork-Id: 797843 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical-com.20150623.gappssmtp.com header.i=@canonical-com.20150623.gappssmtp.com header.b="ZzJKfeDG"; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) by ozlabs.org (Postfix) with ESMTP id 3xP92k2GHMz9s8P; Sat, 5 Aug 2017 00:55:26 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1dde0Z-0007UC-Gw; Fri, 04 Aug 2017 14:55:23 +0000 Received: from mail-qk0-f171.google.com ([209.85.220.171]) by huckleberry.canonical.com with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1dde0N-0007Ks-E7 for kernel-team@lists.ubuntu.com; Fri, 04 Aug 2017 14:55:11 +0000 Received: by mail-qk0-f171.google.com with SMTP id z18so10223239qka.4 for ; Fri, 04 Aug 2017 07:55:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=hwX/L2KAVPZLo/DI4QIkhs0Vejbjwpo13SRXTu3lHuw=; b=ZzJKfeDGKBxldTDlZwR/Hwg/1fW4vNpaQ4SiOu5SwktmE25kOT0f2YG7fh8ra1iXmm HZyCXRQ2oefBMoPrQe5ItckiPocNYfprf2eaW/X7JquzYjBsJKT2BHCn+tCcpqOc0xjH fOKjLTZSOYzrDaFGUwTRZTinPeca7MK0H9B5LN4ZtZPhPrsDIdsfGOKsTEks8Pw0FzJQ 7VRJNTP9ZfvyqxlpRtPpk2O2CTMadGs3E0MKMPpE3EUonUMJPJ9rJCLYXxkz7vtasfU8 nW8g28tI/3eiwyAE6N4+uf1emSVHNQR0Cn1T6wM20jGXQR3Rv/LTmzu0B5A8SMYVaWqu lQKg== 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=hwX/L2KAVPZLo/DI4QIkhs0Vejbjwpo13SRXTu3lHuw=; b=sjkcqJxLLNlw4NleJ84i412Np5AIZiy0DVNuG/jcrpD5U2dlct5Uz01QgcrgAIq9lV tFGHinUnU0uyBFxEJBbsVH7DU5euk1/QJUndlLY4GiKSDZD3SNvPuyAjJgWo17z5quKk xSx3n9pl32qYisZ6LguLd91wFQ6gV3NFYKm09j69XJZ8acJZWsF/rta2FKUX7C3xf7nD lq3huOkqsZMyPKgRK0GX+QehfkUoRhyBVe0M+dgcnr+XzC9T8apsfez/L280RgDEO+wj ib1D8fkDxfaybFo5R7p6Ksx1+cJrlRZcQWx2mqohqNTERTdWdvaiO53cORTNRWwy839n ahcA== X-Gm-Message-State: AHYfb5hgmKn5PShvd7XxpNTXiyzp2oJFBqvzVSrDAQilKMUcZTNEi1rh EV+hMJw6yIADoD1RCec= X-Received: by 10.55.165.9 with SMTP id o9mr3507082qke.346.1501858510185; Fri, 04 Aug 2017 07:55:10 -0700 (PDT) Received: from localhost.localdomain ([191.8.84.147]) by smtp.gmail.com with ESMTPSA id z47sm1194750qth.87.2017.08.04.07.55.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 04 Aug 2017 07:55:09 -0700 (PDT) From: Marcelo Henrique Cerri To: kernel-team@lists.ubuntu.com Subject: [azure][PATCH v1 8/9] UBUNTU: SAUCE: netvsc: add documentation Date: Fri, 4 Aug 2017 11:54:43 -0300 Message-Id: <1501858484-28849-9-git-send-email-marcelo.cerri@canonical.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1501858484-28849-1-git-send-email-marcelo.cerri@canonical.com> References: <1501858484-28849-1-git-send-email-marcelo.cerri@canonical.com> Cc: Josh Poulson , Stephen Hemminger X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.14 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: kernel-team-bounces@lists.ubuntu.com From: stephen hemminger BugLink: http://bugs.launchpad.net/bugs/1708469 Add some background documentation on netvsc device options and limitations. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller (cherry picked from net-next commit a5050c61036859e6fd7924f25cc6a97e7462039d) Signed-off-by: Marcelo Henrique Cerri --- Documentation/networking/netvsc.txt | 63 +++++++++++++++++++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 64 insertions(+) create mode 100644 Documentation/networking/netvsc.txt diff --git a/Documentation/networking/netvsc.txt b/Documentation/networking/netvsc.txt new file mode 100644 index 000000000000..4ddb4e4b0426 --- /dev/null +++ b/Documentation/networking/netvsc.txt @@ -0,0 +1,63 @@ +Hyper-V network driver +====================== + +Compatibility +============= + +This driver is compatible with Windows Server 2012 R2, 2016 and +Windows 10. + +Features +======== + + Checksum offload + ---------------- + The netvsc driver supports checksum offload as long as the + Hyper-V host version does. Windows Server 2016 and Azure + support checksum offload for TCP and UDP for both IPv4 and + IPv6. Windows Server 2012 only supports checksum offload for TCP. + + Receive Side Scaling + -------------------- + Hyper-V supports receive side scaling. For TCP, packets are + distributed among available queues based on IP address and port + number. Current versions of Hyper-V host, only distribute UDP + packets based on the IP source and destination address. + The port number is not used as part of the hash value for UDP. + Fragmented IP packets are not distributed between queues; + all fragmented packets arrive on the first channel. + + Generic Receive Offload, aka GRO + -------------------------------- + The driver supports GRO and it is enabled by default. GRO coalesces + like packets and significantly reduces CPU usage under heavy Rx + load. + + SR-IOV support + -------------- + Hyper-V supports SR-IOV as a hardware acceleration option. If SR-IOV + is enabled in both the vSwitch and the guest configuration, then the + Virtual Function (VF) device is passed to the guest as a PCI + device. In this case, both a synthetic (netvsc) and VF device are + visible in the guest OS and both NIC's have the same MAC address. + + The VF is enslaved by netvsc device. The netvsc driver will transparently + switch the data path to the VF when it is available and up. + Network state (addresses, firewall, etc) should be applied only to the + netvsc device; the slave device should not be accessed directly in + most cases. The exceptions are if some special queue discipline or + flow direction is desired, these should be applied directly to the + VF slave device. + + Receive Buffer + -------------- + Packets are received into a receive area which is created when device + is probed. The receive area is broken into MTU sized chunks and each may + contain one or more packets. The number of receive sections may be changed + via ethtool Rx ring parameters. + + There is a similar send buffer which is used to aggregate packets for sending. + The send area is broken into chunks of 6144 bytes, each of section may + contain one or more packets. The send buffer is an optimization, the driver + will use slower method to handle very large packets or if the send buffer + area is exhausted. diff --git a/MAINTAINERS b/MAINTAINERS index 8618e6b21458..6f260f64dc05 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -6086,6 +6086,7 @@ M: Haiyang Zhang M: Stephen Hemminger L: devel@linuxdriverproject.org S: Maintained +F: Documentation/networking/netvsc.txt F: arch/x86/include/asm/mshyperv.h F: arch/x86/include/asm/trace/hyperv.h F: arch/x86/include/uapi/asm/hyperv.h