Lines Matching defs:devlink
22 devlink_rate_leaf_get_from_info(struct devlink *devlink, struct genl_info *info)
27 devlink_port = devlink_port_get_from_attrs(devlink, info->attrs);
35 devlink_rate_node_get_by_name(struct devlink *devlink, const char *node_name)
39 list_for_each_entry(devlink_rate, &devlink->rate_list, list) {
48 devlink_rate_node_get_from_attrs(struct devlink *devlink, struct nlattr **attrs)
61 return devlink_rate_node_get_by_name(devlink, rate_node_name);
65 devlink_rate_node_get_from_info(struct devlink *devlink, struct genl_info *info)
67 return devlink_rate_node_get_from_attrs(devlink, info->attrs);
71 devlink_rate_get_from_info(struct devlink *devlink, struct genl_info *info)
76 return devlink_rate_leaf_get_from_info(devlink, info);
78 return devlink_rate_node_get_from_info(devlink, info);
88 struct devlink *devlink = devlink_rate->devlink;
95 if (devlink_nl_put_handle(msg, devlink))
143 struct devlink *devlink = devlink_rate->devlink;
149 if (!xa_get_mark(&devlinks, devlink->index, DEVLINK_REGISTERED))
162 genlmsg_multicast_netns(&devlink_nl_family, devlink_net(devlink), msg,
166 void devlink_rates_notify_register(struct devlink *devlink)
170 list_for_each_entry(rate_node, &devlink->rate_list, list)
174 void devlink_rates_notify_unregister(struct devlink *devlink)
178 list_for_each_entry_reverse(rate_node, &devlink->rate_list, list)
183 devlink_nl_rate_get_dump_one(struct sk_buff *msg, struct devlink *devlink,
191 list_for_each_entry(devlink_rate, &devlink->rate_list, list) {
218 struct devlink *devlink = info->user_ptr[0];
223 devlink_rate = devlink_rate_get_from_info(devlink, info);
259 struct devlink *devlink = devlink_rate->devlink;
261 const struct devlink_ops *ops = devlink->ops;
283 parent = devlink_rate_node_get_by_name(devlink, parent_name);
463 struct devlink *devlink = info->user_ptr[0];
468 devlink_rate = devlink_rate_get_from_info(devlink, info);
472 ops = devlink->ops;
485 struct devlink *devlink = info->user_ptr[0];
490 ops = devlink->ops;
499 rate_node = devlink_rate_node_get_from_attrs(devlink, info->attrs);
509 rate_node->devlink = devlink;
526 list_add(&rate_node->list, &devlink->rate_list);
541 struct devlink *devlink = info->user_ptr[0];
545 rate_node = devlink_rate_node_get_from_info(devlink, info);
555 err = devlink->ops->rate_node_del(rate_node, rate_node->priv,
565 int devlink_rate_nodes_check(struct devlink *devlink, u16 mode,
570 list_for_each_entry(devlink_rate, &devlink->rate_list, list)
579 * devl_rate_node_create - create devlink rate node
580 * @devlink: devlink instance
585 * Create devlink rate object of type node
588 devl_rate_node_create(struct devlink *devlink, void *priv, char *node_name,
593 rate_node = devlink_rate_node_get_by_name(devlink, node_name);
607 rate_node->devlink = devlink;
617 list_add(&rate_node->list, &devlink->rate_list);
624 * devl_rate_leaf_create - create devlink rate leaf
625 * @devlink_port: devlink port object to create rate object on
629 * Create devlink rate object of type leaf on provided @devlink_port.
634 struct devlink *devlink = devlink_port->devlink;
637 devl_assert_locked(devlink_port->devlink);
652 devlink_rate->devlink = devlink;
655 list_add_tail(&devlink_rate->list, &devlink->rate_list);
664 * devl_rate_leaf_destroy - destroy devlink rate leaf
666 * @devlink_port: devlink port linked to the rate object
668 * Destroy the devlink rate object of type leaf on provided @devlink_port.
674 devl_assert_locked(devlink_port->devlink);
688 * devl_rate_nodes_destroy - destroy all devlink rate nodes on device
689 * @devlink: devlink instance
694 void devl_rate_nodes_destroy(struct devlink *devlink)
697 const struct devlink_ops *ops = devlink->ops;
699 devl_assert_locked(devlink);
701 list_for_each_entry(devlink_rate, &devlink->rate_list, list) {
713 list_for_each_entry_safe(devlink_rate, tmp, &devlink->rate_list, list) {