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 C98A546140; Tue, 28 Jan 2025 15:49:05 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 36BE841132; Tue, 28 Jan 2025 15:47:33 +0100 (CET) Received: from lf-2-51.ptr.blmpb.com (lf-2-51.ptr.blmpb.com [101.36.218.51]) by mails.dpdk.org (Postfix) with ESMTP id 72433410F6 for ; Tue, 28 Jan 2025 15:47:29 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=feishu2403070942; d=yunsilicon.com; t=1738075644; h=from:subject: mime-version:from:date:message-id:subject:to:cc:reply-to:content-type: mime-version:in-reply-to:message-id; bh=NZ/BFLV1XNmQzVNjig31vrBAdZfRM53tlSEFTbsI7qw=; b=AQOaJIiBiKhRmAunXeP5YI/JHeV/haMMp/H3ifabhvW4eCv8M7iKJ6bSnvLBjmC+DyFuLL vcszwxHDvbOzKkAeNfC2x5Yv/Z/vskd8came4m2bqVw1Px/bK1IuLecI5UlGn/h32SZzxA 6a3xFsUBW5b2CBJd0wK9dLCUBJWp9Y0URWBQtG5wSkP7MSQ0T3gmgbtCzVZK7ZMFtx6KMx 0WQ5TQU8DtMvTPkhBOl0s1RVbwWXQkW8zY5hQOerOGisranUHNFhiBspAW9Dyv0IEvrALR pqxwypf0e2ZH1qV6cE8+AtCCumT/TUMxjcjwIKm7cBvl+9h87XnnsxMp34TAQA== Date: Tue, 28 Jan 2025 22:47:22 +0800 Message-Id: <20250128144649.1956159-1-wanry@yunsilicon.com> Received: from ubuntu-liun.yunsilicon.com ([58.34.192.114]) by smtp.feishu.cn with ESMTPS; Tue, 28 Jan 2025 22:47:21 +0800 To: X-Mailer: git-send-email 2.25.1 X-Lms-Return-Path: X-Original-From: Renyong Wan Subject: [PATCH v7 00/15] XSC PMD for Yunsilicon NICs Content-Transfer-Encoding: 7bit Cc: , , , , , , , , Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 From: "Renyong Wan" 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 This xsc PMD (**librte_net_xsc**) provides poll mode driver for Yunsilicon metaScale serials NICs. Features: --------- - MTU update - TSO - RSS hash - RSS key update - RSS reta update - L3 checksum offload - L4 checksum offload - Inner L3 checksum - Inner L4 checksum - Basic stats - Stats per queue Support NICs: ------------- - metaScale-200S Single QSFP56 Port 200GE SmartNIC - metaScale-200 Quad QSFP28 Ports 100GE SmartNIC - metaScale-50 Dual QSFP28 Port 25GE SmartNIC - metaScale-100Q Quad QSFP28 Port 25GE SmartNIC --- v7: * Remove the packed attributes of sub structures and unions. * Remove the cast of xdev->dev_priv. * Remove the cast of malloc return value. * Define the size of xdev->name to PCI_PRI_STR_SIZE. * Change the name of Wanrenyong to Renyong Wan v6: * Remove unnecessary paren. * Add the feature of stats per queue in xsc.ini. * Use memcpy instead of rte_memcpy in non critical path. * Rebase from the main branch and merge release notes. * Replace __rte_packed with __rte_packed_begin and __rte_packed_end. v5: * fix compilation errors. * fix coding style issue with misspelling. * remove some unnecessary parameter checks. * remove unnecessary call of rte_wmb. * Rearrange elements in structure to avoid holes. v4: * Based on the review comments from previous versions, reconstruct the xsc PMD to eliminate the dependency on rdma core library and proprietary kernel driver, while adding support for the vfio kernel driver. v3: * fix compilation errors v2: * fix checkpatch warnings and errors --- Renyong Wan (15): net/xsc: add xsc PMD framework net/xsc: add xsc device initialization net/xsc: add xsc mailbox net/xsc: add xsc dev ops to support VFIO driver net/xsc: add PCT interfaces net/xsc: initialize xsc representors net/xsc: add ethdev configure and RSS ops net/xsc: add Rx and Tx queue setup net/xsc: add ethdev start net/xsc: add ethdev stop and close net/xsc: add ethdev Rx burst net/xsc: add ethdev Tx burst net/xsc: add basic stats ops net/xsc: add ethdev infos get net/xsc: add ethdev link and MTU ops .mailmap | 5 + MAINTAINERS | 10 + doc/guides/nics/features/xsc.ini | 19 + doc/guides/nics/index.rst | 1 + doc/guides/nics/xsc.rst | 31 + doc/guides/rel_notes/release_25_03.rst | 4 + drivers/net/meson.build | 1 + drivers/net/xsc/meson.build | 17 + drivers/net/xsc/xsc_cmd.h | 387 +++++++++++ drivers/net/xsc/xsc_defs.h | 100 +++ drivers/net/xsc/xsc_dev.c | 397 +++++++++++ drivers/net/xsc/xsc_dev.h | 184 +++++ drivers/net/xsc/xsc_ethdev.c | 917 +++++++++++++++++++++++++ drivers/net/xsc/xsc_ethdev.h | 63 ++ drivers/net/xsc/xsc_log.h | 24 + drivers/net/xsc/xsc_np.c | 492 +++++++++++++ drivers/net/xsc/xsc_np.h | 154 +++++ drivers/net/xsc/xsc_rx.c | 512 ++++++++++++++ drivers/net/xsc/xsc_rx.h | 65 ++ drivers/net/xsc/xsc_rxtx.h | 191 +++++ drivers/net/xsc/xsc_tx.c | 354 ++++++++++ drivers/net/xsc/xsc_tx.h | 62 ++ drivers/net/xsc/xsc_vfio.c | 746 ++++++++++++++++++++ drivers/net/xsc/xsc_vfio_mbox.c | 691 +++++++++++++++++++ drivers/net/xsc/xsc_vfio_mbox.h | 142 ++++ 25 files changed, 5569 insertions(+) create mode 100644 doc/guides/nics/features/xsc.ini create mode 100644 doc/guides/nics/xsc.rst create mode 100644 drivers/net/xsc/meson.build create mode 100644 drivers/net/xsc/xsc_cmd.h create mode 100644 drivers/net/xsc/xsc_defs.h create mode 100644 drivers/net/xsc/xsc_dev.c create mode 100644 drivers/net/xsc/xsc_dev.h create mode 100644 drivers/net/xsc/xsc_ethdev.c create mode 100644 drivers/net/xsc/xsc_ethdev.h create mode 100644 drivers/net/xsc/xsc_log.h create mode 100644 drivers/net/xsc/xsc_np.c create mode 100644 drivers/net/xsc/xsc_np.h create mode 100644 drivers/net/xsc/xsc_rx.c create mode 100644 drivers/net/xsc/xsc_rx.h create mode 100644 drivers/net/xsc/xsc_rxtx.h create mode 100644 drivers/net/xsc/xsc_tx.c create mode 100644 drivers/net/xsc/xsc_tx.h create mode 100644 drivers/net/xsc/xsc_vfio.c create mode 100644 drivers/net/xsc/xsc_vfio_mbox.c create mode 100644 drivers/net/xsc/xsc_vfio_mbox.h -- 2.25.1