Lines Matching refs:info

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()
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
73 struct nlattr **attrs = info->attrs; in devlink_rate_get_from_info()
76 return devlink_rate_leaf_get_from_info(devlink, info); in devlink_rate_get_from_info()
78 return devlink_rate_node_get_from_info(devlink, info); in devlink_rate_get_from_info()
241 int devlink_nl_rate_get_doit(struct sk_buff *skb, struct genl_info *info) in devlink_nl_rate_get_doit() argument
243 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_rate_get_doit()
248 devlink_rate = devlink_rate_get_from_info(devlink, info); in devlink_nl_rate_get_doit()
257 info->snd_portid, info->snd_seq, 0, in devlink_nl_rate_get_doit()
258 info->extack); in devlink_nl_rate_get_doit()
264 return genlmsg_reply(msg, info); in devlink_nl_rate_get_doit()
281 struct genl_info *info, in devlink_nl_rate_parent_node_set() argument
297 info->extack); in devlink_nl_rate_parent_node_set()
301 info->extack); in devlink_nl_rate_parent_node_set()
313 NL_SET_ERR_MSG(info->extack, "Parent to self is not allowed"); in devlink_nl_rate_parent_node_set()
319 NL_SET_ERR_MSG(info->extack, "Node is already a parent of parent node."); in devlink_nl_rate_parent_node_set()
326 info->extack); in devlink_nl_rate_parent_node_set()
330 info->extack); in devlink_nl_rate_parent_node_set()
385 struct genl_info *info) in devlink_nl_rate_tc_bw_set() argument
394 nlmsg_for_each_attr_type(attr, DEVLINK_ATTR_RATE_TC_BWS, info->nlhdr, in devlink_nl_rate_tc_bw_set()
397 info->extack); in devlink_nl_rate_tc_bw_set()
404 NL_SET_ERR_MSG_FMT(info->extack, in devlink_nl_rate_tc_bw_set()
413 tc_bw, info->extack); in devlink_nl_rate_tc_bw_set()
416 tc_bw, info->extack); in devlink_nl_rate_tc_bw_set()
428 struct genl_info *info) in devlink_nl_rate_set() argument
430 struct nlattr *nla_parent, **attrs = info->attrs; in devlink_nl_rate_set()
440 rate, info->extack); in devlink_nl_rate_set()
443 rate, info->extack); in devlink_nl_rate_set()
453 rate, info->extack); in devlink_nl_rate_set()
456 rate, info->extack); in devlink_nl_rate_set()
466 priority, info->extack); in devlink_nl_rate_set()
469 priority, info->extack); in devlink_nl_rate_set()
480 weight, info->extack); in devlink_nl_rate_set()
483 weight, info->extack); in devlink_nl_rate_set()
492 err = devlink_nl_rate_parent_node_set(devlink_rate, info, in devlink_nl_rate_set()
499 err = devlink_nl_rate_tc_bw_set(devlink_rate, info); in devlink_nl_rate_set()
508 struct genl_info *info, in devlink_rate_set_ops_supported() argument
511 struct nlattr **attrs = info->attrs; in devlink_rate_set_ops_supported()
515 NL_SET_ERR_MSG(info->extack, "TX share set isn't supported for the leafs"); in devlink_rate_set_ops_supported()
519 NL_SET_ERR_MSG(info->extack, "TX max set isn't supported for the leafs"); in devlink_rate_set_ops_supported()
524 NL_SET_ERR_MSG(info->extack, "Parent set isn't supported for the leafs"); in devlink_rate_set_ops_supported()
528 NL_SET_ERR_MSG_ATTR(info->extack, in devlink_rate_set_ops_supported()
534 NL_SET_ERR_MSG_ATTR(info->extack, in devlink_rate_set_ops_supported()
541 NL_SET_ERR_MSG_ATTR(info->extack, in devlink_rate_set_ops_supported()
548 NL_SET_ERR_MSG(info->extack, "TX share set isn't supported for the nodes"); in devlink_rate_set_ops_supported()
552 NL_SET_ERR_MSG(info->extack, "TX max set isn't supported for the nodes"); in devlink_rate_set_ops_supported()
557 NL_SET_ERR_MSG(info->extack, "Parent set isn't supported for the nodes"); in devlink_rate_set_ops_supported()
561 NL_SET_ERR_MSG_ATTR(info->extack, in devlink_rate_set_ops_supported()
567 NL_SET_ERR_MSG_ATTR(info->extack, in devlink_rate_set_ops_supported()
574 NL_SET_ERR_MSG_ATTR(info->extack, in devlink_rate_set_ops_supported()
587 int devlink_nl_rate_set_doit(struct sk_buff *skb, struct genl_info *info) in devlink_nl_rate_set_doit() argument
589 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_rate_set_doit()
594 devlink_rate = devlink_rate_get_from_info(devlink, info); in devlink_nl_rate_set_doit()
599 if (!ops || !devlink_rate_set_ops_supported(ops, info, devlink_rate->type)) in devlink_nl_rate_set_doit()
602 err = devlink_nl_rate_set(devlink_rate, ops, info); in devlink_nl_rate_set_doit()
609 int devlink_nl_rate_new_doit(struct sk_buff *skb, struct genl_info *info) in devlink_nl_rate_new_doit() argument
611 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_rate_new_doit()
618 NL_SET_ERR_MSG(info->extack, "Rate nodes aren't supported"); in devlink_nl_rate_new_doit()
622 if (!devlink_rate_set_ops_supported(ops, info, DEVLINK_RATE_TYPE_NODE)) in devlink_nl_rate_new_doit()
625 rate_node = devlink_rate_node_get_from_attrs(devlink, info->attrs); in devlink_nl_rate_new_doit()
637 rate_node->name = nla_strdup(info->attrs[DEVLINK_ATTR_RATE_NODE_NAME], GFP_KERNEL); in devlink_nl_rate_new_doit()
643 err = ops->rate_node_new(rate_node, &rate_node->priv, info->extack); in devlink_nl_rate_new_doit()
647 err = devlink_nl_rate_set(rate_node, ops, info); in devlink_nl_rate_new_doit()
657 ops->rate_node_del(rate_node, rate_node->priv, info->extack); in devlink_nl_rate_new_doit()
665 int devlink_nl_rate_del_doit(struct sk_buff *skb, struct genl_info *info) in devlink_nl_rate_del_doit() argument
667 struct devlink *devlink = info->user_ptr[0]; in devlink_nl_rate_del_doit()
671 rate_node = devlink_rate_node_get_from_info(devlink, info); in devlink_nl_rate_del_doit()
676 NL_SET_ERR_MSG(info->extack, "Node has children. Cannot delete node."); in devlink_nl_rate_del_doit()
682 info->extack); in devlink_nl_rate_del_doit()