devlink_ops
Regular
4.4
: Absent ⚠️
4.8
: Absent ⚠️
4.10
: Absent ⚠️
4.13
: ✅struct devlink_ops {
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int);
int (*port_unsplit)(struct devlink *, unsigned int);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8);
int (*eswitch_encap_mode_get)(struct devlink *, u8 *);
int (*eswitch_encap_mode_set)(struct devlink *, u8);
};
4.15
: ✅struct devlink_ops {
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int);
int (*port_unsplit)(struct devlink *, unsigned int);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8);
int (*eswitch_encap_mode_get)(struct devlink *, u8 *);
int (*eswitch_encap_mode_set)(struct devlink *, u8);
};
4.18
: ✅struct devlink_ops {
int (*reload)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8);
int (*eswitch_encap_mode_get)(struct devlink *, u8 *);
int (*eswitch_encap_mode_set)(struct devlink *, u8);
};
5.0
: ✅struct devlink_ops {
int (*reload)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, u8 *);
int (*eswitch_encap_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
};
5.3
: ✅struct devlink_ops {
int (*reload)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *);
};
5.4
: ✅struct devlink_ops {
int (*reload_down)(struct devlink *, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
};
5.8
: ✅struct devlink_ops {
int (*reload_down)(struct devlink *, bool, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *);
int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *);
void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *);
int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *);
int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *);
};
5.11
: ✅struct devlink_ops {
u32 supported_flash_update_params;
long unsigned int reload_actions;
long unsigned int reload_limits;
int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *);
int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *);
void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *);
int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *);
int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *);
int (*port_function_hw_addr_get)(struct devlink *, struct devlink_port *, u8 *, int *, struct netlink_ext_ack *);
int (*port_function_hw_addr_set)(struct devlink *, struct devlink_port *, const u8 *, int, struct netlink_ext_ack *);
};
5.13
: ✅struct devlink_ops {
u32 supported_flash_update_params;
long unsigned int reload_actions;
long unsigned int reload_limits;
int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *);
int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *);
void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *);
int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *);
int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *);
int (*port_function_hw_addr_get)(struct devlink *, struct devlink_port *, u8 *, int *, struct netlink_ext_ack *);
int (*port_function_hw_addr_set)(struct devlink *, struct devlink_port *, const u8 *, int, struct netlink_ext_ack *);
int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, unsigned int *);
int (*port_del)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*port_fn_state_get)(struct devlink *, struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *);
int (*port_fn_state_set)(struct devlink *, struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *);
};
5.15
: ✅struct devlink_ops {
u32 supported_flash_update_params;
long unsigned int reload_actions;
long unsigned int reload_limits;
int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *);
int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *);
int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *);
void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *);
int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *);
int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *);
int (*port_function_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *);
int (*port_function_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *);
int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, unsigned int *);
int (*port_del)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *);
int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *);
int (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *);
int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *);
int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
};
5.19
: ✅struct devlink_ops {
u32 supported_flash_update_params;
long unsigned int reload_actions;
long unsigned int reload_limits;
int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *);
int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *);
int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *);
void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *);
int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *);
int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *);
int (*port_function_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *);
int (*port_function_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *);
int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, unsigned int *);
int (*port_del)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *);
int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *);
int (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *);
int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *);
int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
};
6.2
: ✅struct devlink_ops {
u32 supported_flash_update_params;
long unsigned int reload_actions;
long unsigned int reload_limits;
int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *);
int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *);
int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *);
void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *);
int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *);
int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *);
int (*port_function_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *);
int (*port_function_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *);
int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *);
int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *);
int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *);
int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *);
int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, unsigned int *);
int (*port_del)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *);
int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *);
int (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_leaf_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
int (*rate_leaf_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_node_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
int (*rate_node_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *);
int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *);
int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
bool (*selftest_check)(struct devlink *, unsigned int, struct netlink_ext_ack *);
enum devlink_selftest_status (*selftest_run)(struct devlink *, unsigned int, struct netlink_ext_ack *);
};
6.5
: ✅struct devlink_ops {
u32 supported_flash_update_params;
long unsigned int reload_actions;
long unsigned int reload_limits;
int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *);
int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *);
int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *);
void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *);
int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *);
int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *);
int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, struct devlink_port **);
int (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_leaf_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
int (*rate_leaf_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_node_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
int (*rate_node_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *);
int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *);
int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
bool (*selftest_check)(struct devlink *, unsigned int, struct netlink_ext_ack *);
enum devlink_selftest_status (*selftest_run)(struct devlink *, unsigned int, struct netlink_ext_ack *);
};
6.8
: ✅struct devlink_ops {
u32 supported_flash_update_params;
long unsigned int reload_actions;
long unsigned int reload_limits;
int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *);
int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *);
int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *);
int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *);
void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *);
int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *);
int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *);
int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, struct devlink_port **);
int (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_leaf_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
int (*rate_leaf_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
int (*rate_node_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
int (*rate_node_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *);
int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *);
int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
bool (*selftest_check)(struct devlink *, unsigned int, struct netlink_ext_ack *);
enum devlink_selftest_status (*selftest_run)(struct devlink *, unsigned int, struct netlink_ext_ack *);
};
arm64
: ✅struct devlink_ops {
int (*reload_down)(struct devlink *, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
};
armhf
: ✅struct devlink_ops {
int (*reload_down)(struct devlink *, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
};
ppc64el
: ✅struct devlink_ops {
int (*reload_down)(struct devlink *, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
};
riscv64
: ✅struct devlink_ops {
int (*reload_down)(struct devlink *, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
};
aws
: ✅struct devlink_ops {
int (*reload_down)(struct devlink *, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
};
azure
: ✅struct devlink_ops {
int (*reload_down)(struct devlink *, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
};
gcp
: ✅struct devlink_ops {
int (*reload_down)(struct devlink *, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
};
lowlatency
: ✅struct devlink_ops {
int (*reload_down)(struct devlink *, struct netlink_ext_ack *);
int (*reload_up)(struct devlink *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *);
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
int (*eswitch_mode_get)(struct devlink *, u16 *);
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *);
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action);
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
};
Regular
4.13
and 4.15
✅
4.15
and 4.18
⚠️int (*reload)(struct devlink *, struct netlink_ext_ack *)
int (*port_split)(struct devlink *, unsigned int, unsigned int)
➡️ int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *)
int (*port_unsplit)(struct devlink *, unsigned int)
➡️ int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *)
4.18
and 5.0
⚠️int (*eswitch_mode_set)(struct devlink *, u16)
➡️ int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *)
int (*eswitch_inline_mode_set)(struct devlink *, u8)
➡️ int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *)
int (*eswitch_encap_mode_set)(struct devlink *, u8)
➡️ int (*eswitch_encap_mode_set)(struct devlink *, u8, struct netlink_ext_ack *)
5.0
and 5.3
⚠️int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *)
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *)
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type)
➡️ int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *)
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32)
➡️ int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *)
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32)
➡️ int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *)
int (*eswitch_encap_mode_get)(struct devlink *, u8 *)
➡️ int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *)
int (*eswitch_encap_mode_set)(struct devlink *, u8, struct netlink_ext_ack *)
➡️ int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *)
5.3
and 5.4
⚠️int (*reload_down)(struct devlink *, struct netlink_ext_ack *)
int (*reload_up)(struct devlink *, struct netlink_ext_ack *)
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *)
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *)
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action)
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *)
int (*reload)(struct devlink *, struct netlink_ext_ack *)
5.4
and 5.8
⚠️int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *)
int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *)
void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *)
int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *)
int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *)
int (*reload_down)(struct devlink *, struct netlink_ext_ack *)
➡️ int (*reload_down)(struct devlink *, bool, struct netlink_ext_ack *)
5.8
and 5.11
⚠️u32 supported_flash_update_params
long unsigned int reload_actions
long unsigned int reload_limits
int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *)
int (*port_function_hw_addr_get)(struct devlink *, struct devlink_port *, u8 *, int *, struct netlink_ext_ack *)
int (*port_function_hw_addr_set)(struct devlink *, struct devlink_port *, const u8 *, int, struct netlink_ext_ack *)
int (*reload_down)(struct devlink *, bool, struct netlink_ext_ack *)
➡️ int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *)
int (*reload_up)(struct devlink *, struct netlink_ext_ack *)
➡️ int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *)
int (*flash_update)(struct devlink *, const char *, const char *, struct netlink_ext_ack *)
➡️ int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *)
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action)
➡️ int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *)
int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *)
➡️ int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *)
5.11
and 5.13
⚠️int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, unsigned int *)
int (*port_del)(struct devlink *, unsigned int, struct netlink_ext_ack *)
int (*port_fn_state_get)(struct devlink *, struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *)
int (*port_fn_state_set)(struct devlink *, struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *)
5.13
and 5.15
⚠️int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *)
int (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *)
int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *)
int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *)
int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *)
int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *)
int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *)
int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *)
int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *)
int (*port_function_hw_addr_get)(struct devlink *, struct devlink_port *, u8 *, int *, struct netlink_ext_ack *)
➡️ int (*port_function_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *)
int (*port_function_hw_addr_set)(struct devlink *, struct devlink_port *, const u8 *, int, struct netlink_ext_ack *)
➡️ int (*port_function_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *)
int (*port_fn_state_get)(struct devlink *, struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *)
➡️ int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *)
int (*port_fn_state_set)(struct devlink *, struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *)
➡️ int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *)
5.15
and 5.19
⚠️int (*port_split)(struct devlink *, unsigned int, unsigned int, struct netlink_ext_ack *)
➡️ int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *)
int (*port_unsplit)(struct devlink *, unsigned int, struct netlink_ext_ack *)
➡️ int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *)
5.19
and 6.2
⚠️int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *)
int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *)
int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *)
int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *)
int (*rate_leaf_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *)
int (*rate_leaf_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *)
int (*rate_node_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *)
int (*rate_node_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *)
bool (*selftest_check)(struct devlink *, unsigned int, struct netlink_ext_ack *)
enum devlink_selftest_status (*selftest_run)(struct devlink *, unsigned int, struct netlink_ext_ack *)
6.2
and 6.5
⚠️int (*port_type_set)(struct devlink_port *, enum devlink_port_type)
int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *)
int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *)
int (*port_function_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *)
int (*port_function_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *)
int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *)
int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *)
int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *)
int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *)
int (*port_del)(struct devlink *, unsigned int, struct netlink_ext_ack *)
int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *)
int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *)
int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, unsigned int *)
➡️ int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, struct devlink_port **)
6.5
and 6.8
✅
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
✅
amd64
and riscv64
✅
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅