/openbmc/linux/net/devlink/ |
H A D | core.c | 19 void *devlink_priv(struct devlink *devlink) in devlink_priv() argument 21 return &devlink->priv; in devlink_priv() 25 struct devlink *priv_to_devlink(void *priv) in priv_to_devlink() 27 return container_of(priv, struct devlink, priv); in priv_to_devlink() 31 struct device *devlink_to_dev(const struct devlink *devlink) in devlink_to_dev() argument 33 return devlink->dev; in devlink_to_dev() 37 struct net *devlink_net(const struct devlink *devlink) in devlink_net() argument 39 return read_pnet(&devlink->_net); in devlink_net() 43 void devl_assert_locked(struct devlink *devlink) in devl_assert_locked() argument 45 lockdep_assert_held(&devlink->lock); in devl_assert_locked() [all …]
|
H A D | trap.c | 73 devlink_trap_policer_item_lookup(struct devlink *devlink, u32 id) in devlink_trap_policer_item_lookup() argument 77 list_for_each_entry(policer_item, &devlink->trap_policer_list, list) { in devlink_trap_policer_item_lookup() 86 devlink_trap_item_lookup(struct devlink *devlink, const char *name) in devlink_trap_item_lookup() argument 90 list_for_each_entry(trap_item, &devlink->trap_list, list) { in devlink_trap_item_lookup() 99 devlink_trap_item_get_from_info(struct devlink *devlink, in devlink_trap_item_get_from_info() argument 108 return devlink_trap_item_lookup(devlink, nla_data(attr)); in devlink_trap_item_get_from_info() 211 static int devlink_trap_stats_put(struct sk_buff *msg, struct devlink *devlink, in devlink_trap_stats_put() argument 219 if (devlink->ops->trap_drop_counter_get) { in devlink_trap_stats_put() 220 err = devlink->ops->trap_drop_counter_get(devlink, in devlink_trap_stats_put() 233 if (devlink->ops->trap_drop_counter_get && in devlink_trap_stats_put() [all …]
|
H A D | devl_internal.h | 30 struct devlink { struct 84 #define devlinks_xa_for_each_registered_get(net, index, devlink) \ argument 85 for (index = 0; (devlink = devlinks_xa_find_get(net, &index)); index++) 87 struct devlink *devlinks_xa_find_get(struct net *net, unsigned long *indexp); 89 static inline bool devl_is_registered(struct devlink *devlink) in devl_is_registered() argument 91 devl_assert_locked(devlink); in devl_is_registered() 92 return xa_get_mark(&devlinks, devlink->index, DEVLINK_REGISTERED); in devl_is_registered() 120 struct devlink *devlink, 124 struct devlink * 139 devlink_nl_put_handle(struct sk_buff *msg, struct devlink *devlink) in devlink_nl_put_handle() argument [all …]
|
H A D | dev.c | 46 devlink_reload_action_is_supported(struct devlink *devlink, enum devlink_reload_action action) in devlink_reload_action_is_supported() argument 48 return test_bit(action, &devlink->ops->reload_actions); in devlink_reload_action_is_supported() 52 devlink_reload_limit_is_supported(struct devlink *devlink, enum devlink_reload_limit limit) in devlink_reload_limit_is_supported() argument 54 return test_bit(limit, &devlink->ops->reload_limits); in devlink_reload_limit_is_supported() 78 devlink_reload_stats_put(struct sk_buff *msg, struct devlink *devlink, bool is_remote) in devlink_reload_stats_put() argument 94 !devlink_reload_action_is_supported(devlink, i)) || in devlink_reload_stats_put() 114 !devlink_reload_limit_is_supported(devlink, j)) || in devlink_reload_stats_put() 120 value = devlink->stats.reload_stats[stat_idx]; in devlink_reload_stats_put() 122 value = devlink->stats.remote_reload_stats[stat_idx]; in devlink_reload_stats_put() 141 static int devlink_nl_fill(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_fill() argument [all …]
|
H A D | resource.c | 39 devlink_resource_find(struct devlink *devlink, in devlink_resource_find() argument 47 resource_list = &devlink->resource_list; in devlink_resource_find() 55 child_resource = devlink_resource_find(devlink, resource, in devlink_resource_find() 110 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_cmd_resource_set() local 121 resource = devlink_resource_find(devlink, NULL, resource_id); in devlink_nl_cmd_resource_set() 165 static int devlink_resource_put(struct devlink *devlink, struct sk_buff *skb, in devlink_resource_put() argument 203 if (devlink_resource_put(devlink, skb, child_resource)) in devlink_resource_put() 222 struct devlink *devlink = info->user_ptr[0]; in devlink_resource_fill() local 232 resource = list_first_entry(&devlink->resource_list, in devlink_resource_fill() 246 if (devlink_nl_put_handle(skb, devlink)) in devlink_resource_fill() [all …]
|
H A D | sb.c | 24 static struct devlink_sb *devlink_sb_get_by_index(struct devlink *devlink, in devlink_sb_get_by_index() argument 29 list_for_each_entry(devlink_sb, &devlink->sb_list, list) { in devlink_sb_get_by_index() 36 static bool devlink_sb_index_exists(struct devlink *devlink, in devlink_sb_index_exists() argument 39 return devlink_sb_get_by_index(devlink, sb_index); in devlink_sb_index_exists() 42 static struct devlink_sb *devlink_sb_get_from_attrs(struct devlink *devlink, in devlink_sb_get_from_attrs() argument 49 devlink_sb = devlink_sb_get_by_index(devlink, sb_index); in devlink_sb_get_from_attrs() 57 static struct devlink_sb *devlink_sb_get_from_info(struct devlink *devlink, in devlink_sb_get_from_info() argument 60 return devlink_sb_get_from_attrs(devlink, info->attrs); in devlink_sb_get_from_info() 167 static int devlink_nl_sb_fill(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_sb_fill() argument 178 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_sb_fill() [all …]
|
H A D | region.c | 10 struct devlink *devlink; member 35 devlink_region_get_by_name(struct devlink *devlink, const char *region_name) in devlink_region_get_by_name() argument 39 list_for_each_entry(region, &devlink->region_list, list) in devlink_region_get_by_name() 72 struct devlink *devlink, in devlink_nl_region_snapshot_id_put() argument 95 struct devlink *devlink, in devlink_nl_region_snapshots_id_put() argument 108 err = devlink_nl_region_snapshot_id_put(msg, devlink, snapshot); in devlink_nl_region_snapshots_id_put() 121 static int devlink_nl_region_fill(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_region_fill() argument 133 err = devlink_nl_put_handle(msg, devlink); in devlink_nl_region_fill() 159 err = devlink_nl_region_snapshots_id_put(msg, devlink, region); in devlink_nl_region_fill() 176 struct devlink *devlink = region->devlink; in devlink_nl_region_notify_build() local [all …]
|
H A D | param.c | 150 static int devlink_param_get(struct devlink *devlink, in devlink_param_get() argument 156 return param->get(devlink, param->id, ctx); in devlink_param_get() 159 static int devlink_param_set(struct devlink *devlink, in devlink_param_set() argument 165 return param->set(devlink, param->id, ctx); in devlink_param_set() 237 static int devlink_nl_param_fill(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_param_fill() argument 267 err = devlink_param_get(devlink, param, &ctx); in devlink_nl_param_fill() 279 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_param_fill() 330 static void devlink_param_notify(struct devlink *devlink, in devlink_param_notify() argument 346 if (!devl_is_registered(devlink)) in devlink_param_notify() 352 err = devlink_nl_param_fill(msg, devlink, port_index, param_item, cmd, in devlink_param_notify() [all …]
|
H A D | rate.c | 22 devlink_rate_leaf_get_from_info(struct devlink *devlink, struct genl_info *info) in devlink_rate_leaf_get_from_info() argument 27 devlink_port = devlink_port_get_from_attrs(devlink, info->attrs); in devlink_rate_leaf_get_from_info() 35 devlink_rate_node_get_by_name(struct devlink *devlink, const char *node_name) in devlink_rate_node_get_by_name() argument 39 list_for_each_entry(devlink_rate, &devlink->rate_list, list) { in devlink_rate_node_get_by_name() 48 devlink_rate_node_get_from_attrs(struct devlink *devlink, struct nlattr **attrs) in devlink_rate_node_get_from_attrs() argument 61 return devlink_rate_node_get_by_name(devlink, rate_node_name); in devlink_rate_node_get_from_attrs() 65 devlink_rate_node_get_from_info(struct devlink *devlink, struct genl_info *info) in devlink_rate_node_get_from_info() argument 67 return devlink_rate_node_get_from_attrs(devlink, info->attrs); in devlink_rate_node_get_from_info() 71 devlink_rate_get_from_info(struct devlink *devlink, struct genl_info *info) in devlink_rate_get_from_info() argument 76 return devlink_rate_leaf_get_from_info(devlink, info); in devlink_rate_get_from_info() [all …]
|
H A D | health.c | 58 struct devlink *devlink; member 92 devlink_health_reporter_find_by_name(struct devlink *devlink, in devlink_health_reporter_find_by_name() argument 95 return __devlink_health_reporter_find_by_name(&devlink->reporter_list, in devlink_health_reporter_find_by_name() 108 __devlink_health_reporter_create(struct devlink *devlink, in __devlink_health_reporter_create() argument 123 reporter->devlink = devlink; in __devlink_health_reporter_create() 146 devl_assert_locked(port->devlink); in devl_port_health_reporter_create() 152 reporter = __devlink_health_reporter_create(port->devlink, ops, in devl_port_health_reporter_create() 169 struct devlink *devlink = port->devlink; in devlink_port_health_reporter_create() local 171 devl_lock(devlink); in devlink_port_health_reporter_create() 174 devl_unlock(devlink); in devlink_port_health_reporter_create() [all …]
|
H A D | linecard.c | 10 devlink_linecard_get_by_index(struct devlink *devlink, in devlink_linecard_get_by_index() argument 15 list_for_each_entry(devlink_linecard, &devlink->linecard_list, list) { in devlink_linecard_get_by_index() 22 static bool devlink_linecard_index_exists(struct devlink *devlink, in devlink_linecard_index_exists() argument 25 return devlink_linecard_get_by_index(devlink, linecard_index); in devlink_linecard_index_exists() 29 devlink_linecard_get_from_attrs(struct devlink *devlink, struct nlattr **attrs) in devlink_linecard_get_from_attrs() argument 35 linecard = devlink_linecard_get_by_index(devlink, linecard_index); in devlink_linecard_get_from_attrs() 44 devlink_linecard_get_from_info(struct devlink *devlink, struct genl_info *info) in devlink_linecard_get_from_info() argument 46 return devlink_linecard_get_from_attrs(devlink, info->attrs); in devlink_linecard_get_from_info() 49 static int devlink_nl_put_nested_handle(struct sk_buff *msg, struct devlink *devlink) in devlink_nl_put_nested_handle() argument 56 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_put_nested_handle() [all …]
|
H A D | netlink.c | 100 struct devlink * 103 struct devlink *devlink; in devlink_get_from_attrs_lock() local 114 devlinks_xa_for_each_registered_get(net, index, devlink) { in devlink_get_from_attrs_lock() 115 devl_lock(devlink); in devlink_get_from_attrs_lock() 116 if (devl_is_registered(devlink) && in devlink_get_from_attrs_lock() 117 strcmp(devlink->dev->bus->name, busname) == 0 && in devlink_get_from_attrs_lock() 118 strcmp(dev_name(devlink->dev), devname) == 0) in devlink_get_from_attrs_lock() 119 return devlink; in devlink_get_from_attrs_lock() 120 devl_unlock(devlink); in devlink_get_from_attrs_lock() 121 devlink_put(devlink); in devlink_get_from_attrs_lock() [all …]
|
H A D | dpipe.c | 217 struct devlink *devlink = info->user_ptr[0]; in devlink_dpipe_tables_fill() local 241 if (devlink_nl_put_handle(skb, devlink)) in devlink_dpipe_tables_fill() 294 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_cmd_dpipe_table_get() local 301 &devlink->dpipe_table_list, in devlink_nl_cmd_dpipe_table_get() 453 const char *table_name, struct devlink *devlink) in devlink_dpipe_table_find() argument 458 lockdep_is_held(&devlink->lock)) { in devlink_dpipe_table_find() 467 struct devlink *devlink; in devlink_dpipe_entry_ctx_prepare() local 483 devlink = dump_ctx->info->user_ptr[0]; in devlink_dpipe_entry_ctx_prepare() 484 if (devlink_nl_put_handle(dump_ctx->skb, devlink)) in devlink_dpipe_entry_ctx_prepare() 568 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_cmd_dpipe_entries_get() local [all …]
|
/openbmc/linux/include/net/ |
H A D | devlink.h | 24 struct devlink; 104 struct devlink *devlink; member 125 struct devlink *devlink; member 482 int (*get)(struct devlink *devlink, u32 id, 484 int (*set)(struct devlink *devlink, u32 id, 486 int (*validate)(struct devlink *devlink, u32 id, 672 int (*snapshot)(struct devlink *devlink, 676 int (*read)(struct devlink *devlink, 1274 int (*reload_down)(struct devlink *devlink, bool netns_change, 1278 int (*reload_up)(struct devlink *devlink, enum devlink_reload_action action, [all …]
|
/openbmc/linux/drivers/net/ethernet/mellanox/mlx5/core/ |
H A D | devlink.c | 14 static int mlx5_devlink_flash_update(struct devlink *devlink, in mlx5_devlink_flash_update() argument 18 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_flash_update() 41 mlx5_devlink_info_get(struct devlink *devlink, struct devlink_info_req *req, in mlx5_devlink_info_get() argument 44 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_info_get() 84 static int mlx5_devlink_reload_fw_activate(struct devlink *devlink, struct netlink_ext_ack *extack) in mlx5_devlink_reload_fw_activate() argument 86 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_reload_fw_activate() 115 static int mlx5_devlink_trigger_fw_live_patch(struct devlink *devlink, in mlx5_devlink_trigger_fw_live_patch() argument 118 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_trigger_fw_live_patch() 134 static int mlx5_devlink_reload_down(struct devlink *devlink, bool netns_change, in mlx5_devlink_reload_down() argument 139 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_reload_down() [all …]
|
/openbmc/linux/include/trace/events/ |
H A D | devlink.h | 5 #define TRACE_SYSTEM devlink 18 TP_PROTO(const struct devlink *devlink, bool incoming, 21 TP_ARGS(devlink, incoming, type, buf, len), 24 __string(bus_name, devlink_to_dev(devlink)->bus->name) 25 __string(dev_name, dev_name(devlink_to_dev(devlink))) 26 __string(driver_name, devlink_to_dev(devlink)->driver->name) 34 __assign_str(bus_name, devlink_to_dev(devlink)->bus->name); 35 __assign_str(dev_name, dev_name(devlink_to_dev(devlink))); 36 __assign_str(driver_name, devlink_to_dev(devlink)->driver->name); 53 TP_PROTO(const struct devlink *devlink, int err, const char *msg), [all …]
|
/openbmc/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/ |
H A D | hclge_devlink.c | 8 static int hclge_devlink_info_get(struct devlink *devlink, in hclge_devlink_info_get() argument 13 struct hclge_devlink_priv *priv = devlink_priv(devlink); in hclge_devlink_info_get() 32 static int hclge_devlink_reload_down(struct devlink *devlink, bool netns_change, in hclge_devlink_reload_down() argument 37 struct hclge_devlink_priv *priv = devlink_priv(devlink); in hclge_devlink_reload_down() 66 static int hclge_devlink_reload_up(struct devlink *devlink, in hclge_devlink_reload_up() argument 72 struct hclge_devlink_priv *priv = devlink_priv(devlink); in hclge_devlink_reload_up() 106 struct devlink *devlink; in hclge_devlink_init() local 108 devlink = devlink_alloc(&hclge_devlink_ops, in hclge_devlink_init() 110 if (!devlink) in hclge_devlink_init() 113 priv = devlink_priv(devlink); in hclge_devlink_init() [all …]
|
/openbmc/linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/ |
H A D | hclgevf_devlink.c | 8 static int hclgevf_devlink_info_get(struct devlink *devlink, in hclgevf_devlink_info_get() argument 13 struct hclgevf_devlink_priv *priv = devlink_priv(devlink); in hclgevf_devlink_info_get() 32 static int hclgevf_devlink_reload_down(struct devlink *devlink, in hclgevf_devlink_reload_down() argument 38 struct hclgevf_devlink_priv *priv = devlink_priv(devlink); in hclgevf_devlink_reload_down() 67 static int hclgevf_devlink_reload_up(struct devlink *devlink, in hclgevf_devlink_reload_up() argument 73 struct hclgevf_devlink_priv *priv = devlink_priv(devlink); in hclgevf_devlink_reload_up() 107 struct devlink *devlink; in hclgevf_devlink_init() local 109 devlink = in hclgevf_devlink_init() 112 if (!devlink) in hclgevf_devlink_init() 115 priv = devlink_priv(devlink); in hclgevf_devlink_init() [all …]
|
/openbmc/linux/drivers/net/netdevsim/ |
H A D | dev.c | 78 nsim_dev_take_snapshot(struct devlink *devlink, in nsim_dev_take_snapshot() argument 101 struct devlink *devlink; in nsim_dev_take_snapshot_write() local 106 devlink = priv_to_devlink(nsim_dev); in nsim_dev_take_snapshot_write() 108 err = nsim_dev_take_snapshot(devlink, NULL, NULL, &dummy_data); in nsim_dev_take_snapshot_write() 112 err = devlink_region_snapshot_id_get(devlink, &id); in nsim_dev_take_snapshot_write() 120 devlink_region_snapshot_id_put(devlink, id); in nsim_dev_take_snapshot_write() 429 static int nsim_dev_resources_register(struct devlink *devlink) in nsim_dev_resources_register() argument 439 err = devl_resource_register(devlink, "IPv4", (u64)-1, in nsim_dev_resources_register() 448 err = devl_resource_register(devlink, "fib", (u64)-1, in nsim_dev_resources_register() 456 err = devl_resource_register(devlink, "fib-rules", (u64)-1, in nsim_dev_resources_register() [all …]
|
/openbmc/linux/tools/testing/selftests/net/forwarding/ |
H A D | devlink_lib.sh | 11 DEVLINK_DEV=$(devlink port show "${NETIFS[p1]:-$NETIF_NO_CABLE}" -j \ 25 devlink dev show $DEVLINK_DEV &> /dev/null 35 devlink help 2>&1 | grep resource &> /dev/null 41 devlink help 2>&1 | grep trap &> /dev/null 47 devlink dev help 2>&1 | grep info &> /dev/null 85 devlink -j resource show "$DEVLINK_DEV" | jq "$resource_name" 106 devlink resource set "$DEVLINK_DEV" path "$path" size "$new_size" 119 devlink dev reload "$DEVLINK_DEV" &> /dev/null 122 still_pending=$(devlink resource show "$DEVLINK_DEV" | \ 142 devlink sb port pool show $port pool $pool -j \ [all …]
|
/openbmc/linux/Documentation/networking/devlink/ |
H A D | index.rst | 4 devlink is an API to expose device information and resources not directly 13 in devlink core, but don't allow registration of most sub-objects once 14 the main devlink object is itself registered. The newer ``devl_*`` APIs assume 15 the devlink instance lock is already held. Drivers can take the instance 16 lock by calling ``devl_lock()``. It is also held all callbacks of devlink 19 Drivers are encouraged to use the devlink instance lock for their own needs. 24 The following pages describe various interfaces available through devlink in 30 devlink-dpipe 31 devlink-health 32 devlink-info [all …]
|
/openbmc/linux/tools/testing/selftests/drivers/net/netdevsim/ |
H A D | devlink.sh | 29 busywait "$timeout" wait_for_devlink devlink dev 36 devlink dev flash $DL_HANDLE file dummy 39 devlink dev flash $DL_HANDLE file dummy component fw.mgmt 42 devlink dev flash $DL_HANDLE file dummy overwrite settings 48 devlink dev flash $DL_HANDLE file dummy overwrite settings 51 devlink dev flash $DL_HANDLE file dummy overwrite identifiers 57 devlink dev flash $DL_HANDLE file dummy overwrite identifiers overwrite settings 63 devlink dev flash $DL_HANDLE file dummy 82 devlink dev param set $DL_HANDLE name $name cmode driverinit value $value 121 devlink dev reload $DL_HANDLE [all …]
|
/openbmc/linux/drivers/net/ethernet/qlogic/qed/ |
H A D | qed_devlink.c | 22 int qed_report_fatal_error(struct devlink *devlink, enum qed_hw_err_type err_type) in qed_report_fatal_error() argument 24 struct qed_devlink *qdl = devlink_priv(devlink); in qed_report_fatal_error() 98 void qed_fw_reporters_create(struct devlink *devlink) in qed_fw_reporters_create() argument 100 struct qed_devlink *dl = devlink_priv(devlink); in qed_fw_reporters_create() 102 dl->fw_reporter = devlink_health_reporter_create(devlink, &qed_fw_fatal_reporter_ops, in qed_fw_reporters_create() 111 void qed_fw_reporters_destroy(struct devlink *devlink) in qed_fw_reporters_destroy() argument 113 struct qed_devlink *dl = devlink_priv(devlink); in qed_fw_reporters_destroy() 122 static int qed_dl_param_get(struct devlink *dl, u32 id, in qed_dl_param_get() 134 static int qed_dl_param_set(struct devlink *dl, u32 id, in qed_dl_param_set() 153 static int qed_devlink_info_get(struct devlink *devlink, in qed_devlink_info_get() argument [all …]
|
/openbmc/linux/drivers/net/wwan/iosm/ |
H A D | iosm_ipc_coredump.c | 18 int ipc_coredump_collect(struct iosm_devlink *devlink, u8 **data, int entry, in ipc_coredump_collect() argument 29 remaining = devlink->cd_file_info[entry].actual_size; in ipc_coredump_collect() 30 ret = ipc_devlink_send_cmd(devlink, rpsi_cmd_coredump_get, entry); in ipc_coredump_collect() 32 dev_err(devlink->dev, "Send coredump_get cmd failed"); in ipc_coredump_collect() 38 ret = ipc_imem_sys_devlink_read(devlink, data_ptr + i, in ipc_coredump_collect() 41 dev_err(devlink->dev, "CD data read failed"); in ipc_coredump_collect() 64 int ipc_coredump_get_list(struct iosm_devlink *devlink, u16 cmd) in ipc_coredump_get_list() argument 78 ret = ipc_devlink_send_cmd(devlink, cmd, MAX_CD_LIST_SIZE); in ipc_coredump_get_list() 80 dev_err(devlink->dev, "rpsi_cmd_coredump_start failed"); in ipc_coredump_get_list() 84 ret = ipc_imem_sys_devlink_read(devlink, (u8 *)cd_table, in ipc_coredump_get_list() [all …]
|
/openbmc/linux/drivers/net/ethernet/fungible/funeth/ |
H A D | funeth_devlink.c | 9 struct devlink *fun_devlink_alloc(struct device *dev) in fun_devlink_alloc() 14 void fun_devlink_free(struct devlink *devlink) in fun_devlink_free() argument 16 devlink_free(devlink); in fun_devlink_free() 19 void fun_devlink_register(struct devlink *devlink) in fun_devlink_register() argument 21 devlink_register(devlink); in fun_devlink_register() 24 void fun_devlink_unregister(struct devlink *devlink) in fun_devlink_unregister() argument 26 devlink_unregister(devlink); in fun_devlink_unregister()
|