mlx5_esw_sched_node
const struct mlx5_esw_sched_node *node,
const struct mlx5_esw_sched_node *node,
const struct mlx5_esw_sched_node *node,
const struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *vport_node = vport->qos.sched_node;
struct mlx5_esw_sched_node *vport_node = vport->qos.sched_node;
struct mlx5_esw_sched_node *vport_node = vport->qos.sched_node;
struct mlx5_esw_sched_node *parent,
struct mlx5_esw_sched_node *vport_node = vport->qos.sched_node;
static void esw_qos_node_attach_to_parent(struct mlx5_esw_sched_node *node)
struct mlx5_esw_sched_node *parent, u32 max_rate,
struct mlx5_esw_sched_node *sched_node;
struct mlx5_esw_sched_node *parent;
struct mlx5_esw_sched_node *vport_node = vport->qos.sched_node;
struct mlx5_esw_sched_node *vport_node = vport->qos.sched_node;
struct mlx5_esw_sched_node *parent,
struct mlx5_esw_sched_node *vport_node = vport->qos.sched_node;
struct mlx5_esw_sched_node *curr_parent = vport_node->parent;
static int esw_qos_vport_update_parent(struct mlx5_vport *vport, struct mlx5_esw_sched_node *parent,
struct mlx5_esw_sched_node *curr_parent;
esw_qos_node_set_parent(struct mlx5_esw_sched_node *node, struct mlx5_esw_sched_node *parent)
esw_qos_switch_vport_tcs_to_vport(struct mlx5_esw_sched_node *tc_arbiter_node,
struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *vports_tc_node, *vport_tc_node, *tmp;
struct mlx5_esw_sched_node,
struct mlx5_esw_sched_node *tc_arbiter_node,
struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *tc_arbiter_node,
struct mlx5_esw_sched_node *vport_node, *tmp;
static struct mlx5_esw_sched_node *
esw_qos_move_node(struct mlx5_esw_sched_node *curr_node)
struct mlx5_esw_sched_node *new_node;
struct mlx5_esw_sched_node *parent)
static int esw_qos_node_disable_tc_arbitration(struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *curr_node;
struct mlx5_esw_sched_node *node, *tmp;
static int esw_qos_node_enable_tc_arbitration(struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *curr_node, *child;
struct mlx5_esw_sched_node *child;
struct mlx5_esw_sched_node *node = vport->qos.sched_node;
struct mlx5_esw_sched_node *vport_node = vport->qos.sched_node;
struct mlx5_esw_sched_node *vport_node;
struct mlx5_esw_sched_node *node = priv;
struct mlx5_esw_sched_node *node = priv;
struct mlx5_esw_sched_node *
struct mlx5_esw_sched_node *node = priv;
struct mlx5_esw_sched_node *node;
struct mlx5_esw_sched_node *node = priv;
int mlx5_esw_qos_vport_update_parent(struct mlx5_vport *vport, struct mlx5_esw_sched_node *parent,
static void esw_qos_sched_elem_warn(struct mlx5_esw_sched_node *node, int err, const char *op)
struct mlx5_esw_sched_node *node = parent ? parent_priv : NULL;
static bool esw_qos_is_node_empty(struct mlx5_esw_sched_node *node)
node = list_first_entry(&node->children, struct mlx5_esw_sched_node,
mlx5_esw_qos_node_validate_set_parent(struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *parent,
esw_qos_tc_arbiter_node_update_parent(struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *parent,
struct mlx5_esw_sched_node *curr_parent = node->parent;
static int esw_qos_vports_node_update_parent(struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *parent,
struct mlx5_esw_sched_node *curr_parent = node->parent;
static int mlx5_esw_qos_node_update_parent(struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *parent,
struct mlx5_esw_sched_node *curr_parent;
struct mlx5_esw_sched_node *node = priv, *parent_node;
static int esw_qos_node_create_sched_element(struct mlx5_esw_sched_node *node, void *ctx,
static int esw_qos_node_destroy_sched_element(struct mlx5_esw_sched_node *node,
static int esw_qos_sched_elem_config(struct mlx5_esw_sched_node *node, u32 max_rate, u32 bw_share,
static int esw_qos_create_rate_limit_element(struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *parent)
struct mlx5_esw_sched_node *node;
static void esw_qos_update_sched_node_bw_share(struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *parent,
struct mlx5_esw_sched_node *node;
static int esw_qos_set_node_min_rate(struct mlx5_esw_sched_node *node,
esw_qos_vport_create_sched_element(struct mlx5_esw_sched_node *vport_node,
struct mlx5_esw_sched_node *parent = vport_node->parent;
esw_qos_vport_tc_create_sched_element(struct mlx5_esw_sched_node *vport_tc_node,
static struct mlx5_esw_sched_node *
struct mlx5_esw_sched_node *parent)
struct mlx5_esw_sched_node *node;
static void __esw_qos_free_node(struct mlx5_esw_sched_node *node)
static void esw_qos_destroy_node(struct mlx5_esw_sched_node *node, struct netlink_ext_ack *extack)
static int esw_qos_create_vports_tc_node(struct mlx5_esw_sched_node *parent,
struct mlx5_esw_sched_node *vports_tc_node;
esw_qos_tc_arbiter_get_bw_shares(struct mlx5_esw_sched_node *tc_arbiter_node,
esw_qos_set_tc_arbiter_bw_shares(struct mlx5_esw_sched_node *tc_arbiter_node,
struct mlx5_esw_sched_node *vports_tc_node;
esw_qos_destroy_vports_tc_nodes(struct mlx5_esw_sched_node *tc_arbiter_node,
struct mlx5_esw_sched_node *vports_tc_node, *tmp;
esw_qos_create_vports_tc_nodes(struct mlx5_esw_sched_node *tc_arbiter_node,
struct mlx5_esw_sched_node *tc_arbiter_node,
static struct mlx5_esw_sched_node *
__esw_qos_create_vports_sched_node(struct mlx5_eswitch *esw, struct mlx5_esw_sched_node *parent,
struct mlx5_esw_sched_node *node;
static struct mlx5_esw_sched_node *
struct mlx5_esw_sched_node *node;
static void __esw_qos_destroy_node(struct mlx5_esw_sched_node *node, struct netlink_ext_ack *extack)
esw_qos_tc_arbiter_scheduling_teardown(struct mlx5_esw_sched_node *node,
static int esw_qos_tc_arbiter_scheduling_setup(struct mlx5_esw_sched_node *node,
struct mlx5_esw_sched_node *vports_tc_node,
struct mlx5_esw_sched_node *vport_node = vport->qos.sched_node;
struct mlx5_esw_sched_node *vport_tc_node;
struct mlx5_esw_sched_node *parent;
struct mlx5_esw_sched_node *vport_node = vport->qos.sched_node;
struct mlx5_esw_sched_node *tc_arbiter_node, *vports_tc_node;
vport->qos.sched_nodes = kzalloc_objs(struct mlx5_esw_sched_node *,
struct mlx5_esw_sched_node *vport_node = vport->qos.sched_node;
struct mlx5_esw_sched_node *parent = vport_node->parent;
struct mlx5_esw_sched_node *mlx5_esw_qos_vport_get_parent(const struct mlx5_vport *vport);
struct mlx5_esw_sched_node *sched_node;
struct mlx5_esw_sched_node **sched_nodes;
int mlx5_esw_qos_vport_update_parent(struct mlx5_vport *vport, struct mlx5_esw_sched_node *node,