From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 77381A0581; Thu, 20 Oct 2022 12:38:32 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5DBE942C80; Thu, 20 Oct 2022 12:38:32 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 1D80D42C7C for ; Thu, 20 Oct 2022 12:38:30 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1666262311; x=1697798311; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=pa0ts0ARCuHfbyaAneoHeGvx4p90Dt9tx3oCnnP2GVk=; b=gZZiQ2USTbLprxsNCttBmHDFrxrhRkNZ/1WHD8te+Ob9sHgCvC7lod9v j5i4GVhB8E7b90gIerfk/5S5q00OuzIaUjSyZXjrE0InjU5qH3gAm7FdZ u+1W45LBksumOUqtRNwaU2RVNgtQTM+JazwLVqDV8mvtURtVwDBCcV3se BvhxbvHhw+rao5cZiROIyUHA8Yj+RTNCilFNT2h43aMEbUd0d4k8ysmkL +UjWEXb9OKw1pi7xytYjT9EqTTjWQXovkNdy0Ad1W7fNemZkbo7z/o8dt trv2s/4V2d20F7rRFU7wyrmSdLrt9YwAVw2SspTi4C/jApgbcr8SQrIMp g==; X-IronPort-AV: E=McAfee;i="6500,9779,10505"; a="308354859" X-IronPort-AV: E=Sophos;i="5.95,198,1661842800"; d="scan'208";a="308354859" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Oct 2022 03:38:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10505"; a="698582816" X-IronPort-AV: E=Sophos;i="5.95,198,1661842800"; d="scan'208";a="698582816" Received: from dpdk-jf-ntb-one.sh.intel.com ([10.67.111.104]) by fmsmga004.fm.intel.com with ESMTP; 20 Oct 2022 03:38:27 -0700 From: Junfeng Guo To: qi.z.zhang@intel.com, jingjing.wu@intel.com, ferruh.yigit@xilinx.com, beilei.xing@intel.com Cc: dev@dpdk.org, xiaoyun.li@intel.com, awogbemila@google.com, bruce.richardson@intel.com, hemant.agrawal@nxp.com, stephen@networkplumber.org, chenbo.xia@intel.com, helin.zhang@intel.com, Junfeng Guo Subject: [PATCH v6 0/8] introduce GVE PMD Date: Thu, 20 Oct 2022 18:36:48 +0800 Message-Id: <20221020103656.1068036-1-junfeng.guo@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221010101757.878317-2-junfeng.guo@intel.com> References: <20221010101757.878317-2-junfeng.guo@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Introduce a new PMD for Google Virtual Ethernet (GVE). gve (or gVNIC) is the standard virtual ethernet interface on Google Cloud Platform (GCP), which is one of the multiple virtual interfaces from those leading CSP customers in the world. Having a well maintained/optimized gve PMD on DPDK community can help those cloud instance consumers with better experience of performance, maintenance who wants to run their own VNFs on GCP. Please refer to https://cloud.google.com/compute/docs/networking/using-gvnic for the device description. This patch set requires an exception for MIT license for GVE base code. And the base code includes the following files: - gve_adminq.c - gve_adminq.h - gve_desc.h - gve_desc_dqo.h - gve_register.h It's based on GVE kernel driver v1.3.0 and the original code is in https://github.com/GoogleCloudPlatform/compute-virtual-ethernet-linux/tree/v1.3.0 Please info us if there is any object for the copyright concern. Thanks! v2: fix some CI check error. v3: refactor some code and fix some build error. v4: move the Google base code files into DPDK base folder. v5: reorder commit sequence and drop the stats feature. v6: improve the code. Junfeng Guo (8): net/gve/base: introduce GVE PMD base code net/gve/base: add OS specific implementation net/gve: add support for device initialization net/gve: add support for link update net/gve: add support for MTU setting net/gve: add support for dev info get and dev configure net/gve: add support for queue operations net/gve: add support for Rx/Tx MAINTAINERS | 6 + doc/guides/nics/features/gve.ini | 16 + doc/guides/nics/gve.rst | 76 ++ doc/guides/nics/index.rst | 1 + doc/guides/rel_notes/release_22_11.rst | 5 + drivers/net/gve/base/gve.h | 58 ++ drivers/net/gve/base/gve_adminq.c | 925 +++++++++++++++++++++++++ drivers/net/gve/base/gve_adminq.h | 383 ++++++++++ drivers/net/gve/base/gve_desc.h | 139 ++++ drivers/net/gve/base/gve_desc_dqo.h | 256 +++++++ drivers/net/gve/base/gve_osdep.h | 159 +++++ drivers/net/gve/base/gve_register.h | 30 + drivers/net/gve/gve_ethdev.c | 699 +++++++++++++++++++ drivers/net/gve/gve_ethdev.h | 295 ++++++++ drivers/net/gve/gve_logs.h | 14 + drivers/net/gve/gve_rx.c | 354 ++++++++++ drivers/net/gve/gve_tx.c | 669 ++++++++++++++++++ drivers/net/gve/meson.build | 16 + drivers/net/gve/version.map | 3 + drivers/net/meson.build | 1 + 20 files changed, 4105 insertions(+) create mode 100644 doc/guides/nics/features/gve.ini create mode 100644 doc/guides/nics/gve.rst create mode 100644 drivers/net/gve/base/gve.h create mode 100644 drivers/net/gve/base/gve_adminq.c create mode 100644 drivers/net/gve/base/gve_adminq.h create mode 100644 drivers/net/gve/base/gve_desc.h create mode 100644 drivers/net/gve/base/gve_desc_dqo.h create mode 100644 drivers/net/gve/base/gve_osdep.h create mode 100644 drivers/net/gve/base/gve_register.h create mode 100644 drivers/net/gve/gve_ethdev.c create mode 100644 drivers/net/gve/gve_ethdev.h create mode 100644 drivers/net/gve/gve_logs.h create mode 100644 drivers/net/gve/gve_rx.c create mode 100644 drivers/net/gve/gve_tx.c create mode 100644 drivers/net/gve/meson.build create mode 100644 drivers/net/gve/version.map -- 2.34.1