Message ID | 20230904045658.238185-1-wanry@3snic.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> 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 30739424E7; Mon, 4 Sep 2023 06:57:18 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 26664402A9; Mon, 4 Sep 2023 06:57:18 +0200 (CEST) Received: from VLXDG1SPAM1.ramaxel.com (email.unionmem.com [221.4.138.186]) by mails.dpdk.org (Postfix) with ESMTP id 822AA4029D for <dev@dpdk.org>; Mon, 4 Sep 2023 06:57:16 +0200 (CEST) Received: from V12DG1MBS03.ramaxel.local ([172.26.18.33]) by VLXDG1SPAM1.ramaxel.com with ESMTP id 3844v740054226; Mon, 4 Sep 2023 12:57:07 +0800 (GMT-8) (envelope-from wanry@3snic.com) Received: from localhost.localdomain (10.64.136.151) by V12DG1MBS03.ramaxel.local (172.26.18.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2375.17; Mon, 4 Sep 2023 12:57:07 +0800 From: <wanry@3snic.com> To: <dev@dpdk.org> CC: <ferruh.yigit@amd.com>, Renyong Wan <wanry@3snic.com> Subject: [PATCH v5 00/32] Introduce sssnic PMD for 3SNIC's 9x0 serials Ethernet adapters Date: Mon, 4 Sep 2023 12:56:26 +0800 Message-ID: <20230904045658.238185-1-wanry@3snic.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain X-Originating-IP: [10.64.136.151] X-ClientProxiedBy: V12DG1MBS03.ramaxel.local (172.26.18.33) To V12DG1MBS03.ramaxel.local (172.26.18.33) X-DNSRBL: X-SPAM-SOURCE-CHECK: pass X-MAIL: VLXDG1SPAM1.ramaxel.com 3844v740054226 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 |
Series |
Introduce sssnic PMD for 3SNIC's 9x0 serials Ethernet adapters
|
|
Message
Renyong Wan
Sept. 4, 2023, 4:56 a.m. UTC
From: Renyong Wan <wanry@3snic.com>
The sssnic PMD (**librte_pmd_sssnic**) provides poll mode driver support
for 3SNIC 9x0 serials family of Ethernet adapters.
Supported NICs are:
- 3S910 Dual Port SFP28 10/25GbE Ethernet adapter
- 3S920 Quad Port SFP28 10/25GbE Ethernet adapter
- 3S920 Quad Port QSFP28 100GbE Ethernet adapter
Features of sssnic PMD are:
- Link status
- Link status event
- Queue start/stop
- Rx interrupt
- Scattered Rx
- TSO
- LRO
- Promiscuous mode
- Allmulticast mode
- Unicast MAC filter
- Multicast MAC filte
- RSS hash
- RSS key update
- RSS reta update
- Inner RSS
- VLAN filter
- VLAN offload
- L3 checksum offload
- L4 checksum offload
- Inner L3 checksum
- Inner L4 checksum
- Basic stats
- Extended stats
- Stats per queue
- Flow control
- FW version
- Generic flow API
---
v2:
* Fixed 'Title underline too short' in doc/guides/nics/sssnic.rst.
* Removed error.h from including files.
* Fixed variable 'cmd_len' is uninitialized when used.
* Fixed 'EINVAL' undeclared.
* Fixed wrong format of printing uint64_t.
* Fixed 'mask->hdr.src_addr' will always evaluate to 'true'.
v3:
* Fixed dereferencing type-punned pointer in base/sssnic_mbox.c.
v4:
* Fixed dereferencing type-punned pointer in base/sssnic_eventq.c.
* Fixed coding style issue of COMPLEX_MACRO.
* Fixed coding style issue of REPEATED_WORD.
v5:
* Fixed rebase mistake.
* Fixed incorrect path in MAINTAINERS file.
---
Renyong Wan (32):
net/sssnic: add build and doc infrastructure
net/sssnic: add log type and log macros
net/sssnic: support probe and remove
net/sssnic: initialize hardware base
net/sssnic: add event queue
net/sssnic/base: add message definition and utility
net/sssnic/base: add mailbox support
net/sssnic/base: add work queue
net/sssnic/base: add control queue
net/sssnic: add dev configure and infos get
net/sssnic: add dev MAC ops
net/sssnic: support dev link status
net/sssnic: support link status event
net/sssnic: support Rx queue setup and release
net/sssnic: support Tx queue setup and release
net/sssnic: support Rx queue start and stop
net/sssnic: support Tx queue start and stop
net/sssnic: add Rx interrupt support
net/sssnic: support dev start and stop
net/sssnic: support dev close and reset
net/sssnic: add allmulticast and promiscuous ops
net/sssnic: add basic and extended stats ops
net/sssnic: support Rx packet burst
net/sssnic: support Tx packet burst
net/sssnic: add RSS support
net/sssnic: support dev MTU set
net/sssnic: support dev queue info get
net/sssnic: support dev firmware version get
net/sssnic: add dev flow control ops
net/sssnic: support VLAN offload and filter
net/sssnic: add generic flow ops
net/sssnic: add VF dev support
.mailmap | 2 +
MAINTAINERS | 7 +
doc/guides/nics/features/sssnic.ini | 47 +
doc/guides/nics/index.rst | 1 +
doc/guides/nics/sssnic.rst | 73 +
drivers/net/meson.build | 1 +
drivers/net/sssnic/base/meson.build | 20 +
drivers/net/sssnic/base/sssnic_api.c | 1943 ++++++++++++++++++++
drivers/net/sssnic/base/sssnic_api.h | 498 +++++
drivers/net/sssnic/base/sssnic_cmd.h | 514 ++++++
drivers/net/sssnic/base/sssnic_ctrlq.c | 521 ++++++
drivers/net/sssnic/base/sssnic_ctrlq.h | 58 +
drivers/net/sssnic/base/sssnic_eventq.c | 461 +++++
drivers/net/sssnic/base/sssnic_eventq.h | 84 +
drivers/net/sssnic/base/sssnic_exception.c | 116 ++
drivers/net/sssnic/base/sssnic_exception.h | 10 +
drivers/net/sssnic/base/sssnic_hw.c | 486 +++++
drivers/net/sssnic/base/sssnic_hw.h | 117 ++
drivers/net/sssnic/base/sssnic_mbox.c | 615 +++++++
drivers/net/sssnic/base/sssnic_mbox.h | 45 +
drivers/net/sssnic/base/sssnic_misc.h | 52 +
drivers/net/sssnic/base/sssnic_msg.c | 254 +++
drivers/net/sssnic/base/sssnic_msg.h | 166 ++
drivers/net/sssnic/base/sssnic_reg.h | 267 +++
drivers/net/sssnic/base/sssnic_workq.c | 141 ++
drivers/net/sssnic/base/sssnic_workq.h | 108 ++
drivers/net/sssnic/meson.build | 28 +
drivers/net/sssnic/sssnic_ethdev.c | 1139 ++++++++++++
drivers/net/sssnic/sssnic_ethdev.h | 102 +
drivers/net/sssnic/sssnic_ethdev_fdir.c | 1017 ++++++++++
drivers/net/sssnic/sssnic_ethdev_fdir.h | 332 ++++
drivers/net/sssnic/sssnic_ethdev_flow.c | 981 ++++++++++
drivers/net/sssnic/sssnic_ethdev_flow.h | 11 +
drivers/net/sssnic/sssnic_ethdev_link.c | 209 +++
drivers/net/sssnic/sssnic_ethdev_link.h | 14 +
drivers/net/sssnic/sssnic_ethdev_rss.c | 377 ++++
drivers/net/sssnic/sssnic_ethdev_rss.h | 20 +
drivers/net/sssnic/sssnic_ethdev_rx.c | 1396 ++++++++++++++
drivers/net/sssnic/sssnic_ethdev_rx.h | 50 +
drivers/net/sssnic/sssnic_ethdev_stats.c | 414 +++++
drivers/net/sssnic/sssnic_ethdev_stats.h | 18 +
drivers/net/sssnic/sssnic_ethdev_tx.c | 1123 +++++++++++
drivers/net/sssnic/sssnic_ethdev_tx.h | 45 +
drivers/net/sssnic/sssnic_log.h | 51 +
44 files changed, 13934 insertions(+)
create mode 100644 doc/guides/nics/features/sssnic.ini
create mode 100644 doc/guides/nics/sssnic.rst
create mode 100644 drivers/net/sssnic/base/meson.build
create mode 100644 drivers/net/sssnic/base/sssnic_api.c
create mode 100644 drivers/net/sssnic/base/sssnic_api.h
create mode 100644 drivers/net/sssnic/base/sssnic_cmd.h
create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.c
create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.h
create mode 100644 drivers/net/sssnic/base/sssnic_eventq.c
create mode 100644 drivers/net/sssnic/base/sssnic_eventq.h
create mode 100644 drivers/net/sssnic/base/sssnic_exception.c
create mode 100644 drivers/net/sssnic/base/sssnic_exception.h
create mode 100644 drivers/net/sssnic/base/sssnic_hw.c
create mode 100644 drivers/net/sssnic/base/sssnic_hw.h
create mode 100644 drivers/net/sssnic/base/sssnic_mbox.c
create mode 100644 drivers/net/sssnic/base/sssnic_mbox.h
create mode 100644 drivers/net/sssnic/base/sssnic_misc.h
create mode 100644 drivers/net/sssnic/base/sssnic_msg.c
create mode 100644 drivers/net/sssnic/base/sssnic_msg.h
create mode 100644 drivers/net/sssnic/base/sssnic_reg.h
create mode 100644 drivers/net/sssnic/base/sssnic_workq.c
create mode 100644 drivers/net/sssnic/base/sssnic_workq.h
create mode 100644 drivers/net/sssnic/meson.build
create mode 100644 drivers/net/sssnic/sssnic_ethdev.c
create mode 100644 drivers/net/sssnic/sssnic_ethdev.h
create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.c
create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.h
create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.c
create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.h
create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.c
create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.h
create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.c
create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.h
create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.c
create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.h
create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.c
create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.h
create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.c
create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.h
create mode 100644 drivers/net/sssnic/sssnic_log.h
Comments
On Mon, 4 Sep 2023 12:56:26 +0800 <wanry@3snic.com> wrote: > From: Renyong Wan <wanry@3snic.com> > > The sssnic PMD (**librte_pmd_sssnic**) provides poll mode driver support > for 3SNIC 9x0 serials family of Ethernet adapters. > > Supported NICs are: > > - 3S910 Dual Port SFP28 10/25GbE Ethernet adapter > - 3S920 Quad Port SFP28 10/25GbE Ethernet adapter > - 3S920 Quad Port QSFP28 100GbE Ethernet adapter > > Features of sssnic PMD are: > > - Link status > - Link status event > - Queue start/stop > - Rx interrupt > - Scattered Rx > - TSO > - LRO > - Promiscuous mode > - Allmulticast mode > - Unicast MAC filter > - Multicast MAC filte > - RSS hash > - RSS key update > - RSS reta update > - Inner RSS > - VLAN filter > - VLAN offload > - L3 checksum offload > - L4 checksum offload > - Inner L3 checksum > - Inner L4 checksum > - Basic stats > - Extended stats > - Stats per queue > - Flow control > - FW version > - Generic flow API Does this device support primary/secondary process?
Hello Stephen, SSSNIC PMD does not support primary/secondary process right now, it can only run in primary process. We are going to support multiprocessnext release. Thanks. On 2023/9/18 10:37, Stephen Hemminger wrote: > On Mon, 4 Sep 2023 12:56:26 +0800 > <wanry@3snic.com> wrote: > >> From: Renyong Wan <wanry@3snic.com> >> >> The sssnic PMD (**librte_pmd_sssnic**) provides poll mode driver support >> for 3SNIC 9x0 serials family of Ethernet adapters. >> >> Supported NICs are: >> >> - 3S910 Dual Port SFP28 10/25GbE Ethernet adapter >> - 3S920 Quad Port SFP28 10/25GbE Ethernet adapter >> - 3S920 Quad Port QSFP28 100GbE Ethernet adapter >> >> Features of sssnic PMD are: >> >> - Link status >> - Link status event >> - Queue start/stop >> - Rx interrupt >> - Scattered Rx >> - TSO >> - LRO >> - Promiscuous mode >> - Allmulticast mode >> - Unicast MAC filter >> - Multicast MAC filte >> - RSS hash >> - RSS key update >> - RSS reta update >> - Inner RSS >> - VLAN filter >> - VLAN offload >> - L3 checksum offload >> - L4 checksum offload >> - Inner L3 checksum >> - Inner L4 checksum >> - Basic stats >> - Extended stats >> - Stats per queue >> - Flow control >> - FW version >> - Generic flow API > Does this device support primary/secondary process?
On Mon, 4 Sep 2023 12:56:26 +0800 <wanry@3snic.com> wrote: > From: Renyong Wan <wanry@3snic.com> > > The sssnic PMD (**librte_pmd_sssnic**) provides poll mode driver support > for 3SNIC 9x0 serials family of Ethernet adapters. > > Supported NICs are: > > - 3S910 Dual Port SFP28 10/25GbE Ethernet adapter > - 3S920 Quad Port SFP28 10/25GbE Ethernet adapter > - 3S920 Quad Port QSFP28 100GbE Ethernet adapter > > Features of sssnic PMD are: > > - Link status > - Link status event > - Queue start/stop > - Rx interrupt > - Scattered Rx > - TSO > - LRO > - Promiscuous mode > - Allmulticast mode > - Unicast MAC filter > - Multicast MAC filte > - RSS hash > - RSS key update > - RSS reta update > - Inner RSS > - VLAN filter > - VLAN offload > - L3 checksum offload > - L4 checksum offload > - Inner L3 checksum > - Inner L4 checksum > - Basic stats > - Extended stats > - Stats per queue > - Flow control > - FW version > - Generic flow API > > --- > v2: > * Fixed 'Title underline too short' in doc/guides/nics/sssnic.rst. > * Removed error.h from including files. > * Fixed variable 'cmd_len' is uninitialized when used. > * Fixed 'EINVAL' undeclared. > * Fixed wrong format of printing uint64_t. > * Fixed 'mask->hdr.src_addr' will always evaluate to 'true'. > > v3: > * Fixed dereferencing type-punned pointer in base/sssnic_mbox.c. > > v4: > * Fixed dereferencing type-punned pointer in base/sssnic_eventq.c. > * Fixed coding style issue of COMPLEX_MACRO. > * Fixed coding style issue of REPEATED_WORD. > > v5: > * Fixed rebase mistake. > * Fixed incorrect path in MAINTAINERS file. > --- > > Renyong Wan (32): > net/sssnic: add build and doc infrastructure > net/sssnic: add log type and log macros > net/sssnic: support probe and remove > net/sssnic: initialize hardware base > net/sssnic: add event queue > net/sssnic/base: add message definition and utility > net/sssnic/base: add mailbox support > net/sssnic/base: add work queue > net/sssnic/base: add control queue > net/sssnic: add dev configure and infos get > net/sssnic: add dev MAC ops > net/sssnic: support dev link status > net/sssnic: support link status event > net/sssnic: support Rx queue setup and release > net/sssnic: support Tx queue setup and release > net/sssnic: support Rx queue start and stop > net/sssnic: support Tx queue start and stop > net/sssnic: add Rx interrupt support > net/sssnic: support dev start and stop > net/sssnic: support dev close and reset > net/sssnic: add allmulticast and promiscuous ops > net/sssnic: add basic and extended stats ops > net/sssnic: support Rx packet burst > net/sssnic: support Tx packet burst > net/sssnic: add RSS support > net/sssnic: support dev MTU set > net/sssnic: support dev queue info get > net/sssnic: support dev firmware version get > net/sssnic: add dev flow control ops > net/sssnic: support VLAN offload and filter > net/sssnic: add generic flow ops > net/sssnic: add VF dev support > > .mailmap | 2 + > MAINTAINERS | 7 + > doc/guides/nics/features/sssnic.ini | 47 + > doc/guides/nics/index.rst | 1 + > doc/guides/nics/sssnic.rst | 73 + > drivers/net/meson.build | 1 + > drivers/net/sssnic/base/meson.build | 20 + > drivers/net/sssnic/base/sssnic_api.c | 1943 ++++++++++++++++++++ > drivers/net/sssnic/base/sssnic_api.h | 498 +++++ > drivers/net/sssnic/base/sssnic_cmd.h | 514 ++++++ > drivers/net/sssnic/base/sssnic_ctrlq.c | 521 ++++++ > drivers/net/sssnic/base/sssnic_ctrlq.h | 58 + > drivers/net/sssnic/base/sssnic_eventq.c | 461 +++++ > drivers/net/sssnic/base/sssnic_eventq.h | 84 + > drivers/net/sssnic/base/sssnic_exception.c | 116 ++ > drivers/net/sssnic/base/sssnic_exception.h | 10 + > drivers/net/sssnic/base/sssnic_hw.c | 486 +++++ > drivers/net/sssnic/base/sssnic_hw.h | 117 ++ > drivers/net/sssnic/base/sssnic_mbox.c | 615 +++++++ > drivers/net/sssnic/base/sssnic_mbox.h | 45 + > drivers/net/sssnic/base/sssnic_misc.h | 52 + > drivers/net/sssnic/base/sssnic_msg.c | 254 +++ > drivers/net/sssnic/base/sssnic_msg.h | 166 ++ > drivers/net/sssnic/base/sssnic_reg.h | 267 +++ > drivers/net/sssnic/base/sssnic_workq.c | 141 ++ > drivers/net/sssnic/base/sssnic_workq.h | 108 ++ > drivers/net/sssnic/meson.build | 28 + > drivers/net/sssnic/sssnic_ethdev.c | 1139 ++++++++++++ > drivers/net/sssnic/sssnic_ethdev.h | 102 + > drivers/net/sssnic/sssnic_ethdev_fdir.c | 1017 ++++++++++ > drivers/net/sssnic/sssnic_ethdev_fdir.h | 332 ++++ > drivers/net/sssnic/sssnic_ethdev_flow.c | 981 ++++++++++ > drivers/net/sssnic/sssnic_ethdev_flow.h | 11 + > drivers/net/sssnic/sssnic_ethdev_link.c | 209 +++ > drivers/net/sssnic/sssnic_ethdev_link.h | 14 + > drivers/net/sssnic/sssnic_ethdev_rss.c | 377 ++++ > drivers/net/sssnic/sssnic_ethdev_rss.h | 20 + > drivers/net/sssnic/sssnic_ethdev_rx.c | 1396 ++++++++++++++ > drivers/net/sssnic/sssnic_ethdev_rx.h | 50 + > drivers/net/sssnic/sssnic_ethdev_stats.c | 414 +++++ > drivers/net/sssnic/sssnic_ethdev_stats.h | 18 + > drivers/net/sssnic/sssnic_ethdev_tx.c | 1123 +++++++++++ > drivers/net/sssnic/sssnic_ethdev_tx.h | 45 + > drivers/net/sssnic/sssnic_log.h | 51 + > 44 files changed, 13934 insertions(+) > create mode 100644 doc/guides/nics/features/sssnic.ini > create mode 100644 doc/guides/nics/sssnic.rst > create mode 100644 drivers/net/sssnic/base/meson.build > create mode 100644 drivers/net/sssnic/base/sssnic_api.c > create mode 100644 drivers/net/sssnic/base/sssnic_api.h > create mode 100644 drivers/net/sssnic/base/sssnic_cmd.h > create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.c > create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.h > create mode 100644 drivers/net/sssnic/base/sssnic_eventq.c > create mode 100644 drivers/net/sssnic/base/sssnic_eventq.h > create mode 100644 drivers/net/sssnic/base/sssnic_exception.c > create mode 100644 drivers/net/sssnic/base/sssnic_exception.h > create mode 100644 drivers/net/sssnic/base/sssnic_hw.c > create mode 100644 drivers/net/sssnic/base/sssnic_hw.h > create mode 100644 drivers/net/sssnic/base/sssnic_mbox.c > create mode 100644 drivers/net/sssnic/base/sssnic_mbox.h > create mode 100644 drivers/net/sssnic/base/sssnic_misc.h > create mode 100644 drivers/net/sssnic/base/sssnic_msg.c > create mode 100644 drivers/net/sssnic/base/sssnic_msg.h > create mode 100644 drivers/net/sssnic/base/sssnic_reg.h > create mode 100644 drivers/net/sssnic/base/sssnic_workq.c > create mode 100644 drivers/net/sssnic/base/sssnic_workq.h > create mode 100644 drivers/net/sssnic/meson.build > create mode 100644 drivers/net/sssnic/sssnic_ethdev.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.h > create mode 100644 drivers/net/sssnic/sssnic_log.h > There seem to be a leftover stub, after all merged together. static int sssnic_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) { RTE_SET_USED(pci_drv); <<< this is wrong, you do use it by passing to generic probe PMD_INIT_FUNC_TRACE(); return rte_eth_dev_pci_generic_probe(pci_dev, sizeof(struct sssnic_netdev), sssnic_ethdev_init); } It is simpler to used __rte_unused here. int sssnic_ethdev_flow_ops_get(struct rte_eth_dev *ethdev, const struct rte_flow_ops **ops) { RTE_SET_USED(ethdev); *ops = &sssnic_ethdev_flow_ops; return 0; }
On Mon, 4 Sep 2023 12:56:26 +0800 <wanry@3snic.com> wrote: > From: Renyong Wan <wanry@3snic.com> > > The sssnic PMD (**librte_pmd_sssnic**) provides poll mode driver support > for 3SNIC 9x0 serials family of Ethernet adapters. > > Supported NICs are: > > - 3S910 Dual Port SFP28 10/25GbE Ethernet adapter > - 3S920 Quad Port SFP28 10/25GbE Ethernet adapter > - 3S920 Quad Port QSFP28 100GbE Ethernet adapter > > Features of sssnic PMD are: > > - Link status > - Link status event > - Queue start/stop > - Rx interrupt > - Scattered Rx > - TSO > - LRO > - Promiscuous mode > - Allmulticast mode > - Unicast MAC filter > - Multicast MAC filte > - RSS hash > - RSS key update > - RSS reta update > - Inner RSS > - VLAN filter > - VLAN offload > - L3 checksum offload > - L4 checksum offload > - Inner L3 checksum > - Inner L4 checksum > - Basic stats > - Extended stats > - Stats per queue > - Flow control > - FW version > - Generic flow API > > --- > v2: > * Fixed 'Title underline too short' in doc/guides/nics/sssnic.rst. > * Removed error.h from including files. > * Fixed variable 'cmd_len' is uninitialized when used. > * Fixed 'EINVAL' undeclared. > * Fixed wrong format of printing uint64_t. > * Fixed 'mask->hdr.src_addr' will always evaluate to 'true'. > > v3: > * Fixed dereferencing type-punned pointer in base/sssnic_mbox.c. > > v4: > * Fixed dereferencing type-punned pointer in base/sssnic_eventq.c. > * Fixed coding style issue of COMPLEX_MACRO. > * Fixed coding style issue of REPEATED_WORD. > > v5: > * Fixed rebase mistake. > * Fixed incorrect path in MAINTAINERS file. > --- > > Renyong Wan (32): > net/sssnic: add build and doc infrastructure > net/sssnic: add log type and log macros > net/sssnic: support probe and remove > net/sssnic: initialize hardware base > net/sssnic: add event queue > net/sssnic/base: add message definition and utility > net/sssnic/base: add mailbox support > net/sssnic/base: add work queue > net/sssnic/base: add control queue > net/sssnic: add dev configure and infos get > net/sssnic: add dev MAC ops > net/sssnic: support dev link status > net/sssnic: support link status event > net/sssnic: support Rx queue setup and release > net/sssnic: support Tx queue setup and release > net/sssnic: support Rx queue start and stop > net/sssnic: support Tx queue start and stop > net/sssnic: add Rx interrupt support > net/sssnic: support dev start and stop > net/sssnic: support dev close and reset > net/sssnic: add allmulticast and promiscuous ops > net/sssnic: add basic and extended stats ops > net/sssnic: support Rx packet burst > net/sssnic: support Tx packet burst > net/sssnic: add RSS support > net/sssnic: support dev MTU set > net/sssnic: support dev queue info get > net/sssnic: support dev firmware version get > net/sssnic: add dev flow control ops > net/sssnic: support VLAN offload and filter > net/sssnic: add generic flow ops > net/sssnic: add VF dev support > > .mailmap | 2 + > MAINTAINERS | 7 + > doc/guides/nics/features/sssnic.ini | 47 + > doc/guides/nics/index.rst | 1 + > doc/guides/nics/sssnic.rst | 73 + > drivers/net/meson.build | 1 + > drivers/net/sssnic/base/meson.build | 20 + > drivers/net/sssnic/base/sssnic_api.c | 1943 ++++++++++++++++++++ > drivers/net/sssnic/base/sssnic_api.h | 498 +++++ > drivers/net/sssnic/base/sssnic_cmd.h | 514 ++++++ > drivers/net/sssnic/base/sssnic_ctrlq.c | 521 ++++++ > drivers/net/sssnic/base/sssnic_ctrlq.h | 58 + > drivers/net/sssnic/base/sssnic_eventq.c | 461 +++++ > drivers/net/sssnic/base/sssnic_eventq.h | 84 + > drivers/net/sssnic/base/sssnic_exception.c | 116 ++ > drivers/net/sssnic/base/sssnic_exception.h | 10 + > drivers/net/sssnic/base/sssnic_hw.c | 486 +++++ > drivers/net/sssnic/base/sssnic_hw.h | 117 ++ > drivers/net/sssnic/base/sssnic_mbox.c | 615 +++++++ > drivers/net/sssnic/base/sssnic_mbox.h | 45 + > drivers/net/sssnic/base/sssnic_misc.h | 52 + > drivers/net/sssnic/base/sssnic_msg.c | 254 +++ > drivers/net/sssnic/base/sssnic_msg.h | 166 ++ > drivers/net/sssnic/base/sssnic_reg.h | 267 +++ > drivers/net/sssnic/base/sssnic_workq.c | 141 ++ > drivers/net/sssnic/base/sssnic_workq.h | 108 ++ > drivers/net/sssnic/meson.build | 28 + > drivers/net/sssnic/sssnic_ethdev.c | 1139 ++++++++++++ > drivers/net/sssnic/sssnic_ethdev.h | 102 + > drivers/net/sssnic/sssnic_ethdev_fdir.c | 1017 ++++++++++ > drivers/net/sssnic/sssnic_ethdev_fdir.h | 332 ++++ > drivers/net/sssnic/sssnic_ethdev_flow.c | 981 ++++++++++ > drivers/net/sssnic/sssnic_ethdev_flow.h | 11 + > drivers/net/sssnic/sssnic_ethdev_link.c | 209 +++ > drivers/net/sssnic/sssnic_ethdev_link.h | 14 + > drivers/net/sssnic/sssnic_ethdev_rss.c | 377 ++++ > drivers/net/sssnic/sssnic_ethdev_rss.h | 20 + > drivers/net/sssnic/sssnic_ethdev_rx.c | 1396 ++++++++++++++ > drivers/net/sssnic/sssnic_ethdev_rx.h | 50 + > drivers/net/sssnic/sssnic_ethdev_stats.c | 414 +++++ > drivers/net/sssnic/sssnic_ethdev_stats.h | 18 + > drivers/net/sssnic/sssnic_ethdev_tx.c | 1123 +++++++++++ > drivers/net/sssnic/sssnic_ethdev_tx.h | 45 + > drivers/net/sssnic/sssnic_log.h | 51 + > 44 files changed, 13934 insertions(+) > create mode 100644 doc/guides/nics/features/sssnic.ini > create mode 100644 doc/guides/nics/sssnic.rst > create mode 100644 drivers/net/sssnic/base/meson.build > create mode 100644 drivers/net/sssnic/base/sssnic_api.c > create mode 100644 drivers/net/sssnic/base/sssnic_api.h > create mode 100644 drivers/net/sssnic/base/sssnic_cmd.h > create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.c > create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.h > create mode 100644 drivers/net/sssnic/base/sssnic_eventq.c > create mode 100644 drivers/net/sssnic/base/sssnic_eventq.h > create mode 100644 drivers/net/sssnic/base/sssnic_exception.c > create mode 100644 drivers/net/sssnic/base/sssnic_exception.h > create mode 100644 drivers/net/sssnic/base/sssnic_hw.c > create mode 100644 drivers/net/sssnic/base/sssnic_hw.h > create mode 100644 drivers/net/sssnic/base/sssnic_mbox.c > create mode 100644 drivers/net/sssnic/base/sssnic_mbox.h > create mode 100644 drivers/net/sssnic/base/sssnic_misc.h > create mode 100644 drivers/net/sssnic/base/sssnic_msg.c > create mode 100644 drivers/net/sssnic/base/sssnic_msg.h > create mode 100644 drivers/net/sssnic/base/sssnic_reg.h > create mode 100644 drivers/net/sssnic/base/sssnic_workq.c > create mode 100644 drivers/net/sssnic/base/sssnic_workq.h > create mode 100644 drivers/net/sssnic/meson.build > create mode 100644 drivers/net/sssnic/sssnic_ethdev.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.h > create mode 100644 drivers/net/sssnic/sssnic_log.h > Since the PMD_DRV_LOG() macro you defined adds a newline, a new line should not be needed on format string in this driver. Doing a search for \n found this one: int sssnic_ethdev_rx_intr_init(struct rte_eth_dev *ethdev) { struct rte_intr_handle *intr_handle; struct sssnic_ethdev_rxq *rxq; uint32_t nb_rxq, i; int vec; int ret; if (!ethdev->data->dev_conf.intr_conf.rxq) return 0; intr_handle = ethdev->intr_handle; if (!rte_intr_cap_multiple(intr_handle)) { PMD_DRV_LOG(ERR, "Rx interrupts require MSI-X interrupts (vfio-pci driver)\n");
On Mon, 4 Sep 2023 12:56:26 +0800 <wanry@3snic.com> wrote: > From: Renyong Wan <wanry@3snic.com> > > The sssnic PMD (**librte_pmd_sssnic**) provides poll mode driver support > for 3SNIC 9x0 serials family of Ethernet adapters. > > Supported NICs are: > > - 3S910 Dual Port SFP28 10/25GbE Ethernet adapter > - 3S920 Quad Port SFP28 10/25GbE Ethernet adapter > - 3S920 Quad Port QSFP28 100GbE Ethernet adapter > > Features of sssnic PMD are: > > - Link status > - Link status event > - Queue start/stop > - Rx interrupt > - Scattered Rx > - TSO > - LRO > - Promiscuous mode > - Allmulticast mode > - Unicast MAC filter > - Multicast MAC filte > - RSS hash > - RSS key update > - RSS reta update > - Inner RSS > - VLAN filter > - VLAN offload > - L3 checksum offload > - L4 checksum offload > - Inner L3 checksum > - Inner L4 checksum > - Basic stats > - Extended stats > - Stats per queue > - Flow control > - FW version > - Generic flow API > > --- > v2: > * Fixed 'Title underline too short' in doc/guides/nics/sssnic.rst. > * Removed error.h from including files. > * Fixed variable 'cmd_len' is uninitialized when used. > * Fixed 'EINVAL' undeclared. > * Fixed wrong format of printing uint64_t. > * Fixed 'mask->hdr.src_addr' will always evaluate to 'true'. > > v3: > * Fixed dereferencing type-punned pointer in base/sssnic_mbox.c. > > v4: > * Fixed dereferencing type-punned pointer in base/sssnic_eventq.c. > * Fixed coding style issue of COMPLEX_MACRO. > * Fixed coding style issue of REPEATED_WORD. > > v5: > * Fixed rebase mistake. > * Fixed incorrect path in MAINTAINERS file. > --- > > Renyong Wan (32): > net/sssnic: add build and doc infrastructure > net/sssnic: add log type and log macros > net/sssnic: support probe and remove > net/sssnic: initialize hardware base > net/sssnic: add event queue > net/sssnic/base: add message definition and utility > net/sssnic/base: add mailbox support > net/sssnic/base: add work queue > net/sssnic/base: add control queue > net/sssnic: add dev configure and infos get > net/sssnic: add dev MAC ops > net/sssnic: support dev link status > net/sssnic: support link status event > net/sssnic: support Rx queue setup and release > net/sssnic: support Tx queue setup and release > net/sssnic: support Rx queue start and stop > net/sssnic: support Tx queue start and stop > net/sssnic: add Rx interrupt support > net/sssnic: support dev start and stop > net/sssnic: support dev close and reset > net/sssnic: add allmulticast and promiscuous ops > net/sssnic: add basic and extended stats ops > net/sssnic: support Rx packet burst > net/sssnic: support Tx packet burst > net/sssnic: add RSS support > net/sssnic: support dev MTU set > net/sssnic: support dev queue info get > net/sssnic: support dev firmware version get > net/sssnic: add dev flow control ops > net/sssnic: support VLAN offload and filter > net/sssnic: add generic flow ops > net/sssnic: add VF dev support > > .mailmap | 2 + > MAINTAINERS | 7 + > doc/guides/nics/features/sssnic.ini | 47 + > doc/guides/nics/index.rst | 1 + > doc/guides/nics/sssnic.rst | 73 + > drivers/net/meson.build | 1 + > drivers/net/sssnic/base/meson.build | 20 + > drivers/net/sssnic/base/sssnic_api.c | 1943 ++++++++++++++++++++ > drivers/net/sssnic/base/sssnic_api.h | 498 +++++ > drivers/net/sssnic/base/sssnic_cmd.h | 514 ++++++ > drivers/net/sssnic/base/sssnic_ctrlq.c | 521 ++++++ > drivers/net/sssnic/base/sssnic_ctrlq.h | 58 + > drivers/net/sssnic/base/sssnic_eventq.c | 461 +++++ > drivers/net/sssnic/base/sssnic_eventq.h | 84 + > drivers/net/sssnic/base/sssnic_exception.c | 116 ++ > drivers/net/sssnic/base/sssnic_exception.h | 10 + > drivers/net/sssnic/base/sssnic_hw.c | 486 +++++ > drivers/net/sssnic/base/sssnic_hw.h | 117 ++ > drivers/net/sssnic/base/sssnic_mbox.c | 615 +++++++ > drivers/net/sssnic/base/sssnic_mbox.h | 45 + > drivers/net/sssnic/base/sssnic_misc.h | 52 + > drivers/net/sssnic/base/sssnic_msg.c | 254 +++ > drivers/net/sssnic/base/sssnic_msg.h | 166 ++ > drivers/net/sssnic/base/sssnic_reg.h | 267 +++ > drivers/net/sssnic/base/sssnic_workq.c | 141 ++ > drivers/net/sssnic/base/sssnic_workq.h | 108 ++ > drivers/net/sssnic/meson.build | 28 + > drivers/net/sssnic/sssnic_ethdev.c | 1139 ++++++++++++ > drivers/net/sssnic/sssnic_ethdev.h | 102 + > drivers/net/sssnic/sssnic_ethdev_fdir.c | 1017 ++++++++++ > drivers/net/sssnic/sssnic_ethdev_fdir.h | 332 ++++ > drivers/net/sssnic/sssnic_ethdev_flow.c | 981 ++++++++++ > drivers/net/sssnic/sssnic_ethdev_flow.h | 11 + > drivers/net/sssnic/sssnic_ethdev_link.c | 209 +++ > drivers/net/sssnic/sssnic_ethdev_link.h | 14 + > drivers/net/sssnic/sssnic_ethdev_rss.c | 377 ++++ > drivers/net/sssnic/sssnic_ethdev_rss.h | 20 + > drivers/net/sssnic/sssnic_ethdev_rx.c | 1396 ++++++++++++++ > drivers/net/sssnic/sssnic_ethdev_rx.h | 50 + > drivers/net/sssnic/sssnic_ethdev_stats.c | 414 +++++ > drivers/net/sssnic/sssnic_ethdev_stats.h | 18 + > drivers/net/sssnic/sssnic_ethdev_tx.c | 1123 +++++++++++ > drivers/net/sssnic/sssnic_ethdev_tx.h | 45 + > drivers/net/sssnic/sssnic_log.h | 51 + > 44 files changed, 13934 insertions(+) > create mode 100644 doc/guides/nics/features/sssnic.ini > create mode 100644 doc/guides/nics/sssnic.rst > create mode 100644 drivers/net/sssnic/base/meson.build > create mode 100644 drivers/net/sssnic/base/sssnic_api.c > create mode 100644 drivers/net/sssnic/base/sssnic_api.h > create mode 100644 drivers/net/sssnic/base/sssnic_cmd.h > create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.c > create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.h > create mode 100644 drivers/net/sssnic/base/sssnic_eventq.c > create mode 100644 drivers/net/sssnic/base/sssnic_eventq.h > create mode 100644 drivers/net/sssnic/base/sssnic_exception.c > create mode 100644 drivers/net/sssnic/base/sssnic_exception.h > create mode 100644 drivers/net/sssnic/base/sssnic_hw.c > create mode 100644 drivers/net/sssnic/base/sssnic_hw.h > create mode 100644 drivers/net/sssnic/base/sssnic_mbox.c > create mode 100644 drivers/net/sssnic/base/sssnic_mbox.h > create mode 100644 drivers/net/sssnic/base/sssnic_misc.h > create mode 100644 drivers/net/sssnic/base/sssnic_msg.c > create mode 100644 drivers/net/sssnic/base/sssnic_msg.h > create mode 100644 drivers/net/sssnic/base/sssnic_reg.h > create mode 100644 drivers/net/sssnic/base/sssnic_workq.c > create mode 100644 drivers/net/sssnic/base/sssnic_workq.h > create mode 100644 drivers/net/sssnic/meson.build > create mode 100644 drivers/net/sssnic/sssnic_ethdev.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.h > create mode 100644 drivers/net/sssnic/sssnic_log.h Since secondary process is not supported... static int sssnic_ethdev_init(struct rte_eth_dev *ethdev) { int ret; struct sssnic_hw *hw; struct sssnic_netdev *netdev; struct rte_pci_device *pci_dev; PMD_INIT_FUNC_TRACE(); if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; Should be something like: if (rte_eal_process_type() != RTE_PROC_PRIMARY) { PMD_DRV_LOG(ERR, "Secondary process not supported"); return -ENOTSUP; }
Hello Stephen, I'll fix it in next version of patch. Thanks. On 2023/9/19 11:19, Stephen Hemminger wrote: > On Mon, 4 Sep 2023 12:56:26 +0800 > <wanry@3snic.com> wrote: > >> From: Renyong Wan <wanry@3snic.com> >> >> The sssnic PMD (**librte_pmd_sssnic**) provides poll mode driver support >> for 3SNIC 9x0 serials family of Ethernet adapters. >> >> Supported NICs are: >> >> - 3S910 Dual Port SFP28 10/25GbE Ethernet adapter >> - 3S920 Quad Port SFP28 10/25GbE Ethernet adapter >> - 3S920 Quad Port QSFP28 100GbE Ethernet adapter >> >> Features of sssnic PMD are: >> >> - Link status >> - Link status event >> - Queue start/stop >> - Rx interrupt >> - Scattered Rx >> - TSO >> - LRO >> - Promiscuous mode >> - Allmulticast mode >> - Unicast MAC filter >> - Multicast MAC filte >> - RSS hash >> - RSS key update >> - RSS reta update >> - Inner RSS >> - VLAN filter >> - VLAN offload >> - L3 checksum offload >> - L4 checksum offload >> - Inner L3 checksum >> - Inner L4 checksum >> - Basic stats >> - Extended stats >> - Stats per queue >> - Flow control >> - FW version >> - Generic flow API >> >> --- >> v2: >> * Fixed 'Title underline too short' in doc/guides/nics/sssnic.rst. >> * Removed error.h from including files. >> * Fixed variable 'cmd_len' is uninitialized when used. >> * Fixed 'EINVAL' undeclared. >> * Fixed wrong format of printing uint64_t. >> * Fixed 'mask->hdr.src_addr' will always evaluate to 'true'. >> >> v3: >> * Fixed dereferencing type-punned pointer in base/sssnic_mbox.c. >> >> v4: >> * Fixed dereferencing type-punned pointer in base/sssnic_eventq.c. >> * Fixed coding style issue of COMPLEX_MACRO. >> * Fixed coding style issue of REPEATED_WORD. >> >> v5: >> * Fixed rebase mistake. >> * Fixed incorrect path in MAINTAINERS file. >> --- >> >> Renyong Wan (32): >> net/sssnic: add build and doc infrastructure >> net/sssnic: add log type and log macros >> net/sssnic: support probe and remove >> net/sssnic: initialize hardware base >> net/sssnic: add event queue >> net/sssnic/base: add message definition and utility >> net/sssnic/base: add mailbox support >> net/sssnic/base: add work queue >> net/sssnic/base: add control queue >> net/sssnic: add dev configure and infos get >> net/sssnic: add dev MAC ops >> net/sssnic: support dev link status >> net/sssnic: support link status event >> net/sssnic: support Rx queue setup and release >> net/sssnic: support Tx queue setup and release >> net/sssnic: support Rx queue start and stop >> net/sssnic: support Tx queue start and stop >> net/sssnic: add Rx interrupt support >> net/sssnic: support dev start and stop >> net/sssnic: support dev close and reset >> net/sssnic: add allmulticast and promiscuous ops >> net/sssnic: add basic and extended stats ops >> net/sssnic: support Rx packet burst >> net/sssnic: support Tx packet burst >> net/sssnic: add RSS support >> net/sssnic: support dev MTU set >> net/sssnic: support dev queue info get >> net/sssnic: support dev firmware version get >> net/sssnic: add dev flow control ops >> net/sssnic: support VLAN offload and filter >> net/sssnic: add generic flow ops >> net/sssnic: add VF dev support >> >> .mailmap | 2 + >> MAINTAINERS | 7 + >> doc/guides/nics/features/sssnic.ini | 47 + >> doc/guides/nics/index.rst | 1 + >> doc/guides/nics/sssnic.rst | 73 + >> drivers/net/meson.build | 1 + >> drivers/net/sssnic/base/meson.build | 20 + >> drivers/net/sssnic/base/sssnic_api.c | 1943 ++++++++++++++++++++ >> drivers/net/sssnic/base/sssnic_api.h | 498 +++++ >> drivers/net/sssnic/base/sssnic_cmd.h | 514 ++++++ >> drivers/net/sssnic/base/sssnic_ctrlq.c | 521 ++++++ >> drivers/net/sssnic/base/sssnic_ctrlq.h | 58 + >> drivers/net/sssnic/base/sssnic_eventq.c | 461 +++++ >> drivers/net/sssnic/base/sssnic_eventq.h | 84 + >> drivers/net/sssnic/base/sssnic_exception.c | 116 ++ >> drivers/net/sssnic/base/sssnic_exception.h | 10 + >> drivers/net/sssnic/base/sssnic_hw.c | 486 +++++ >> drivers/net/sssnic/base/sssnic_hw.h | 117 ++ >> drivers/net/sssnic/base/sssnic_mbox.c | 615 +++++++ >> drivers/net/sssnic/base/sssnic_mbox.h | 45 + >> drivers/net/sssnic/base/sssnic_misc.h | 52 + >> drivers/net/sssnic/base/sssnic_msg.c | 254 +++ >> drivers/net/sssnic/base/sssnic_msg.h | 166 ++ >> drivers/net/sssnic/base/sssnic_reg.h | 267 +++ >> drivers/net/sssnic/base/sssnic_workq.c | 141 ++ >> drivers/net/sssnic/base/sssnic_workq.h | 108 ++ >> drivers/net/sssnic/meson.build | 28 + >> drivers/net/sssnic/sssnic_ethdev.c | 1139 ++++++++++++ >> drivers/net/sssnic/sssnic_ethdev.h | 102 + >> drivers/net/sssnic/sssnic_ethdev_fdir.c | 1017 ++++++++++ >> drivers/net/sssnic/sssnic_ethdev_fdir.h | 332 ++++ >> drivers/net/sssnic/sssnic_ethdev_flow.c | 981 ++++++++++ >> drivers/net/sssnic/sssnic_ethdev_flow.h | 11 + >> drivers/net/sssnic/sssnic_ethdev_link.c | 209 +++ >> drivers/net/sssnic/sssnic_ethdev_link.h | 14 + >> drivers/net/sssnic/sssnic_ethdev_rss.c | 377 ++++ >> drivers/net/sssnic/sssnic_ethdev_rss.h | 20 + >> drivers/net/sssnic/sssnic_ethdev_rx.c | 1396 ++++++++++++++ >> drivers/net/sssnic/sssnic_ethdev_rx.h | 50 + >> drivers/net/sssnic/sssnic_ethdev_stats.c | 414 +++++ >> drivers/net/sssnic/sssnic_ethdev_stats.h | 18 + >> drivers/net/sssnic/sssnic_ethdev_tx.c | 1123 +++++++++++ >> drivers/net/sssnic/sssnic_ethdev_tx.h | 45 + >> drivers/net/sssnic/sssnic_log.h | 51 + >> 44 files changed, 13934 insertions(+) >> create mode 100644 doc/guides/nics/features/sssnic.ini >> create mode 100644 doc/guides/nics/sssnic.rst >> create mode 100644 drivers/net/sssnic/base/meson.build >> create mode 100644 drivers/net/sssnic/base/sssnic_api.c >> create mode 100644 drivers/net/sssnic/base/sssnic_api.h >> create mode 100644 drivers/net/sssnic/base/sssnic_cmd.h >> create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.c >> create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.h >> create mode 100644 drivers/net/sssnic/base/sssnic_eventq.c >> create mode 100644 drivers/net/sssnic/base/sssnic_eventq.h >> create mode 100644 drivers/net/sssnic/base/sssnic_exception.c >> create mode 100644 drivers/net/sssnic/base/sssnic_exception.h >> create mode 100644 drivers/net/sssnic/base/sssnic_hw.c >> create mode 100644 drivers/net/sssnic/base/sssnic_hw.h >> create mode 100644 drivers/net/sssnic/base/sssnic_mbox.c >> create mode 100644 drivers/net/sssnic/base/sssnic_mbox.h >> create mode 100644 drivers/net/sssnic/base/sssnic_misc.h >> create mode 100644 drivers/net/sssnic/base/sssnic_msg.c >> create mode 100644 drivers/net/sssnic/base/sssnic_msg.h >> create mode 100644 drivers/net/sssnic/base/sssnic_reg.h >> create mode 100644 drivers/net/sssnic/base/sssnic_workq.c >> create mode 100644 drivers/net/sssnic/base/sssnic_workq.h >> create mode 100644 drivers/net/sssnic/meson.build >> create mode 100644 drivers/net/sssnic/sssnic_ethdev.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.h >> create mode 100644 drivers/net/sssnic/sssnic_log.h >> > There seem to be a leftover stub, after all merged together. > > > static int > sssnic_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) > { > RTE_SET_USED(pci_drv); <<< this is wrong, you do use it by passing to generic probe > PMD_INIT_FUNC_TRACE(); > > return rte_eth_dev_pci_generic_probe(pci_dev, > sizeof(struct sssnic_netdev), sssnic_ethdev_init); > } > > It is simpler to used __rte_unused here. > > int > sssnic_ethdev_flow_ops_get(struct rte_eth_dev *ethdev, > const struct rte_flow_ops **ops) > { > RTE_SET_USED(ethdev); > > *ops = &sssnic_ethdev_flow_ops; > > return 0; > } >
Hello Stephen, I'll fix it in next version of patch. Thanks. On 2023/9/19 11:21, Stephen Hemminger wrote: > On Mon, 4 Sep 2023 12:56:26 +0800 > <wanry@3snic.com> wrote: > >> From: Renyong Wan <wanry@3snic.com> >> >> The sssnic PMD (**librte_pmd_sssnic**) provides poll mode driver support >> for 3SNIC 9x0 serials family of Ethernet adapters. >> >> Supported NICs are: >> >> - 3S910 Dual Port SFP28 10/25GbE Ethernet adapter >> - 3S920 Quad Port SFP28 10/25GbE Ethernet adapter >> - 3S920 Quad Port QSFP28 100GbE Ethernet adapter >> >> Features of sssnic PMD are: >> >> - Link status >> - Link status event >> - Queue start/stop >> - Rx interrupt >> - Scattered Rx >> - TSO >> - LRO >> - Promiscuous mode >> - Allmulticast mode >> - Unicast MAC filter >> - Multicast MAC filte >> - RSS hash >> - RSS key update >> - RSS reta update >> - Inner RSS >> - VLAN filter >> - VLAN offload >> - L3 checksum offload >> - L4 checksum offload >> - Inner L3 checksum >> - Inner L4 checksum >> - Basic stats >> - Extended stats >> - Stats per queue >> - Flow control >> - FW version >> - Generic flow API >> >> --- >> v2: >> * Fixed 'Title underline too short' in doc/guides/nics/sssnic.rst. >> * Removed error.h from including files. >> * Fixed variable 'cmd_len' is uninitialized when used. >> * Fixed 'EINVAL' undeclared. >> * Fixed wrong format of printing uint64_t. >> * Fixed 'mask->hdr.src_addr' will always evaluate to 'true'. >> >> v3: >> * Fixed dereferencing type-punned pointer in base/sssnic_mbox.c. >> >> v4: >> * Fixed dereferencing type-punned pointer in base/sssnic_eventq.c. >> * Fixed coding style issue of COMPLEX_MACRO. >> * Fixed coding style issue of REPEATED_WORD. >> >> v5: >> * Fixed rebase mistake. >> * Fixed incorrect path in MAINTAINERS file. >> --- >> >> Renyong Wan (32): >> net/sssnic: add build and doc infrastructure >> net/sssnic: add log type and log macros >> net/sssnic: support probe and remove >> net/sssnic: initialize hardware base >> net/sssnic: add event queue >> net/sssnic/base: add message definition and utility >> net/sssnic/base: add mailbox support >> net/sssnic/base: add work queue >> net/sssnic/base: add control queue >> net/sssnic: add dev configure and infos get >> net/sssnic: add dev MAC ops >> net/sssnic: support dev link status >> net/sssnic: support link status event >> net/sssnic: support Rx queue setup and release >> net/sssnic: support Tx queue setup and release >> net/sssnic: support Rx queue start and stop >> net/sssnic: support Tx queue start and stop >> net/sssnic: add Rx interrupt support >> net/sssnic: support dev start and stop >> net/sssnic: support dev close and reset >> net/sssnic: add allmulticast and promiscuous ops >> net/sssnic: add basic and extended stats ops >> net/sssnic: support Rx packet burst >> net/sssnic: support Tx packet burst >> net/sssnic: add RSS support >> net/sssnic: support dev MTU set >> net/sssnic: support dev queue info get >> net/sssnic: support dev firmware version get >> net/sssnic: add dev flow control ops >> net/sssnic: support VLAN offload and filter >> net/sssnic: add generic flow ops >> net/sssnic: add VF dev support >> >> .mailmap | 2 + >> MAINTAINERS | 7 + >> doc/guides/nics/features/sssnic.ini | 47 + >> doc/guides/nics/index.rst | 1 + >> doc/guides/nics/sssnic.rst | 73 + >> drivers/net/meson.build | 1 + >> drivers/net/sssnic/base/meson.build | 20 + >> drivers/net/sssnic/base/sssnic_api.c | 1943 ++++++++++++++++++++ >> drivers/net/sssnic/base/sssnic_api.h | 498 +++++ >> drivers/net/sssnic/base/sssnic_cmd.h | 514 ++++++ >> drivers/net/sssnic/base/sssnic_ctrlq.c | 521 ++++++ >> drivers/net/sssnic/base/sssnic_ctrlq.h | 58 + >> drivers/net/sssnic/base/sssnic_eventq.c | 461 +++++ >> drivers/net/sssnic/base/sssnic_eventq.h | 84 + >> drivers/net/sssnic/base/sssnic_exception.c | 116 ++ >> drivers/net/sssnic/base/sssnic_exception.h | 10 + >> drivers/net/sssnic/base/sssnic_hw.c | 486 +++++ >> drivers/net/sssnic/base/sssnic_hw.h | 117 ++ >> drivers/net/sssnic/base/sssnic_mbox.c | 615 +++++++ >> drivers/net/sssnic/base/sssnic_mbox.h | 45 + >> drivers/net/sssnic/base/sssnic_misc.h | 52 + >> drivers/net/sssnic/base/sssnic_msg.c | 254 +++ >> drivers/net/sssnic/base/sssnic_msg.h | 166 ++ >> drivers/net/sssnic/base/sssnic_reg.h | 267 +++ >> drivers/net/sssnic/base/sssnic_workq.c | 141 ++ >> drivers/net/sssnic/base/sssnic_workq.h | 108 ++ >> drivers/net/sssnic/meson.build | 28 + >> drivers/net/sssnic/sssnic_ethdev.c | 1139 ++++++++++++ >> drivers/net/sssnic/sssnic_ethdev.h | 102 + >> drivers/net/sssnic/sssnic_ethdev_fdir.c | 1017 ++++++++++ >> drivers/net/sssnic/sssnic_ethdev_fdir.h | 332 ++++ >> drivers/net/sssnic/sssnic_ethdev_flow.c | 981 ++++++++++ >> drivers/net/sssnic/sssnic_ethdev_flow.h | 11 + >> drivers/net/sssnic/sssnic_ethdev_link.c | 209 +++ >> drivers/net/sssnic/sssnic_ethdev_link.h | 14 + >> drivers/net/sssnic/sssnic_ethdev_rss.c | 377 ++++ >> drivers/net/sssnic/sssnic_ethdev_rss.h | 20 + >> drivers/net/sssnic/sssnic_ethdev_rx.c | 1396 ++++++++++++++ >> drivers/net/sssnic/sssnic_ethdev_rx.h | 50 + >> drivers/net/sssnic/sssnic_ethdev_stats.c | 414 +++++ >> drivers/net/sssnic/sssnic_ethdev_stats.h | 18 + >> drivers/net/sssnic/sssnic_ethdev_tx.c | 1123 +++++++++++ >> drivers/net/sssnic/sssnic_ethdev_tx.h | 45 + >> drivers/net/sssnic/sssnic_log.h | 51 + >> 44 files changed, 13934 insertions(+) >> create mode 100644 doc/guides/nics/features/sssnic.ini >> create mode 100644 doc/guides/nics/sssnic.rst >> create mode 100644 drivers/net/sssnic/base/meson.build >> create mode 100644 drivers/net/sssnic/base/sssnic_api.c >> create mode 100644 drivers/net/sssnic/base/sssnic_api.h >> create mode 100644 drivers/net/sssnic/base/sssnic_cmd.h >> create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.c >> create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.h >> create mode 100644 drivers/net/sssnic/base/sssnic_eventq.c >> create mode 100644 drivers/net/sssnic/base/sssnic_eventq.h >> create mode 100644 drivers/net/sssnic/base/sssnic_exception.c >> create mode 100644 drivers/net/sssnic/base/sssnic_exception.h >> create mode 100644 drivers/net/sssnic/base/sssnic_hw.c >> create mode 100644 drivers/net/sssnic/base/sssnic_hw.h >> create mode 100644 drivers/net/sssnic/base/sssnic_mbox.c >> create mode 100644 drivers/net/sssnic/base/sssnic_mbox.h >> create mode 100644 drivers/net/sssnic/base/sssnic_misc.h >> create mode 100644 drivers/net/sssnic/base/sssnic_msg.c >> create mode 100644 drivers/net/sssnic/base/sssnic_msg.h >> create mode 100644 drivers/net/sssnic/base/sssnic_reg.h >> create mode 100644 drivers/net/sssnic/base/sssnic_workq.c >> create mode 100644 drivers/net/sssnic/base/sssnic_workq.h >> create mode 100644 drivers/net/sssnic/meson.build >> create mode 100644 drivers/net/sssnic/sssnic_ethdev.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.h >> create mode 100644 drivers/net/sssnic/sssnic_log.h >> > Since the PMD_DRV_LOG() macro you defined adds a newline, > a new line should not be needed on format string in this driver. > > Doing a search for \n found this one: > > int > sssnic_ethdev_rx_intr_init(struct rte_eth_dev *ethdev) > { > struct rte_intr_handle *intr_handle; > struct sssnic_ethdev_rxq *rxq; > uint32_t nb_rxq, i; > int vec; > int ret; > > if (!ethdev->data->dev_conf.intr_conf.rxq) > return 0; > > intr_handle = ethdev->intr_handle; > > if (!rte_intr_cap_multiple(intr_handle)) { > PMD_DRV_LOG(ERR, > "Rx interrupts require MSI-X interrupts (vfio-pci driver)\n");
Hello Stephen, I'll fix it in next version of patch. Thanks. On 2023/9/19 11:23, Stephen Hemminger wrote: > On Mon, 4 Sep 2023 12:56:26 +0800 > <wanry@3snic.com> wrote: > >> From: Renyong Wan <wanry@3snic.com> >> >> The sssnic PMD (**librte_pmd_sssnic**) provides poll mode driver support >> for 3SNIC 9x0 serials family of Ethernet adapters. >> >> Supported NICs are: >> >> - 3S910 Dual Port SFP28 10/25GbE Ethernet adapter >> - 3S920 Quad Port SFP28 10/25GbE Ethernet adapter >> - 3S920 Quad Port QSFP28 100GbE Ethernet adapter >> >> Features of sssnic PMD are: >> >> - Link status >> - Link status event >> - Queue start/stop >> - Rx interrupt >> - Scattered Rx >> - TSO >> - LRO >> - Promiscuous mode >> - Allmulticast mode >> - Unicast MAC filter >> - Multicast MAC filte >> - RSS hash >> - RSS key update >> - RSS reta update >> - Inner RSS >> - VLAN filter >> - VLAN offload >> - L3 checksum offload >> - L4 checksum offload >> - Inner L3 checksum >> - Inner L4 checksum >> - Basic stats >> - Extended stats >> - Stats per queue >> - Flow control >> - FW version >> - Generic flow API >> >> --- >> v2: >> * Fixed 'Title underline too short' in doc/guides/nics/sssnic.rst. >> * Removed error.h from including files. >> * Fixed variable 'cmd_len' is uninitialized when used. >> * Fixed 'EINVAL' undeclared. >> * Fixed wrong format of printing uint64_t. >> * Fixed 'mask->hdr.src_addr' will always evaluate to 'true'. >> >> v3: >> * Fixed dereferencing type-punned pointer in base/sssnic_mbox.c. >> >> v4: >> * Fixed dereferencing type-punned pointer in base/sssnic_eventq.c. >> * Fixed coding style issue of COMPLEX_MACRO. >> * Fixed coding style issue of REPEATED_WORD. >> >> v5: >> * Fixed rebase mistake. >> * Fixed incorrect path in MAINTAINERS file. >> --- >> >> Renyong Wan (32): >> net/sssnic: add build and doc infrastructure >> net/sssnic: add log type and log macros >> net/sssnic: support probe and remove >> net/sssnic: initialize hardware base >> net/sssnic: add event queue >> net/sssnic/base: add message definition and utility >> net/sssnic/base: add mailbox support >> net/sssnic/base: add work queue >> net/sssnic/base: add control queue >> net/sssnic: add dev configure and infos get >> net/sssnic: add dev MAC ops >> net/sssnic: support dev link status >> net/sssnic: support link status event >> net/sssnic: support Rx queue setup and release >> net/sssnic: support Tx queue setup and release >> net/sssnic: support Rx queue start and stop >> net/sssnic: support Tx queue start and stop >> net/sssnic: add Rx interrupt support >> net/sssnic: support dev start and stop >> net/sssnic: support dev close and reset >> net/sssnic: add allmulticast and promiscuous ops >> net/sssnic: add basic and extended stats ops >> net/sssnic: support Rx packet burst >> net/sssnic: support Tx packet burst >> net/sssnic: add RSS support >> net/sssnic: support dev MTU set >> net/sssnic: support dev queue info get >> net/sssnic: support dev firmware version get >> net/sssnic: add dev flow control ops >> net/sssnic: support VLAN offload and filter >> net/sssnic: add generic flow ops >> net/sssnic: add VF dev support >> >> .mailmap | 2 + >> MAINTAINERS | 7 + >> doc/guides/nics/features/sssnic.ini | 47 + >> doc/guides/nics/index.rst | 1 + >> doc/guides/nics/sssnic.rst | 73 + >> drivers/net/meson.build | 1 + >> drivers/net/sssnic/base/meson.build | 20 + >> drivers/net/sssnic/base/sssnic_api.c | 1943 ++++++++++++++++++++ >> drivers/net/sssnic/base/sssnic_api.h | 498 +++++ >> drivers/net/sssnic/base/sssnic_cmd.h | 514 ++++++ >> drivers/net/sssnic/base/sssnic_ctrlq.c | 521 ++++++ >> drivers/net/sssnic/base/sssnic_ctrlq.h | 58 + >> drivers/net/sssnic/base/sssnic_eventq.c | 461 +++++ >> drivers/net/sssnic/base/sssnic_eventq.h | 84 + >> drivers/net/sssnic/base/sssnic_exception.c | 116 ++ >> drivers/net/sssnic/base/sssnic_exception.h | 10 + >> drivers/net/sssnic/base/sssnic_hw.c | 486 +++++ >> drivers/net/sssnic/base/sssnic_hw.h | 117 ++ >> drivers/net/sssnic/base/sssnic_mbox.c | 615 +++++++ >> drivers/net/sssnic/base/sssnic_mbox.h | 45 + >> drivers/net/sssnic/base/sssnic_misc.h | 52 + >> drivers/net/sssnic/base/sssnic_msg.c | 254 +++ >> drivers/net/sssnic/base/sssnic_msg.h | 166 ++ >> drivers/net/sssnic/base/sssnic_reg.h | 267 +++ >> drivers/net/sssnic/base/sssnic_workq.c | 141 ++ >> drivers/net/sssnic/base/sssnic_workq.h | 108 ++ >> drivers/net/sssnic/meson.build | 28 + >> drivers/net/sssnic/sssnic_ethdev.c | 1139 ++++++++++++ >> drivers/net/sssnic/sssnic_ethdev.h | 102 + >> drivers/net/sssnic/sssnic_ethdev_fdir.c | 1017 ++++++++++ >> drivers/net/sssnic/sssnic_ethdev_fdir.h | 332 ++++ >> drivers/net/sssnic/sssnic_ethdev_flow.c | 981 ++++++++++ >> drivers/net/sssnic/sssnic_ethdev_flow.h | 11 + >> drivers/net/sssnic/sssnic_ethdev_link.c | 209 +++ >> drivers/net/sssnic/sssnic_ethdev_link.h | 14 + >> drivers/net/sssnic/sssnic_ethdev_rss.c | 377 ++++ >> drivers/net/sssnic/sssnic_ethdev_rss.h | 20 + >> drivers/net/sssnic/sssnic_ethdev_rx.c | 1396 ++++++++++++++ >> drivers/net/sssnic/sssnic_ethdev_rx.h | 50 + >> drivers/net/sssnic/sssnic_ethdev_stats.c | 414 +++++ >> drivers/net/sssnic/sssnic_ethdev_stats.h | 18 + >> drivers/net/sssnic/sssnic_ethdev_tx.c | 1123 +++++++++++ >> drivers/net/sssnic/sssnic_ethdev_tx.h | 45 + >> drivers/net/sssnic/sssnic_log.h | 51 + >> 44 files changed, 13934 insertions(+) >> create mode 100644 doc/guides/nics/features/sssnic.ini >> create mode 100644 doc/guides/nics/sssnic.rst >> create mode 100644 drivers/net/sssnic/base/meson.build >> create mode 100644 drivers/net/sssnic/base/sssnic_api.c >> create mode 100644 drivers/net/sssnic/base/sssnic_api.h >> create mode 100644 drivers/net/sssnic/base/sssnic_cmd.h >> create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.c >> create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.h >> create mode 100644 drivers/net/sssnic/base/sssnic_eventq.c >> create mode 100644 drivers/net/sssnic/base/sssnic_eventq.h >> create mode 100644 drivers/net/sssnic/base/sssnic_exception.c >> create mode 100644 drivers/net/sssnic/base/sssnic_exception.h >> create mode 100644 drivers/net/sssnic/base/sssnic_hw.c >> create mode 100644 drivers/net/sssnic/base/sssnic_hw.h >> create mode 100644 drivers/net/sssnic/base/sssnic_mbox.c >> create mode 100644 drivers/net/sssnic/base/sssnic_mbox.h >> create mode 100644 drivers/net/sssnic/base/sssnic_misc.h >> create mode 100644 drivers/net/sssnic/base/sssnic_msg.c >> create mode 100644 drivers/net/sssnic/base/sssnic_msg.h >> create mode 100644 drivers/net/sssnic/base/sssnic_reg.h >> create mode 100644 drivers/net/sssnic/base/sssnic_workq.c >> create mode 100644 drivers/net/sssnic/base/sssnic_workq.h >> create mode 100644 drivers/net/sssnic/meson.build >> create mode 100644 drivers/net/sssnic/sssnic_ethdev.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.h >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.c >> create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.h >> create mode 100644 drivers/net/sssnic/sssnic_log.h > Since secondary process is not supported... > > static int > sssnic_ethdev_init(struct rte_eth_dev *ethdev) > { > int ret; > struct sssnic_hw *hw; > struct sssnic_netdev *netdev; > struct rte_pci_device *pci_dev; > > PMD_INIT_FUNC_TRACE(); > > if (rte_eal_process_type() != RTE_PROC_PRIMARY) > return 0; > > Should be something like: > if (rte_eal_process_type() != RTE_PROC_PRIMARY) { > PMD_DRV_LOG(ERR, "Secondary process not supported"); > return -ENOTSUP; > }
On Mon, 4 Sep 2023 12:56:26 +0800 <wanry@3snic.com> wrote: > From: Renyong Wan <wanry@3snic.com> > > The sssnic PMD (**librte_pmd_sssnic**) provides poll mode driver support > for 3SNIC 9x0 serials family of Ethernet adapters. > > Supported NICs are: > > - 3S910 Dual Port SFP28 10/25GbE Ethernet adapter > - 3S920 Quad Port SFP28 10/25GbE Ethernet adapter > - 3S920 Quad Port QSFP28 100GbE Ethernet adapter > > Features of sssnic PMD are: > > - Link status > - Link status event > - Queue start/stop > - Rx interrupt > - Scattered Rx > - TSO > - LRO > - Promiscuous mode > - Allmulticast mode > - Unicast MAC filter > - Multicast MAC filte > - RSS hash > - RSS key update > - RSS reta update > - Inner RSS > - VLAN filter > - VLAN offload > - L3 checksum offload > - L4 checksum offload > - Inner L3 checksum > - Inner L4 checksum > - Basic stats > - Extended stats > - Stats per queue > - Flow control > - FW version > - Generic flow API > > --- > v2: > * Fixed 'Title underline too short' in doc/guides/nics/sssnic.rst. > * Removed error.h from including files. > * Fixed variable 'cmd_len' is uninitialized when used. > * Fixed 'EINVAL' undeclared. > * Fixed wrong format of printing uint64_t. > * Fixed 'mask->hdr.src_addr' will always evaluate to 'true'. > > v3: > * Fixed dereferencing type-punned pointer in base/sssnic_mbox.c. > > v4: > * Fixed dereferencing type-punned pointer in base/sssnic_eventq.c. > * Fixed coding style issue of COMPLEX_MACRO. > * Fixed coding style issue of REPEATED_WORD. > > v5: > * Fixed rebase mistake. > * Fixed incorrect path in MAINTAINERS file. > --- > > Renyong Wan (32): > net/sssnic: add build and doc infrastructure > net/sssnic: add log type and log macros > net/sssnic: support probe and remove > net/sssnic: initialize hardware base > net/sssnic: add event queue > net/sssnic/base: add message definition and utility > net/sssnic/base: add mailbox support > net/sssnic/base: add work queue > net/sssnic/base: add control queue > net/sssnic: add dev configure and infos get > net/sssnic: add dev MAC ops > net/sssnic: support dev link status > net/sssnic: support link status event > net/sssnic: support Rx queue setup and release > net/sssnic: support Tx queue setup and release > net/sssnic: support Rx queue start and stop > net/sssnic: support Tx queue start and stop > net/sssnic: add Rx interrupt support > net/sssnic: support dev start and stop > net/sssnic: support dev close and reset > net/sssnic: add allmulticast and promiscuous ops > net/sssnic: add basic and extended stats ops > net/sssnic: support Rx packet burst > net/sssnic: support Tx packet burst > net/sssnic: add RSS support > net/sssnic: support dev MTU set > net/sssnic: support dev queue info get > net/sssnic: support dev firmware version get > net/sssnic: add dev flow control ops > net/sssnic: support VLAN offload and filter > net/sssnic: add generic flow ops > net/sssnic: add VF dev support > > .mailmap | 2 + > MAINTAINERS | 7 + > doc/guides/nics/features/sssnic.ini | 47 + > doc/guides/nics/index.rst | 1 + > doc/guides/nics/sssnic.rst | 73 + > drivers/net/meson.build | 1 + > drivers/net/sssnic/base/meson.build | 20 + > drivers/net/sssnic/base/sssnic_api.c | 1943 ++++++++++++++++++++ > drivers/net/sssnic/base/sssnic_api.h | 498 +++++ > drivers/net/sssnic/base/sssnic_cmd.h | 514 ++++++ > drivers/net/sssnic/base/sssnic_ctrlq.c | 521 ++++++ > drivers/net/sssnic/base/sssnic_ctrlq.h | 58 + > drivers/net/sssnic/base/sssnic_eventq.c | 461 +++++ > drivers/net/sssnic/base/sssnic_eventq.h | 84 + > drivers/net/sssnic/base/sssnic_exception.c | 116 ++ > drivers/net/sssnic/base/sssnic_exception.h | 10 + > drivers/net/sssnic/base/sssnic_hw.c | 486 +++++ > drivers/net/sssnic/base/sssnic_hw.h | 117 ++ > drivers/net/sssnic/base/sssnic_mbox.c | 615 +++++++ > drivers/net/sssnic/base/sssnic_mbox.h | 45 + > drivers/net/sssnic/base/sssnic_misc.h | 52 + > drivers/net/sssnic/base/sssnic_msg.c | 254 +++ > drivers/net/sssnic/base/sssnic_msg.h | 166 ++ > drivers/net/sssnic/base/sssnic_reg.h | 267 +++ > drivers/net/sssnic/base/sssnic_workq.c | 141 ++ > drivers/net/sssnic/base/sssnic_workq.h | 108 ++ > drivers/net/sssnic/meson.build | 28 + > drivers/net/sssnic/sssnic_ethdev.c | 1139 ++++++++++++ > drivers/net/sssnic/sssnic_ethdev.h | 102 + > drivers/net/sssnic/sssnic_ethdev_fdir.c | 1017 ++++++++++ > drivers/net/sssnic/sssnic_ethdev_fdir.h | 332 ++++ > drivers/net/sssnic/sssnic_ethdev_flow.c | 981 ++++++++++ > drivers/net/sssnic/sssnic_ethdev_flow.h | 11 + > drivers/net/sssnic/sssnic_ethdev_link.c | 209 +++ > drivers/net/sssnic/sssnic_ethdev_link.h | 14 + > drivers/net/sssnic/sssnic_ethdev_rss.c | 377 ++++ > drivers/net/sssnic/sssnic_ethdev_rss.h | 20 + > drivers/net/sssnic/sssnic_ethdev_rx.c | 1396 ++++++++++++++ > drivers/net/sssnic/sssnic_ethdev_rx.h | 50 + > drivers/net/sssnic/sssnic_ethdev_stats.c | 414 +++++ > drivers/net/sssnic/sssnic_ethdev_stats.h | 18 + > drivers/net/sssnic/sssnic_ethdev_tx.c | 1123 +++++++++++ > drivers/net/sssnic/sssnic_ethdev_tx.h | 45 + > drivers/net/sssnic/sssnic_log.h | 51 + > 44 files changed, 13934 insertions(+) > create mode 100644 doc/guides/nics/features/sssnic.ini > create mode 100644 doc/guides/nics/sssnic.rst > create mode 100644 drivers/net/sssnic/base/meson.build > create mode 100644 drivers/net/sssnic/base/sssnic_api.c > create mode 100644 drivers/net/sssnic/base/sssnic_api.h > create mode 100644 drivers/net/sssnic/base/sssnic_cmd.h > create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.c > create mode 100644 drivers/net/sssnic/base/sssnic_ctrlq.h > create mode 100644 drivers/net/sssnic/base/sssnic_eventq.c > create mode 100644 drivers/net/sssnic/base/sssnic_eventq.h > create mode 100644 drivers/net/sssnic/base/sssnic_exception.c > create mode 100644 drivers/net/sssnic/base/sssnic_exception.h > create mode 100644 drivers/net/sssnic/base/sssnic_hw.c > create mode 100644 drivers/net/sssnic/base/sssnic_hw.h > create mode 100644 drivers/net/sssnic/base/sssnic_mbox.c > create mode 100644 drivers/net/sssnic/base/sssnic_mbox.h > create mode 100644 drivers/net/sssnic/base/sssnic_misc.h > create mode 100644 drivers/net/sssnic/base/sssnic_msg.c > create mode 100644 drivers/net/sssnic/base/sssnic_msg.h > create mode 100644 drivers/net/sssnic/base/sssnic_reg.h > create mode 100644 drivers/net/sssnic/base/sssnic_workq.c > create mode 100644 drivers/net/sssnic/base/sssnic_workq.h > create mode 100644 drivers/net/sssnic/meson.build > create mode 100644 drivers/net/sssnic/sssnic_ethdev.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_fdir.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_flow.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_link.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rss.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_rx.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_stats.h > create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.c > create mode 100644 drivers/net/sssnic/sssnic_ethdev_tx.h > create mode 100644 drivers/net/sssnic/sssnic_log.h > Overall this driver looks fine, and could be merged as is. All my comments are little things that could be modified at anytime no urgency. Series-Acked-by: Stephen Hemminger <stephen@networkplumber.org>
On 9/4/2023 5:56 AM, wanry@3snic.com wrote: > From: Renyong Wan <wanry@3snic.com> > > The sssnic PMD (**librte_pmd_sssnic**) provides poll mode driver support > for 3SNIC 9x0 serials family of Ethernet adapters. > > Supported NICs are: > > - 3S910 Dual Port SFP28 10/25GbE Ethernet adapter > - 3S920 Quad Port SFP28 10/25GbE Ethernet adapter > - 3S920 Quad Port QSFP28 100GbE Ethernet adapter > > Features of sssnic PMD are: > > - Link status > - Link status event > - Queue start/stop > - Rx interrupt > - Scattered Rx > - TSO > - LRO > - Promiscuous mode > - Allmulticast mode > - Unicast MAC filter > - Multicast MAC filte > - RSS hash > - RSS key update > - RSS reta update > - Inner RSS > - VLAN filter > - VLAN offload > - L3 checksum offload > - L4 checksum offload > - Inner L3 checksum > - Inner L4 checksum > - Basic stats > - Extended stats > - Stats per queue > - Flow control > - FW version > - Generic flow API > > --- > v2: > * Fixed 'Title underline too short' in doc/guides/nics/sssnic.rst. > * Removed error.h from including files. > * Fixed variable 'cmd_len' is uninitialized when used. > * Fixed 'EINVAL' undeclared. > * Fixed wrong format of printing uint64_t. > * Fixed 'mask->hdr.src_addr' will always evaluate to 'true'. > > v3: > * Fixed dereferencing type-punned pointer in base/sssnic_mbox.c. > > v4: > * Fixed dereferencing type-punned pointer in base/sssnic_eventq.c. > * Fixed coding style issue of COMPLEX_MACRO. > * Fixed coding style issue of REPEATED_WORD. > > v5: > * Fixed rebase mistake. > * Fixed incorrect path in MAINTAINERS file. > --- > > Renyong Wan (32): > net/sssnic: add build and doc infrastructure > net/sssnic: add log type and log macros > net/sssnic: support probe and remove > net/sssnic: initialize hardware base > net/sssnic: add event queue > net/sssnic/base: add message definition and utility > net/sssnic/base: add mailbox support > net/sssnic/base: add work queue > net/sssnic/base: add control queue > net/sssnic: add dev configure and infos get > net/sssnic: add dev MAC ops > net/sssnic: support dev link status > net/sssnic: support link status event > net/sssnic: support Rx queue setup and release > net/sssnic: support Tx queue setup and release > net/sssnic: support Rx queue start and stop > net/sssnic: support Tx queue start and stop > net/sssnic: add Rx interrupt support > net/sssnic: support dev start and stop > net/sssnic: support dev close and reset > net/sssnic: add allmulticast and promiscuous ops > net/sssnic: add basic and extended stats ops > net/sssnic: support Rx packet burst > net/sssnic: support Tx packet burst > net/sssnic: add RSS support > net/sssnic: support dev MTU set > net/sssnic: support dev queue info get > net/sssnic: support dev firmware version get > net/sssnic: add dev flow control ops > net/sssnic: support VLAN offload and filter > net/sssnic: add generic flow ops > net/sssnic: add VF dev support > Hi Renyong, Driver mostly looks good, I did put some minor comments, I guess driver can be merged soon with those issues addressed. Also agree on Stephen's comments, if you apply them in next version, please feel free to keep Stephen's ack in next version. Thanks, ferruh
On 9/26/2023 2:13 PM, Ferruh Yigit wrote: > On 9/4/2023 5:56 AM, wanry@3snic.com wrote: >> From: Renyong Wan <wanry@3snic.com> >> >> The sssnic PMD (**librte_pmd_sssnic**) provides poll mode driver support >> for 3SNIC 9x0 serials family of Ethernet adapters. >> >> Supported NICs are: >> >> - 3S910 Dual Port SFP28 10/25GbE Ethernet adapter >> - 3S920 Quad Port SFP28 10/25GbE Ethernet adapter >> - 3S920 Quad Port QSFP28 100GbE Ethernet adapter >> >> Features of sssnic PMD are: >> >> - Link status >> - Link status event >> - Queue start/stop >> - Rx interrupt >> - Scattered Rx >> - TSO >> - LRO >> - Promiscuous mode >> - Allmulticast mode >> - Unicast MAC filter >> - Multicast MAC filte >> - RSS hash >> - RSS key update >> - RSS reta update >> - Inner RSS >> - VLAN filter >> - VLAN offload >> - L3 checksum offload >> - L4 checksum offload >> - Inner L3 checksum >> - Inner L4 checksum >> - Basic stats >> - Extended stats >> - Stats per queue >> - Flow control >> - FW version >> - Generic flow API >> >> --- >> v2: >> * Fixed 'Title underline too short' in doc/guides/nics/sssnic.rst. >> * Removed error.h from including files. >> * Fixed variable 'cmd_len' is uninitialized when used. >> * Fixed 'EINVAL' undeclared. >> * Fixed wrong format of printing uint64_t. >> * Fixed 'mask->hdr.src_addr' will always evaluate to 'true'. >> >> v3: >> * Fixed dereferencing type-punned pointer in base/sssnic_mbox.c. >> >> v4: >> * Fixed dereferencing type-punned pointer in base/sssnic_eventq.c. >> * Fixed coding style issue of COMPLEX_MACRO. >> * Fixed coding style issue of REPEATED_WORD. >> >> v5: >> * Fixed rebase mistake. >> * Fixed incorrect path in MAINTAINERS file. >> --- >> >> Renyong Wan (32): >> net/sssnic: add build and doc infrastructure >> net/sssnic: add log type and log macros >> net/sssnic: support probe and remove >> net/sssnic: initialize hardware base >> net/sssnic: add event queue >> net/sssnic/base: add message definition and utility >> net/sssnic/base: add mailbox support >> net/sssnic/base: add work queue >> net/sssnic/base: add control queue >> net/sssnic: add dev configure and infos get >> net/sssnic: add dev MAC ops >> net/sssnic: support dev link status >> net/sssnic: support link status event >> net/sssnic: support Rx queue setup and release >> net/sssnic: support Tx queue setup and release >> net/sssnic: support Rx queue start and stop >> net/sssnic: support Tx queue start and stop >> net/sssnic: add Rx interrupt support >> net/sssnic: support dev start and stop >> net/sssnic: support dev close and reset >> net/sssnic: add allmulticast and promiscuous ops >> net/sssnic: add basic and extended stats ops >> net/sssnic: support Rx packet burst >> net/sssnic: support Tx packet burst >> net/sssnic: add RSS support >> net/sssnic: support dev MTU set >> net/sssnic: support dev queue info get >> net/sssnic: support dev firmware version get >> net/sssnic: add dev flow control ops >> net/sssnic: support VLAN offload and filter >> net/sssnic: add generic flow ops >> net/sssnic: add VF dev support >> > > Hi Renyong, > > Driver mostly looks good, I did put some minor comments, I guess driver > can be merged soon with those issues addressed. > > Also agree on Stephen's comments, if you apply them in next version, > please feel free to keep Stephen's ack in next version. > > Hi Renyong, v5 was almost there, will there be a new version for the v24.07?