On 25.10.2021 10:45:05, Jakub Kicinski wrote:
On Mon, 25 Oct 2021 15:27:18 +0200 Marc Kleine-Budde wrote:
quoted
On 25.10.2021 15:11:49, Marc Kleine-Budde wrote:
quoted
On 14.10.2021 19:39:41, Guangbin Huang wrote:
quoted
From: Hao Chen <redacted>
Add two new parameters ringparam_ext and extack for
.get_ringparam and .set_ringparam to extend more ring params
through netlink.
Signed-off-by: Hao Chen <redacted>
Signed-off-by: Guangbin Huang <redacted>
While discussing a different ethtool ring param extension,
Let me explain my requirements:
There is a not Ethernet based bus system, called CAN (mainly used in the
automotive and industrial world). It comes in 2 different generations or
modes (CAN-2.0 and CAN-FD) and the 3rd one CAN-XL has already been
specified.
Due to different frame sizes used in these CAN modes and HW limitations,
we need the possibility to set a RX/TX ring configuration for each of
these modes.
The approach Andrew suggested is two-fold. First introduce a "struct
ethtool_kringparam" that's only used inside the kernel, as "struct
ethtool_ringparam" is ABI. Then extend "struct ethtool_kringparam" as
needed.
Indeed, there are different ways to extend the API for drivers,
I think it comes down to personal taste. I find the "inheritance"
models in C (kstruct usually contains the old struct as some "base")
awkward.
I don't think we have agreed-on best practice in the area.
The set/get_coalesce as just extended, using a 3rd parameter for the new
values:
| int (*set_coalesce)(struct net_device *,
| struct ethtool_coalesce *,
| struct kernel_ethtool_coalesce *,
| struct netlink_ext_ack *);
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=f3ccfda19319
regards,
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung West/Dortmund | Phone: +49-231-2826-924 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |