STRUCT DEVLINK_PARAM(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, welcome to the Kernel API Manual page for struct devlink_param β€” this is the little data bundle that tells devlink all about one configuration parameter. no cap, it's giving "driver paperwork but make it iconic." πŸ’–


πŸ’– NAME πŸ’–

struct devlink_param β€” devlink configuration parameter data ✨

✨ SYNOPSIS ✨

       struct devlink_param {
           u32 id;
           const char *name;
           bool generic;
           enum devlink_param_type type;
           unsigned long supported_cmodes;
           int (*get)(struct devlink *devlink, u32 id, struct
       devlink_param_gset_ctx *ctx, struct netlink_ext_ack *extack);
           int (*set)(struct devlink *devlink, u32 id, struct
       devlink_param_gset_ctx *ctx, struct netlink_ext_ack *extack);
           int (*validate)(struct devlink *devlink, u32 id, union
       devlink_param_value *val, struct netlink_ext_ack *extack);
           int (*get_default)(struct devlink *devlink, u32 id, struct
       devlink_param_gset_ctx *ctx, struct netlink_ext_ack *extack);
           int (*reset_default)(struct devlink *devlink, u32 id, enum
       devlink_param_cmode cmode, struct netlink_ext_ack *extack);
        };

🫢 Members 🫢

  • id β€” devlink parameter id number πŸ†”
  • name β€” name of the parameter 🏷️
  • generic β€” indicates if the parameter is generic or driver specific πŸ‘€
  • type β€” parameter type 🧬
  • supported_cmodes β€” bitmap of supported configuration modes πŸ—ΊοΈ
  • get β€” get parameter value, used for runtime and permanent configuration modes 🎣
  • set β€” set parameter value, used for runtime and permanent configuration modes πŸ› οΈ
  • validate β€” validate input value is applicable (within value range, etc.) βœ…
  • get_default β€” get parameter default value, used for runtime and permanent configuration modes 🌱
  • reset_default β€” reset parameter to default value, used for runtime and permanent configuration modes πŸ”„

🌸 Description 🌸

so this struct is literally what the driver uses to fill in the data for a parameter it registers. that's the whole vibe. the driver fills it out, the parameter gets registered, and everyone moves on with their day. 🫢

🌈 SEE ALSO 🌈

Kernel file ./include/net/devlink.h β€” and then the whole devlink family reunion:

  • struct devlink_port_pci_pf_attrs(9)
  • struct devlink_port_pci_vf_attrs(9)
  • struct devlink_port_pci_sf_attrs(9)
  • struct devlink_port_attrs(9)
  • struct devlink_linecard_ops(9)
  • struct devlink_dpipe_field(9)
  • struct devlink_dpipe_header(9)
  • struct devlink_dpipe_match(9)
  • struct devlink_dpipe_action(9)
  • struct devlink_dpipe_value(9)
  • struct devlink_dpipe_entry(9)
  • struct devlink_dpipe_dump_ctx(9)
  • struct devlink_dpipe_table(9)
  • struct devlink_dpipe_table_ops(9)
  • struct devlink_dpipe_headers(9)
  • struct devlink_resource_size_params(9)
  • struct devlink_flash_notify(9)
  • struct devlink_flash_update_params(9)
  • struct devlink_region_ops(9)
  • struct devlink_port_region_ops(9)
  • struct devlink_health_reporter_ops(9)
  • struct devlink_trap_metadata(9)
  • struct devlink_trap_policer(9)
  • struct devlink_trap_group(9)
  • struct devlink_trap(9)
  • struct devlink_port_ops(9)

source/version: ./include/net Β· date: October 2026 Β· title: struct devlink_param(9) Β· manual: Kernel API Manual β€” mwah, go register those parameters responsibly πŸ’‹βœ¨

πŸ“¦ where this page comes from