From patchwork Thu Sep 8 21:54:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Long Li X-Patchwork-Id: 116102 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 DD787A0548; Thu, 8 Sep 2022 23:54:46 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7B1A9410FB; Thu, 8 Sep 2022 23:54:46 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 0ED5040DDC for ; Thu, 8 Sep 2022 23:54:45 +0200 (CEST) Received: by linux.microsoft.com (Postfix, from userid 1004) id 1DF722045E08; Thu, 8 Sep 2022 14:54:44 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 1DF722045E08 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxonhyperv.com; s=default; t=1662674084; bh=fKkonFby/s7XM1hVuzP97VTqnYpOBu9m3I0TA8CDEG8=; h=From:To:Cc:Subject:Date:Reply-To:From; b=OY1ZpysvY2PhZY0jtZpIbioDs2Ad4JNgegkGfdjE0PELMprJM0EDHJOWojnlHApAD 0Kpr5iM7iTAJNWcfs+BIU2F1g/Y9ZHsHBcpia6w8dH+TDLXMDCzB/6xOT49mevIll6 hcvRG2ar+Q26GunVKkuu7H9WCjdXaENC3PEwaalg= From: longli@linuxonhyperv.com To: Ferruh Yigit Cc: dev@dpdk.org, Ajay Sharma , Stephen Hemminger , Long Li Subject: [Patch v8 00/18] Introduce Microsoft Azure Network Adatper (MANA) PMD Date: Thu, 8 Sep 2022 14:54:40 -0700 Message-Id: <1662674080-28874-1-git-send-email-longli@linuxonhyperv.com> X-Mailer: git-send-email 1.8.3.1 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: , Reply-To: longli@microsoft.com Errors-To: dev-bounces@dpdk.org From: Long Li MANA is a network interface card to be used in the Azure cloud environment. MANA provides safe access to user memory through memory registration. It has IOMMU built into the hardware. MANA uses IB verbs and RDMA layer to configure hardware resources. It requires the corresponding RDMA kernel-mode and user-mode drivers. The MANA RDMA kernel-mode driver is being reviewed at: https://patchwork.kernel.org/project/netdevbpf/cover/1655345240-26411-1-git-send-email-longli@linuxonhyperv.com/ The MANA RDMA user-mode driver is being reviewed at: https://github.com/linux-rdma/rdma-core/pull/1177 Long Li (18): net/mana: add basic driver with build environment and doc net/mana: add device configuration and stop net/mana: add function to report support ptypes net/mana: add link update net/mana: add function for device removal interrupts net/mana: add device info net/mana: add function to configure RSS net/mana: add function to configure Rx queues net/mana: add function to configure Tx queues net/mana: implement memory registration net/mana: implement the hardware layer operations net/mana: add function to start/stop Tx queues net/mana: add function to start/stop Rx queues net/mana: add function to receive packets net/mana: add function to send packets net/mana: add function to start/stop device net/mana: add function to report queue stats net/mana: add function to support Rx interrupts MAINTAINERS | 6 + doc/guides/nics/features/mana.ini | 20 + doc/guides/nics/index.rst | 1 + doc/guides/nics/mana.rst | 69 ++ drivers/net/mana/gdma.c | 301 ++++++ drivers/net/mana/mana.c | 1501 +++++++++++++++++++++++++++++ drivers/net/mana/mana.h | 548 +++++++++++ drivers/net/mana/meson.build | 48 + drivers/net/mana/mp.c | 336 +++++++ drivers/net/mana/mr.c | 348 +++++++ drivers/net/mana/rx.c | 531 ++++++++++ drivers/net/mana/tx.c | 415 ++++++++ drivers/net/mana/version.map | 3 + drivers/net/meson.build | 1 + 14 files changed, 4128 insertions(+) create mode 100644 doc/guides/nics/features/mana.ini create mode 100644 doc/guides/nics/mana.rst create mode 100644 drivers/net/mana/gdma.c create mode 100644 drivers/net/mana/mana.c create mode 100644 drivers/net/mana/mana.h create mode 100644 drivers/net/mana/meson.build create mode 100644 drivers/net/mana/mp.c create mode 100644 drivers/net/mana/mr.c create mode 100644 drivers/net/mana/rx.c create mode 100644 drivers/net/mana/tx.c create mode 100644 drivers/net/mana/version.map