From: "Dimon" <dimon.zhao@nebula-matrix.com>
To: "Stephen Hemminger" <stephen@networkplumber.org>
Cc: "dev" <dev@dpdk.org>, "Thomas Monjalon" <thomas@monjalon.net>,
"Leon" <leon.yu@nebula-matrix.com>,
"Sam" <sam.chen@nebula-matrix.com>
Subject: 回复:[PATCH v6 01/17] net/nbl: add doc and minimum nbl build framework
Date: Thu, 28 Aug 2025 11:06:26 +0800 [thread overview]
Message-ID: <be355e2f-fa0e-4eef-8256-0de529145b27.dimon.zhao@nebula-matrix.com> (raw)
In-Reply-To: <20250827092734.03fb2729@hermes.local>
[-- Attachment #1: Type: text/plain, Size: 2249 bytes --]
Hi Stephen,
Our driver architecture is designed to support multiple chip variants, each with distinct hardware-software interactions, which contributes to its relative complexity.
To ensure broad compatibility and modularity, the architecture is organized into the following layers:
1. Dev Layer (Device Layer)
2. Dispatch Layer
3. Resource Layer
4. Channel Layer
5. HW Layer (Hardware Layer)
Each chip variant has its own init and remove functions for these layers.
As you correctly pointed out, there are many indirection tables involved.
This patch series implements the tables for one chip, and subsequent patches will add support for more chip variants.
Thank you.
------------------------------------------------------------------
发件人:Stephen Hemminger <stephen@networkplumber.org>
发送时间:2025年8月28日(周四) 00:27
收件人:Dimon<dimon.zhao@nebula-matrix.com>
抄 送:dev<dev@dpdk.org>; Thomas Monjalon<thomas@monjalon.net>; Kyo Liu<kyo.liu@nebula-matrix.com>; Leon<leon.yu@nebula-matrix.com>; Sam<sam.chen@nebula-matrix.com>
主 题:Re: [PATCH v6 01/17] net/nbl: add doc and minimum nbl build framework
This code looks like it was part of something bigger (and/or written
by a object oriented programmer).
Lots of indirection tables and most never have multiple implementations.
Function indirection is slower and risks SPECTRE type attacks.
> +struct nbl_product_core_ops {
> + int (*hw_init)(void *p);
> + void (*hw_remove)(void *p);
> + int (*res_init)(void *p, struct rte_eth_dev *eth_dev);
> + void (*res_remove)(void *p);
> + int (*chan_init)(void *p);
> + void (*chan_remove)(void *p);
> +};
> +struct nbl_product_dev_ops {
> + int (*dev_init)(void *adapter);
> + void (*dev_uninit)(void *adapter);
> + int (*dev_start)(void *adapter);
> + void (*dev_stop)(void *adapter);
> +};
> +
> +struct nbl_product_dispatch_ops {
> + int (*dispatch_init)(void *mgt);
> + int (*dispatch_uninit)(void *mgt);
> +};
> +struct nbl_product_dev_external_ops {
> + int (*external_pf_ops_get)(struct rte_eth_dev *dev, void *arg);
> + int (*external_rep_ops_get)(struct rte_eth_dev *dev, void *arg);
> + int (*external_bond_ops_get)(struct rte_eth_dev *dev, void *arg);
> +};
These are defined but never used.
> +#endif
[-- Attachment #2: Type: text/html, Size: 5978 bytes --]
next prev parent reply other threads:[~2025-08-28 3:06 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-27 1:40 [PATCH v3 00/16] NBL PMD for Nebulamatrix NICs dimon.zhao
2025-06-27 1:40 ` [PATCH v3 01/16] net/nbl: add doc and minimum nbl build framework dimon.zhao
2025-06-27 1:40 ` [PATCH v3 02/16] net/nbl: add simple probe/remove and log module dimon.zhao
2025-08-20 19:51 ` Stephen Hemminger
2025-06-27 1:40 ` [PATCH v3 03/16] net/nbl: add PHY layer definitions and implementation dimon.zhao
2025-06-27 1:40 ` [PATCH v3 04/16] net/nbl: add Channel " dimon.zhao
2025-06-27 1:40 ` [PATCH v3 05/16] net/nbl: add Resource " dimon.zhao
2025-06-27 1:40 ` [PATCH v3 06/16] net/nbl: add Dispatch " dimon.zhao
2025-06-27 1:40 ` [PATCH v3 07/16] net/nbl: add Dev " dimon.zhao
2025-06-27 1:40 ` [PATCH v3 08/16] net/nbl: add complete device init and uninit functionality dimon.zhao
2025-06-27 1:40 ` [PATCH v3 09/16] net/nbl: add UIO and VFIO mode for nbl dimon.zhao
2025-06-27 1:40 ` [PATCH v3 10/16] net/nbl: add nbl coexistence " dimon.zhao
2025-06-27 1:40 ` [PATCH v3 11/16] net/nbl: add nbl ethdev configuration dimon.zhao
2025-06-27 1:40 ` [PATCH v3 12/16] net/nbl: add nbl device rxtx queue setup and release ops dimon.zhao
2025-06-27 1:40 ` [PATCH v3 13/16] net/nbl: add nbl device start and stop ops dimon.zhao
2025-06-27 1:40 ` [PATCH v3 14/16] net/nbl: add nbl device Tx and Rx burst dimon.zhao
2025-06-27 1:40 ` [PATCH v3 15/16] net/nbl: add nbl device xstats and stats dimon.zhao
2025-06-27 1:40 ` [PATCH v3 16/16] net/nbl: nbl device support set MTU and promisc dimon.zhao
2025-06-27 21:07 ` [PATCH v3 00/16] NBL PMD for Nebulamatrix NICs Stephen Hemminger
2025-06-27 21:40 ` Thomas Monjalon
2025-08-13 6:43 ` [PATCH v4 " Dimon Zhao
2025-08-13 6:43 ` [PATCH v4 01/16] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-08-13 14:43 ` Stephen Hemminger
2025-08-19 22:32 ` Stephen Hemminger
2025-08-13 6:43 ` [PATCH v4 02/16] net/nbl: add simple probe/remove and log module Dimon Zhao
2025-08-13 6:43 ` [PATCH v4 03/16] net/nbl: add PHY layer definitions and implementation Dimon Zhao
2025-08-13 9:30 ` Ivan Malov
2025-08-13 14:19 ` Stephen Hemminger
2025-08-13 6:43 ` [PATCH v4 04/16] net/nbl: add Channel " Dimon Zhao
2025-08-13 9:54 ` Ivan Malov
2025-08-13 14:21 ` Stephen Hemminger
2025-08-13 14:22 ` Stephen Hemminger
2025-08-13 14:25 ` Stephen Hemminger
2025-08-13 14:28 ` Stephen Hemminger
2025-08-13 6:43 ` [PATCH v4 05/16] net/nbl: add Resource " Dimon Zhao
2025-08-13 6:44 ` [PATCH v4 06/16] net/nbl: add Dispatch " Dimon Zhao
2025-08-13 6:44 ` [PATCH v4 07/16] net/nbl: add Dev " Dimon Zhao
2025-08-13 10:12 ` Ivan Malov
2025-08-13 6:44 ` [PATCH v4 08/16] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-08-13 6:44 ` [PATCH v4 09/16] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-08-13 6:44 ` [PATCH v4 10/16] net/nbl: add nbl coexistence " Dimon Zhao
2025-08-13 10:35 ` Ivan Malov
2025-08-13 6:44 ` [PATCH v4 11/16] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-08-13 10:40 ` Ivan Malov
2025-08-13 6:44 ` [PATCH v4 12/16] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-08-13 12:00 ` Ivan Malov
2025-08-15 3:47 ` 回复:[PATCH " Dimon
2025-08-15 8:00 ` Ivan Malov
2025-08-18 2:59 ` 回复:回复:[PATCH " Dimon
2025-08-13 6:44 ` [PATCH v4 13/16] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-08-13 6:44 ` [PATCH v4 14/16] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-08-13 11:31 ` Ivan Malov
2025-08-13 6:44 ` [PATCH v4 15/16] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-08-13 11:48 ` Ivan Malov
2025-08-13 14:27 ` Stephen Hemminger
2025-08-18 10:11 ` 回复:[PATCH " Dimon
2025-08-13 6:44 ` [PATCH v4 16/16] net/nbl: nbl device support set MTU and promisc Dimon Zhao
2025-08-13 12:06 ` Ivan Malov
2025-08-19 10:22 ` [PATCH v5 00/17] NBL PMD for Nebulamatrix NICs Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 01/17] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 02/17] net/nbl: add simple probe/remove and log module Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 03/17] net/nbl: add HW layer definitions and implementation Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 04/17] net/nbl: add Channel " Dimon Zhao
2025-08-19 22:05 ` Stephen Hemminger
2025-08-20 16:16 ` Stephen Hemminger
2025-08-21 3:19 ` 回复:[PATCH " Dimon
2025-08-19 10:22 ` [PATCH v5 05/17] net/nbl: add Resource " Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 06/17] net/nbl: add Dispatch " Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 07/17] net/nbl: add Dev " Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 08/17] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 09/17] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 10/17] net/nbl: add nbl coexistence " Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 11/17] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-08-19 15:30 ` Stephen Hemminger
2025-08-19 10:22 ` [PATCH v5 12/17] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-08-19 22:35 ` Stephen Hemminger
2025-08-19 10:22 ` [PATCH v5 13/17] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 14/17] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 15/17] net/nbl: add nbl ethdev infos get Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 16/17] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 17/17] net/nbl: nbl device support set MTU and promisc Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 00/17] NBL PMD for Nebulamatrix NICs Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 01/17] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-08-27 16:27 ` Stephen Hemminger
2025-08-28 3:06 ` Dimon [this message]
2025-08-22 9:03 ` [PATCH v6 02/17] net/nbl: add simple proybe/remove and log module Dimon Zhao
2025-08-27 16:30 ` Stephen Hemminger
2025-08-22 9:03 ` [PATCH v6 03/17] net/nbl: add HW layer definitions and implementation Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 04/17] net/nbl: add Channel " Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 05/17] net/nbl: add Resource " Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 06/17] net/nbl: add Dispatch " Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 07/17] net/nbl: add Dev " Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 08/17] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 09/17] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 10/17] net/nbl: add nbl coexistence " Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 11/17] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 12/17] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 13/17] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 14/17] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 15/17] net/nbl: add nbl ethdev infos get Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 16/17] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 17/17] net/nbl: nbl device support set MTU and promisc Dimon Zhao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=be355e2f-fa0e-4eef-8256-0de529145b27.dimon.zhao@nebula-matrix.com \
--to=dimon.zhao@nebula-matrix.com \
--cc=dev@dpdk.org \
--cc=leon.yu@nebula-matrix.com \
--cc=sam.chen@nebula-matrix.com \
--cc=stephen@networkplumber.org \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).