devlink_opsRegular
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 ✅