From patchwork Wed Apr 26 19:04:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ronak Doshi X-Patchwork-Id: 126550 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D9D8342A0A; Wed, 26 Apr 2023 21:30:22 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A278242D3B; Wed, 26 Apr 2023 21:30:05 +0200 (CEST) Received: from EX-PRD-EDGE01.vmware.com (EX-PRD-EDGE01.vmware.com [208.91.3.33]) by mails.dpdk.org (Postfix) with ESMTP id C9B4A4068E for ; Wed, 26 Apr 2023 21:04:33 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=s1024; d=vmware.com; h=from:to:cc:subject:date:message-id:mime-version:content-type; bh=1LuVXzxle/Mng4G6TGQnX28ZvR87ylRFjNkR1191oAQ=; b=Tii8r20R/jb3R9Pw4iQWevXZLBNPQNGPq+NdP9KxP956GJbk8HO4aAPd/f1hcA SVajyljFiltamGkmWZ7X4CNmZlJlTSZ+zSY2deMK13lraZ8OSaHdLf5RFANrJG VHMPjjAipXY/YcTRDq+gpAPIuMPyS5sp7nXUofKGpSsONe4= Received: from sc9-mailhost1.vmware.com (10.113.161.71) by EX-PRD-EDGE01.vmware.com (10.188.245.6) with Microsoft SMTP Server id 15.1.2375.34; Wed, 26 Apr 2023 12:04:24 -0700 Received: from htb-1n-eng-dhcp122.eng.vmware.com (unknown [10.20.114.216]) by sc9-mailhost1.vmware.com (Postfix) with ESMTP id 1D8B120160; Wed, 26 Apr 2023 12:04:27 -0700 (PDT) Received: by htb-1n-eng-dhcp122.eng.vmware.com (Postfix, from userid 0) id 88E9DA83B6; Wed, 26 Apr 2023 12:04:26 -0700 (PDT) From: Ronak Doshi To: CC: , Ronak Doshi Subject: [PATCH v2 next 0/7] net/vmxnet3: upgrade to version 7 Date: Wed, 26 Apr 2023 12:04:07 -0700 Message-ID: <20230426190415.28239-1-doshir@vmware.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 Received-SPF: None (EX-PRD-EDGE01.vmware.com: doshir@vmware.com does not designate permitted sender hosts) X-Mailman-Approved-At: Wed, 26 Apr 2023 21:30:01 +0200 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org vmxnet3 emulation has recently added several new features including support for uniform passthrough(UPT). To make UPT work vmxnet3 has to be enhanced as per the new specification. This patch series extends the vmxnet3 driver to leverage these new features. Compatibility is maintained using existing vmxnet3 versioning mechanism as follows: - new features added to vmxnet3 emulation are associated with new vmxnet3 version viz. vmxnet3 version 7. - emulation advertises all the versions it supports to the driver. - during initialization, vmxnet3 driver picks the highest version number supported by both the emulation and the driver and configures emulation to run at that version. In particular, following changes are introduced: Patch 1: This patch introduces utility macros for vmxnet3 version 7 comparison and updates Copyright information. Patch 2: This patch adds new capability registers to fine control enablement of individual features based on emulation and passthrough. Patch 3: This patch adds support for large passthrough BAR register. Patch 4: This patch introduces new command to set ring buffer sizes to pass this information to the hardware. Patch 5: For better performance, hardware has a requirement to limit number of TSO descriptors. This patch adds that support. Patch 6: Avoid updating rxprod register when in UPT for performance reasons. Patch 7: With all vmxnet3 version 7 changes incorporated in the vmxnet3 driver, with this patch, the driver can configure emulation to run at vmxnet3 version 7. Changes in v2: - modified the title to include "net/" - addressed checkpatch complaints and some typo in patch commits - removed RTE_ETH_DEV_CAPA_PASS_THRU as it was specific to vmxnet3 - added new features information in release notes - updated feature related information in vmxnet3 driver documentation Ronak Doshi (7): net/vmxnet3: prepare for version 7 changes net/vmxnet3: add support for capability registers net/vmxnet3: add support for large passthrough BAR register net/vmxnet3: add command to set ring buffer sizes net/vmxnet3: limit number of TXDs used for TSO packet net/vmxnet3: avoid updating rxprod register frequently net/vmxnet3: update to version 7 doc/guides/nics/vmxnet3.rst | 26 +++++++++ doc/guides/rel_notes/release_23_07.rst | 6 +++ drivers/net/vmxnet3/base/vmxnet3_defs.h | 74 ++++++++++++++++++++++--- drivers/net/vmxnet3/vmxnet3_ethdev.c | 95 ++++++++++++++++++++++++++++++++- drivers/net/vmxnet3/vmxnet3_ethdev.h | 16 ++++++ drivers/net/vmxnet3/vmxnet3_ring.h | 2 +- drivers/net/vmxnet3/vmxnet3_rxtx.c | 48 ++++++++++++----- 7 files changed, 245 insertions(+), 22 deletions(-)