------------------------------------------------------------------
发件人: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