[PATCH v9 03/25] net/ethtool: add ULP_DDP_{GET,SET} operations for caps and stats
Jakub Kicinski
kuba at kernel.org
Thu Jan 19 18:41:47 PST 2023
On Tue, 17 Jan 2023 17:35:13 +0200 Aurelien Aptel wrote:
> This commit adds:
>
> - 2 new netlink messages:
> * ULP_DDP_GET: returns a bitset of supported and active capabilities
> * ULP_DDP_SET: tries to activate requested bitset and returns results
>
> - 2 new netdev ethtool_ops operations:
> * ethtool_ops->get_ulp_ddp_stats(): retrieve device statistics
> * ethtool_ops->set_ulp_ddp_capabilities(): try to apply
> capability changes
>
> ULP DDP capabilities handling is similar to netdev features
> handling.
>
> If a ULP_DDP_GET message has requested statistics via the
> ETHTOOL_FLAG_STATS header flag, then per-device statistics are
s/per-device// ?
> returned to userspace.
>
> Similar to netdev features, ULP_DDP_GET capabilities and statistics
> can be returned in a verbose (default) or compact form (if
> ETHTOOL_FLAG_COMPACT_BITSET is set in header flags).
>
> Verbose statistics are nested as follows:
>
> STATS (nest)
> COUNT (u32)
> MAP (nest)
> ITEM (nest)
> NAME (strz)
> VAL (u64)
> ...
> Compact statistics are nested as follows:
>
> STATS (nest)
> COUNT (u32)
> COMPACT_VALUES (array of u64)
That's not how other per-cmd stats work, why are you inventing
new ways..
> + int (*get_ulp_ddp_stats)(struct net_device *dev, struct ethtool_ulp_ddp_stats *stats);
> + int (*set_ulp_ddp_capabilities)(struct net_device *dev, unsigned long *bits);
Why are these two callbacks not in struct ulp_ddp_dev_ops?
Why does the ethtool API not expose limits?
More information about the Linux-nvme
mailing list