From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id C9484460C2;
	Mon, 20 Jan 2025 12:16:24 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id BA2AE40E68;
	Mon, 20 Jan 2025 12:15:18 +0100 (CET)
Received: from lf-2-45.ptr.blmpb.com (lf-2-45.ptr.blmpb.com [101.36.218.45])
 by mails.dpdk.org (Postfix) with ESMTP id 7613D40E1F
 for <dev@dpdk.org>; Mon, 20 Jan 2025 12:15:14 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
 s=feishu2403070942; d=yunsilicon.com; t=1737371710; h=from:subject:
 mime-version:from:date:message-id:subject:to:cc:reply-to:content-type:
 mime-version:in-reply-to:message-id;
 bh=r2aA/oDyp5QbIxtdDWPQGd6w1eNBDd667thYLAqcEEU=;
 b=DM1OE1eBW1rb0CvyMt0z5mvu75iLbBslHgL/A2c8OojdxUzxKvO4mYU6EMZONDQmEVKj0i
 qB+ECDdL/yZhfNzdqsVrSvXPdQ0Ind7uMJOp6kRMoGKlp9bR1dknVnI8b3ruYvyTL5I9pA
 bBWpZ6R4GLAG89nFRydtqhsRNPd4ByEKJ/iDA1kU2nMaWuERTa+TvtzaEZ6q51B668rzOm
 ae0KpJyOGG7ARufcu0y2KF3TQ4K5bQDH1Q719US20GZyIyqv8CR0itpWp235wNWzcIVThN
 ybCB++YCy08QEZ6CG92GaWBOMuBzPlKnBKWeyyyOVss0gyh2Z0TPXMWDI8ykxw==
From: "WanRenyong" <wanry@yunsilicon.com>
Message-Id: <20250120111431.1048479-1-wanry@yunsilicon.com>
X-Original-From: WanRenyong <wanry@yunsilicon.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
To: <dev@dpdk.org>
Cc: <ferruh.yigit@amd.com>, <thomas@monjalon.net>, 
 <stephen@networkplumber.org>, <qianr@yunsilicon.com>, 
 <nana@yunsilicon.com>, <zhangxx@yunsilicon.com>, 
 <zhangxx@yunsilicon.com>, <xudw@yunsilicon.com>, <jacky@yunsilicon.com>, 
 <weihg@yunsilicon.com>
Subject: [PATCH v6 00/15] XSC PMD for Yunsilicon NICs
Mime-Version: 1.0
X-Mailer: git-send-email 2.25.1
Received: from ubuntu-liun.yunsilicon.com ([58.34.192.114]) by smtp.feishu.cn
 with ESMTPS; Mon, 20 Jan 2025 19:15:07 +0800
X-Lms-Return-Path: <lba+2678e303c+df847a+dpdk.org+wanry@yunsilicon.com>
Date: Mon, 20 Jan 2025 19:15:07 +0800
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=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 

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

---

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

---
WanRenyong (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