linux/net/devlink
Daniel Zahka 2a367002ed devlink: support default values for param-get and param-set
Support querying and resetting to default param values.

Introduce two new devlink netlink attrs:
DEVLINK_ATTR_PARAM_VALUE_DEFAULT and
DEVLINK_ATTR_PARAM_RESET_DEFAULT. The former is used to contain an
optional parameter value inside of the param_value nested
attribute. The latter is used in param-set requests from userspace to
indicate that the driver should reset the param to its default value.

To implement this, two new functions are added to the devlink driver
api: devlink_param::get_default() and
devlink_param::reset_default(). These callbacks allow drivers to
implement default param actions for runtime and permanent cmodes. For
driverinit params, the core latches the last value set by a driver via
devl_param_driverinit_value_set(), and uses that as the default value
for a param.

Because default parameter values are optional, it would be impossible
to discern whether or not a param of type bool has default value of
false or not provided if the default value is encoded using a netlink
flag type. For this reason, when a DEVLINK_PARAM_TYPE_BOOL has an
associated default value, the default value is encoded using a u8
type.

Signed-off-by: Daniel Zahka <daniel.zahka@gmail.com>
Link: https://patch.msgid.link/20251119025038.651131-4-daniel.zahka@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-11-20 19:01:22 -08:00
..
core.c net: replace use of system_wq with system_percpu_wq 2025-09-22 17:40:30 -07:00
dev.c devlink: add value check to devlink_info_version_put() 2025-04-15 07:36:31 -07:00
devl_internal.h devlink: introduce devlink_nl_put_u64() 2024-10-29 16:52:56 -07:00
dpipe.c devlink: use devlink_nl_put_u64() helper 2024-10-29 16:52:56 -07:00
health.c devlink: Make health reporter burst period configurable 2025-08-26 17:24:16 -07:00
linecard.c devlink: introduce a helper for netlink multicast send 2023-12-19 15:31:40 +01:00
Makefile devlink: move devlink_notify_register/unregister() to dev.c 2023-08-28 08:02:24 -07:00
netlink.c devlink: Fix devlink parallel commands processing 2024-03-13 08:31:40 +00:00
netlink_gen.c devlink: support default values for param-get and param-set 2025-11-20 19:01:22 -08:00
netlink_gen.h devlink: Fix excessive stack usage in rate TC bandwidth parsing 2025-07-23 17:07:35 -07:00
param.c devlink: support default values for param-get and param-set 2025-11-20 19:01:22 -08:00
port.c devlink/port: Check attributes early and constify 2025-08-14 17:35:20 -07:00
rate.c devlink: rate: Unset parent pointer in devl_rate_nodes_destroy 2025-11-18 17:12:21 -08:00
region.c devlink: region: correct port region lookup to use port_ops 2025-10-21 17:40:26 -07:00
resource.c devlink: remove unused devlink_resource_register() 2024-10-29 16:52:57 -07:00
sb.c devlink: rename netlink callback to be aligned with the generated ones 2023-10-23 16:12:47 -07:00
trap.c devlink: use devlink_nl_put_u64() helper 2024-10-29 16:52:56 -07:00