Home
last modified time | relevance | path

Searched full:devlink (Results 1 – 25 of 281) sorted by relevance

12345678910>>...12

/linux/net/devlink/
H A Dcore.c9 #include <trace/events/devlink.h>
19 static struct devlink *devlinks_xa_get(unsigned long index) in devlinks_xa_get()
21 struct devlink *devlink; in devlinks_xa_get() local
24 devlink = xa_find(&devlinks, &index, index, DEVLINK_REGISTERED); in devlinks_xa_get()
25 if (!devlink || !devlink_try_get(devlink)) in devlinks_xa_get()
26 devlink = NULL; in devlinks_xa_get()
28 return devlink; in devlinks_xa_get()
32 * devlink object and related nested devlink instance.
70 struct devlink *__must_check devlink_nested_in_get_lock(struct devlink *devlink) in devlink_nested_in_get_lock() argument
72 devl_assert_locked(devlink); in devlink_nested_in_get_lock()
[all …]
H A Ddevl_internal.h14 #include <net/devlink.h>
33 struct devlink { struct
55 /* Serializes access to devlink instance specific objects such as argument
71 struct devlink *__devlink_alloc(const struct devlink_ops *ops, size_t priv_size, argument
75 #define devl_warn(devlink, format, args...) \ argument
77 if ((devlink)->dev) \
78 dev_warn((devlink)->dev, format, ##args); \
80 pr_warn("devlink (%s): " format, \
81 devlink_dev_name(devlink), ##args); \
84 /* devlink instances are open to the access from the user space after
[all …]
H A Dtrap.c7 #include <trace/events/devlink.h>
24 * Describes packet trap policer attributes. Created by devlink during trap
41 * Describes packet trap group attributes. Created by devlink during trap
61 * devlink during trap registration and used for all trap related operations.
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()
[all …]
H A Ddev.c47 devlink_reload_action_is_supported(struct devlink *devlink, enum devlink_reload_action action) in devlink_reload_action_is_supported() argument
49 return test_bit(action, &devlink->ops->reload_actions); in devlink_reload_action_is_supported()
53 devlink_reload_limit_is_supported(struct devlink *devlink, enum devlink_reload_limit limit) in devlink_reload_limit_is_supported() argument
55 return test_bit(limit, &devlink->ops->reload_limits); in devlink_reload_limit_is_supported()
79 devlink_reload_stats_put(struct sk_buff *msg, struct devlink *devlink, bool is_remote) in devlink_reload_stats_put() argument
95 !devlink_reload_action_is_supported(devlink, i)) || in devlink_reload_stats_put()
115 !devlink_reload_limit_is_supported(devlink, j)) || in devlink_reload_stats_put()
121 value = devlink->stats.reload_stats[stat_idx]; in devlink_reload_stats_put()
123 value = devlink->stats.remote_reload_stats[stat_idx]; in devlink_reload_stats_put()
142 static int devlink_nl_nested_fill(struct sk_buff *msg, struct devlink *devlink) in devlink_nl_nested_fill() argument
[all …]
H A Drate.c21 devlink_rate_leaf_get_from_info(struct devlink *devlink, struct genl_info *info) in devlink_rate_leaf_get_from_info() argument
26 devlink_port = devlink_port_get_from_attrs(devlink, info->attrs); in devlink_rate_leaf_get_from_info()
33 /* Repeatedly walks the nested devlink chain while cross device rate nodes are
36 * When cross device rate nodes aren't supported the original devlink instance
39 static struct devlink *devl_rate_lock(struct devlink *devlink) in devl_rate_lock() argument
41 struct devlink *rate_devlink = devlink, *parent; in devl_rate_lock()
43 devl_assert_locked(devlink); in devl_rate_lock()
50 if (rate_devlink != devlink) { in devl_rate_lock()
60 /* Unlocks and puts 'rate devlink' if different than 'devlink'. */
61 static void devl_rate_unlock(struct devlink *devlink, in devl_rate_unlock() argument
[all …]
H A Dsb.c24 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 Dregion.c10 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()
157 err = devlink_nl_region_snapshots_id_put(msg, devlink, region); in devlink_nl_region_fill()
174 struct devlink *devlink = region->devlink; in devlink_nl_region_notify_build() local
[all …]
H A Dresource.c10 * struct devlink_resource - devlink resource
12 * @id: id, per devlink instance
66 devlink_resource_find(struct devlink *devlink, in devlink_resource_find() argument
69 return __devlink_resource_find(&devlink->resource_list, in devlink_resource_find()
120 struct devlink *devlink = devlink_nl_ctx(info)->devlink; in devlink_nl_resource_set_doit() local
131 resource = devlink_resource_find(devlink, NULL, resource_id); in devlink_nl_resource_set_doit()
174 static int devlink_resource_put(struct devlink *devlink, struct sk_buff *skb, in devlink_resource_put() argument
210 if (devlink_resource_put(devlink, skb, child_resource)) in devlink_resource_put()
227 struct devlink *devlink, in devlink_resource_list_fill() argument
240 err = devlink_resource_put(devlink, skb, resource); in devlink_resource_list_fill()
[all …]
H A Dparam.c180 static int devlink_param_get(struct devlink *devlink, in devlink_param_get() argument
187 return param->get(devlink, param->id, ctx, extack); in devlink_param_get()
190 static int devlink_param_set(struct devlink *devlink, in devlink_param_set() argument
197 return param->set(devlink, param->id, ctx, extack); in devlink_param_set()
200 static int devlink_param_get_default(struct devlink *devlink, in devlink_param_get_default() argument
208 return param->get_default(devlink, param->id, ctx, extack); in devlink_param_get_default()
211 static int devlink_param_reset_default(struct devlink *devlink, in devlink_param_reset_default() argument
219 return param->reset_default(devlink, param->id, cmode, extack); in devlink_param_reset_default()
314 static int devlink_nl_param_fill(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_param_fill() argument
372 err = devlink_param_get(devlink, param, ctx, extack); in devlink_nl_param_fill()
[all …]
H A Dnetlink.c144 struct devlink *devlink, int attrtype) in devlink_nl_put_nested_handle() argument
152 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_put_nested_handle()
156 devl_net = read_pnet_rcu(&devlink->_net); in devlink_nl_put_nested_handle()
190 struct devlink *
194 struct devlink *devlink; in devlink_get_from_attrs_lock() local
204 devlink = devlinks_xa_lookup_get(net, index); in devlink_get_from_attrs_lock()
205 if (!devlink) in devlink_get_from_attrs_lock()
219 devlink = devlinks_xa_lookup_get(net, index); in devlink_get_from_attrs_lock()
220 if (!devlink) in devlink_get_from_attrs_lock()
225 devlinks_xa_for_each_registered_get(net, index, devlink) { in devlink_get_from_attrs_lock()
[all …]
H A Dlinecard.c11 struct devlink *devlink; member
29 devlink_linecard_get_by_index(struct devlink *devlink, in devlink_linecard_get_by_index() argument
34 list_for_each_entry(devlink_linecard, &devlink->linecard_list, list) { in devlink_linecard_get_by_index()
41 static bool devlink_linecard_index_exists(struct devlink *devlink, in devlink_linecard_index_exists() argument
44 return devlink_linecard_get_by_index(devlink, linecard_index); in devlink_linecard_index_exists()
48 devlink_linecard_get_from_attrs(struct devlink *devlink, struct nlattr **attrs) in devlink_linecard_get_from_attrs() argument
54 linecard = devlink_linecard_get_by_index(devlink, linecard_index); in devlink_linecard_get_from_attrs()
63 devlink_linecard_get_from_info(struct devlink *devlink, struct genl_info *info) in devlink_linecard_get_from_info() argument
65 return devlink_linecard_get_from_attrs(devlink, info->attrs); in devlink_linecard_get_from_info()
74 struct devlink *devlink, in devlink_nl_linecard_fill() argument
[all …]
H A Dport.c27 struct devlink_port *devlink_port_get_by_index(struct devlink *devlink, in devlink_port_get_by_index() argument
30 return xa_load(&devlink->ports, port_index); in devlink_port_get_by_index()
33 struct devlink_port *devlink_port_get_from_attrs(struct devlink *devlink, in devlink_port_get_from_attrs() argument
40 devlink_port = devlink_port_get_by_index(devlink, port_index); in devlink_port_get_from_attrs()
48 struct devlink_port *devlink_port_get_from_info(struct devlink *devlink, in devlink_port_get_from_info() argument
51 return devlink_port_get_from_attrs(devlink, info->attrs); in devlink_port_get_from_info()
212 if (devlink_nl_put_handle(msg, devlink_port->devlink)) in devlink_nl_port_handle_fill()
221 struct devlink *devlink = devlink_port->devlink; in devlink_nl_port_handle_size() local
223 return nla_total_size(strlen(devlink_bus_name(devlink)) + 1) /* DEVLINK_ATTR_BUS_NAME */ in devlink_nl_port_handle_size()
224 + nla_total_size(strlen(devlink_dev_name(devlink)) + 1) /* DEVLINK_ATTR_DEV_NAME */ in devlink_nl_port_handle_size()
[all …]
H A Ddpipe.c216 struct devlink *devlink = devlink_nl_ctx(info)->devlink; in devlink_dpipe_tables_fill() local
240 if (devlink_nl_put_handle(skb, devlink)) in devlink_dpipe_tables_fill()
293 struct devlink *devlink = devlink_nl_ctx(info)->devlink; in devlink_nl_dpipe_table_get_doit() local
300 &devlink->dpipe_table_list, in devlink_nl_dpipe_table_get_doit()
451 const char *table_name, struct devlink *devlink) in devlink_dpipe_table_find() argument
456 lockdep_is_held(&devlink->lock)) { in devlink_dpipe_table_find()
465 struct devlink *devlink; in devlink_dpipe_entry_ctx_prepare() local
481 devlink = devlink_nl_ctx(dump_ctx->info)->devlink; in devlink_dpipe_entry_ctx_prepare()
482 if (devlink_nl_put_handle(dump_ctx->skb, devlink)) in devlink_dpipe_entry_ctx_prepare()
566 struct devlink *devlink = devlink_nl_ctx(info)->devlink; in devlink_nl_dpipe_entries_get_doit() local
[all …]
H A Dhealth.c9 #include <trace/events/devlink.h>
59 struct devlink *devlink; member
94 devlink_health_reporter_find_by_name(struct devlink *devlink, in devlink_health_reporter_find_by_name() argument
97 return __devlink_health_reporter_find_by_name(&devlink->reporter_list, in devlink_health_reporter_find_by_name()
110 __devlink_health_reporter_create(struct devlink *devlink, in __devlink_health_reporter_create() argument
128 reporter->devlink = devlink; in __devlink_health_reporter_create()
137 * devl_port_health_reporter_create() - create devlink health reporter for
141 * @ops: devlink health reporter ops
151 devl_assert_locked(port->devlink); in devl_port_health_reporter_create()
157 reporter = __devlink_health_reporter_create(port->devlink, ops, priv); in devl_port_health_reporter_create()
[all …]
/linux/drivers/net/ethernet/mellanox/mlx5/core/
H A Ddevlink.c4 #include <devlink.h>
15 static int mlx5_devlink_flash_update(struct devlink *devlink, in mlx5_devlink_flash_update() argument
19 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_flash_update()
91 mlx5_devlink_info_get(struct devlink *devlink, struct devlink_info_req *req, in mlx5_devlink_info_get() argument
94 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_info_get()
139 static int mlx5_devlink_reload_fw_activate(struct devlink *devlink, struct netlink_ext_ack *extack) in mlx5_devlink_reload_fw_activate() argument
141 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_reload_fw_activate()
170 static int mlx5_devlink_trigger_fw_live_patch(struct devlink *devlink, in mlx5_devlink_trigger_fw_live_patch() argument
173 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_trigger_fw_live_patch()
189 static int mlx5_devlink_reload_down(struct devlink *devlink, bool netns_change, in mlx5_devlink_reload_down() argument
[all …]
/linux/include/net/
H A Ddevlink.h3 * include/net/devlink.h - Network physical device Netlink interface
20 #include <uapi/linux/devlink.h>
24 struct devlink;
36 * struct devlink_port_pci_pf_attrs - devlink port's PCI PF attributes
38 * @pf: associated PCI function number for the devlink port instance
48 * struct devlink_port_pci_vf_attrs - devlink port's PCI VF attributes
50 * @pf: associated PCI function number for the devlink port instance
51 * @vf: associated PCI VF number of a PF for the devlink port instance;
63 * struct devlink_port_pci_sf_attrs - devlink port's PCI SF attributes
65 * @sf: associated SF number of a PF for the devlink port instance
[all …]
/linux/Documentation/networking/devlink/
H A Dindex.rst1 Linux Devlink Documentation
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
17 devlink netlink commands.
19 Drivers are encouraged to use the devlink instance lock for their own needs.
21 Drivers need to be cautious when taking devlink instance lock and
22 taking RTNL lock at the same time. Devlink instance lock needs to be taken
29 devlink instances created underneath. In that case, drivers should make
[all …]
H A Diosm.rst4 iosm devlink support
7 This document describes the devlink features implemented by the ``iosm``
35 ``devlink-flash`` interface.
62 has to be passed to the driver using the devlink param command.
65 need to set the erase_full_flash parameter using devlink param command.
71 image using devlink flash command.
73 $ devlink dev flash pci/0000:02:00.0 file <PSI_RAM_File_name>
78 $ devlink dev param set pci/0000:02:00.0 name erase_full_flash value true cmode runtime
82 $ devlink dev flash pci/0000:02:00.0 file <EBL_File_name>
89 $ devlink dev flash pci/0000:02:00.0 file <Secure_bin_file_name>
[all …]
H A Ddevlink-reload.rst4 Devlink Reload
7 ``devlink-reload`` provides mechanism to reinit driver entities, applying
8 ``devlink-params`` and ``devlink-resources`` new values. It also provides
23 - Devlink driver entities re-initialization, including applying
24 new values to devlink entities which are used during driver
27 * ``devlink-params`` in configuration mode ``driverinit``
28 * ``devlink-resources``
30 Other devlink entities may stay over the re-initialization:
32 * ``devlink-health-reporter``
33 * ``devlink-region``
[all …]
/linux/Documentation/netlink/specs/
H A Ddevlink.yaml3 name: devlink
7 doc: Partial family for Devlink.
248 name: devlink
249 name-prefix: devlink-attr-
885 doc: Unique devlink instance index.
903 Identifies the devlink instance which owns the parent rate node.
905 a different devlink instance, enabling cross-device rate scheduling.
910 subset-of: devlink
919 subset-of: devlink
926 subset-of: devlink
[all …]
/linux/drivers/net/ethernet/intel/ice/devlink/
H A Ddevlink.c8 #include "devlink.h"
15 /* context for devlink info version reporting */
25 * devlink info versions. The ctx parameter is used to provide the storage
261 * ice_devlink_info_get - .info_get devlink handler
262 * @devlink: devlink instance structure
263 * @req: the devlink info request
266 * Callback for the devlink .info_get operation. Reports information about the
271 static int ice_devlink_info_get(struct devlink *devlink, in ice_devlink_info_get() argument
275 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_info_get()
457 /* No need to take devl_lock, it's already taken by devlink API */ in ice_devlink_reinit_down()
[all …]
/linux/drivers/net/netdevsim/
H A Ddev.c30 #include <net/devlink.h>
33 #include <uapi/linux/devlink.h>
79 nsim_dev_take_snapshot(struct devlink *devlink, in nsim_dev_take_snapshot() argument
102 struct devlink *devlink; in nsim_dev_take_snapshot_write() local
107 devlink = priv_to_devlink(nsim_dev); in nsim_dev_take_snapshot_write()
109 err = nsim_dev_take_snapshot(devlink, NULL, NULL, &dummy_data); in nsim_dev_take_snapshot_write()
113 err = devlink_region_snapshot_id_get(devlink, &id); in nsim_dev_take_snapshot_write()
121 devlink_region_snapshot_id_put(devlink, id); in nsim_dev_take_snapshot_write()
372 static int nsim_dev_resources_register(struct devlink *devlink) in nsim_dev_resources_register() argument
382 err = devl_resource_register(devlink, "IPv4", (u64)-1, in nsim_dev_resources_register()
[all …]
/linux/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/
H A Dswitchdev.rst21 $ devlink dev eswitch set pci/0000:06:00.0 mode switchdev
48 Subfunction which are spawned over the E-switch are created only with devlink
57 $ devlink port add pci/0000:08:00.0 flavour pcisf pfnum 0 sfnum 11
58 $ devlink port function set pci/0000:08:00.0/32768 hw_addr 00:00:00:00:00:11 state active
62 $ devlink dev param set auxiliary/mlx5_core.sf.1 name enable_eth value true cmode driverinit
64 - Now, in order to fully probe the SF, use devlink reload::
66 $ devlink dev reload auxiliary/mlx5_core.sf.1
68 …ETH,rdma and vdpa (vnet) auxiliary devices devlink params (see :ref:`Documentation/networking/devl…
70 mlx5 supports subfunction management using devlink port (see :ref:`Documentation/networking/devlink
100 | devlink | | tc tool | | user |
[all …]
/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/
H A Dhclge_devlink.c4 #include <net/devlink.h>
8 static int hclge_devlink_scc_info_get(struct devlink *devlink, in hclge_devlink_scc_info_get() argument
11 struct hclge_devlink_priv *priv = devlink_priv(devlink); in hclge_devlink_scc_info_get()
36 static int hclge_devlink_info_get(struct devlink *devlink, in hclge_devlink_info_get() argument
41 struct hclge_devlink_priv *priv = devlink_priv(devlink); in hclge_devlink_info_get()
65 ret = hclge_devlink_scc_info_get(devlink, req); in hclge_devlink_info_get()
70 static int hclge_devlink_reload_down(struct devlink *devlink, bool netns_change, in hclge_devlink_reload_down() argument
75 struct hclge_devlink_priv *priv = devlink_priv(devlink); in hclge_devlink_reload_down()
104 static int hclge_devlink_reload_up(struct devlink *devlink, in hclge_devlink_reload_up() argument
110 struct hclge_devlink_priv *priv = devlink_priv(devlink); in hclge_devlink_reload_up()
[all …]
/linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/
H A Dhclgevf_devlink.c4 #include <net/devlink.h>
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()
[all …]

12345678910>>...12