Lines Matching refs:node

749 static void ice_traverse_tx_tree(struct devlink *devlink, struct ice_sched_node *node,  in ice_traverse_tx_tree()  argument
757 if (node->rate_node) in ice_traverse_tx_tree()
761 if (node->parent == tc_node) { in ice_traverse_tx_tree()
763 rate_node = devl_rate_node_create(devlink, node, node->name, NULL); in ice_traverse_tx_tree()
764 } else if (node->vsi_handle && in ice_traverse_tx_tree()
765 pf->vsi[node->vsi_handle]->type == ICE_VSI_VF && in ice_traverse_tx_tree()
766 pf->vsi[node->vsi_handle]->vf) { in ice_traverse_tx_tree()
767 vf = pf->vsi[node->vsi_handle]->vf; in ice_traverse_tx_tree()
772 devl_rate_leaf_create(&vf->devlink_port, node, in ice_traverse_tx_tree()
773 node->parent->rate_node); in ice_traverse_tx_tree()
774 } else if (node->vsi_handle && in ice_traverse_tx_tree()
775 pf->vsi[node->vsi_handle]->type == ICE_VSI_SF && in ice_traverse_tx_tree()
776 pf->vsi[node->vsi_handle]->sf) { in ice_traverse_tx_tree()
777 sf = pf->vsi[node->vsi_handle]->sf; in ice_traverse_tx_tree()
782 devl_rate_leaf_create(&sf->devlink_port, node, in ice_traverse_tx_tree()
783 node->parent->rate_node); in ice_traverse_tx_tree()
784 } else if (node->info.data.elem_type != ICE_AQC_ELEM_TYPE_LEAF && in ice_traverse_tx_tree()
785 node->parent->rate_node) { in ice_traverse_tx_tree()
786 rate_node = devl_rate_node_create(devlink, node, node->name, in ice_traverse_tx_tree()
787 node->parent->rate_node); in ice_traverse_tx_tree()
791 node->rate_node = rate_node; in ice_traverse_tx_tree()
794 for (i = 0; i < node->num_children; i++) in ice_traverse_tx_tree()
795 ice_traverse_tx_tree(devlink, node->children[i], tc_node, pf); in ice_traverse_tx_tree()
822 static void ice_clear_rate_nodes(struct ice_sched_node *node) in ice_clear_rate_nodes() argument
824 node->rate_node = NULL; in ice_clear_rate_nodes()
826 for (int i = 0; i < node->num_children; i++) in ice_clear_rate_nodes()
827 ice_clear_rate_nodes(node->children[i]); in ice_clear_rate_nodes()
855 static int ice_set_object_tx_share(struct ice_port_info *pi, struct ice_sched_node *node, in ice_set_object_tx_share() argument
862 node->tx_share = div_u64(bw, 125); in ice_set_object_tx_share()
863 status = ice_sched_set_node_bw_lmt(pi, node, ICE_MIN_BW, node->tx_share); in ice_set_object_tx_share()
881 static int ice_set_object_tx_max(struct ice_port_info *pi, struct ice_sched_node *node, in ice_set_object_tx_max() argument
888 node->tx_max = div_u64(bw, 125); in ice_set_object_tx_max()
889 status = ice_sched_set_node_bw_lmt(pi, node, ICE_MAX_BW, node->tx_max); in ice_set_object_tx_max()
907 static int ice_set_object_tx_priority(struct ice_port_info *pi, struct ice_sched_node *node, in ice_set_object_tx_priority() argument
918 node->tx_priority = priority; in ice_set_object_tx_priority()
919 status = ice_sched_set_node_priority(pi, node, node->tx_priority); in ice_set_object_tx_priority()
937 static int ice_set_object_tx_weight(struct ice_port_info *pi, struct ice_sched_node *node, in ice_set_object_tx_weight() argument
948 node->tx_weight = weight; in ice_set_object_tx_weight()
949 status = ice_sched_set_node_weight(pi, node, node->tx_weight); in ice_set_object_tx_weight()
974 struct ice_sched_node *node; in ice_devlink_rate_node_new() local
983 node = devm_kzalloc(ice_hw_to_dev(pi->hw), sizeof(*node), GFP_KERNEL); in ice_devlink_rate_node_new()
984 if (!node) in ice_devlink_rate_node_new()
987 *priv = node; in ice_devlink_rate_node_new()
995 struct ice_sched_node *node, *tc_node; in ice_devlink_rate_node_del() local
1000 node = priv; in ice_devlink_rate_node_del()
1002 if (!rate_node->parent || !node || tc_node == node || !extack) in ice_devlink_rate_node_del()
1009 if (node->num_children) in ice_devlink_rate_node_del()
1013 ice_free_sched_node(pi, node); in ice_devlink_rate_node_del()
1022 struct ice_sched_node *node = priv; in ice_devlink_rate_leaf_tx_max_set() local
1027 if (!node) in ice_devlink_rate_leaf_tx_max_set()
1031 node, tx_max, extack); in ice_devlink_rate_leaf_tx_max_set()
1037 struct ice_sched_node *node = priv; in ice_devlink_rate_leaf_tx_share_set() local
1042 if (!node) in ice_devlink_rate_leaf_tx_share_set()
1045 return ice_set_object_tx_share(ice_get_pi_from_dev_rate(rate_leaf), node, in ice_devlink_rate_leaf_tx_share_set()
1052 struct ice_sched_node *node = priv; in ice_devlink_rate_leaf_tx_priority_set() local
1057 if (!node) in ice_devlink_rate_leaf_tx_priority_set()
1060 return ice_set_object_tx_priority(ice_get_pi_from_dev_rate(rate_leaf), node, in ice_devlink_rate_leaf_tx_priority_set()
1067 struct ice_sched_node *node = priv; in ice_devlink_rate_leaf_tx_weight_set() local
1072 if (!node) in ice_devlink_rate_leaf_tx_weight_set()
1075 return ice_set_object_tx_weight(ice_get_pi_from_dev_rate(rate_leaf), node, in ice_devlink_rate_leaf_tx_weight_set()
1082 struct ice_sched_node *node = priv; in ice_devlink_rate_node_tx_max_set() local
1087 if (!node) in ice_devlink_rate_node_tx_max_set()
1091 node, tx_max, extack); in ice_devlink_rate_node_tx_max_set()
1097 struct ice_sched_node *node = priv; in ice_devlink_rate_node_tx_share_set() local
1102 if (!node) in ice_devlink_rate_node_tx_share_set()
1106 node, tx_share, extack); in ice_devlink_rate_node_tx_share_set()
1112 struct ice_sched_node *node = priv; in ice_devlink_rate_node_tx_priority_set() local
1117 if (!node) in ice_devlink_rate_node_tx_priority_set()
1121 node, tx_priority, extack); in ice_devlink_rate_node_tx_priority_set()
1127 struct ice_sched_node *node = priv; in ice_devlink_rate_node_tx_weight_set() local
1132 if (!node) in ice_devlink_rate_node_tx_weight_set()
1136 node, tx_weight, extack); in ice_devlink_rate_node_tx_weight_set()
1145 struct ice_sched_node *tc_node, *node, *parent_node; in ice_devlink_set_parent() local
1152 node = priv; in ice_devlink_set_parent()
1161 if (!node || tc_node == node || node->num_children) in ice_devlink_set_parent()
1165 ice_free_sched_node(pi, node); in ice_devlink_set_parent()
1174 if (!node->parent) { in ice_devlink_set_parent()
1179 &node); in ice_devlink_set_parent()
1188 ice_set_object_tx_share(pi, node, devlink_rate->tx_share, extack); in ice_devlink_set_parent()
1190 ice_set_object_tx_max(pi, node, devlink_rate->tx_max, extack); in ice_devlink_set_parent()
1192 ice_set_object_tx_priority(pi, node, devlink_rate->tx_priority, extack); in ice_devlink_set_parent()
1194 ice_set_object_tx_weight(pi, node, devlink_rate->tx_weight, extack); in ice_devlink_set_parent()
1196 node_teid = le32_to_cpu(node->info.node_teid); in ice_devlink_set_parent()