drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1022
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1026
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1034
&mlxsw_sp_qdisc->qdiscs[0]);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1040
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1053
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1058
mlxsw_sp_qdisc_leaf_unoffload(mlxsw_sp_port, mlxsw_sp_qdisc, p->qstats);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1063
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1066
mlxsw_sp_qdisc_get_tc_stats(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1086
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1088
mlxsw_sp_qdisc = mlxsw_sp_qdisc_find(mlxsw_sp_port, p->parent);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1089
if (!mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1094
mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1098
if (!mlxsw_sp_qdisc_compare(mlxsw_sp_qdisc, p->handle))
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1103
return mlxsw_sp_qdisc_destroy(mlxsw_sp_port, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1105
return mlxsw_sp_qdisc_get_stats(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1108
return mlxsw_sp_qdisc_graft(mlxsw_sp_port, mlxsw_sp_qdisc, 0,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
112
mlxsw_sp_qdisc_compare(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc, u32 handle)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1136
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
114
return mlxsw_sp_qdisc->ops && mlxsw_sp_qdisc->handle == handle;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1144
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1147
mlxsw_sp_qdisc_get_tc_stats(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1163
struct mlxsw_sp_qdisc *child_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
117
static struct mlxsw_sp_qdisc *
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
118
mlxsw_sp_qdisc_walk(struct mlxsw_sp_qdisc *qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
119
struct mlxsw_sp_qdisc *(*pre)(struct mlxsw_sp_qdisc *,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1190
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1194
mlxsw_sp_qdisc = mlxsw_sp_qdisc_find(mlxsw_sp_port, p->parent);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1195
if (!mlxsw_sp_qdisc && p->handle == TC_H_UNSPEC) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1213
if (!mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1218
mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1222
if (!mlxsw_sp_qdisc_compare(mlxsw_sp_qdisc, p->handle))
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1227
return mlxsw_sp_qdisc_destroy(mlxsw_sp_port, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1229
return mlxsw_sp_qdisc_get_stats(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
123
struct mlxsw_sp_qdisc *tmp;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1251
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1255
for (i = 0; i < mlxsw_sp_qdisc->num_classes; i++) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1263
kfree(mlxsw_sp_qdisc->ets_data);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1264
mlxsw_sp_qdisc->ets_data = NULL;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1270
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1272
return __mlxsw_sp_qdisc_ets_destroy(mlxsw_sp_port, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1293
static struct mlxsw_sp_qdisc *
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1294
mlxsw_sp_qdisc_walk_cb_clean_stats(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1299
if (mlxsw_sp_qdisc->ops) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1300
backlog = mlxsw_sp_qdisc->stats_base.backlog;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1301
if (mlxsw_sp_qdisc->ops->clean_stats)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1302
mlxsw_sp_qdisc->ops->clean_stats(mlxsw_sp_port,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1303
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1304
mlxsw_sp_qdisc->stats_base.backlog = backlog;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1312
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1314
mlxsw_sp_qdisc_walk(mlxsw_sp_qdisc, mlxsw_sp_qdisc_walk_cb_clean_stats,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1320
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1326
struct mlxsw_sp_qdisc_ets_data *ets_data = mlxsw_sp_qdisc->ets_data;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1328
struct mlxsw_sp_qdisc *child_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1337
mlxsw_sp_qdisc->ets_data = ets_data;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1339
for (band = 0; band < mlxsw_sp_qdisc->num_classes; band++) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1350
child_qdisc = &mlxsw_sp_qdisc->qdiscs[band];
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1391
child_qdisc = &mlxsw_sp_qdisc->qdiscs[band];
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1405
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1411
return __mlxsw_sp_qdisc_ets_replace(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1418
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1424
mlxsw_sp_qdisc->stats_base.backlog);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1430
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1435
__mlxsw_sp_qdisc_ets_unoffload(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1441
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1444
struct mlxsw_sp_qdisc *tc_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1451
for (i = 0; i < mlxsw_sp_qdisc->num_classes; i++) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1452
tc_qdisc = &mlxsw_sp_qdisc->qdiscs[i];
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1458
mlxsw_sp_qdisc_update_stats(mlxsw_sp_port->mlxsw_sp, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
146
static struct mlxsw_sp_qdisc *
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1466
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
147
mlxsw_sp_qdisc_walk_cb_find(struct mlxsw_sp_qdisc *qdisc, void *data)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1475
stats_base = &mlxsw_sp_qdisc->stats_base;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1486
mlxsw_sp_qdisc->stats_base.backlog = 0;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1489
static struct mlxsw_sp_qdisc *
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1490
mlxsw_sp_qdisc_prio_find_class(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1496
if (band < 0 || band >= mlxsw_sp_qdisc->num_classes)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1498
return &mlxsw_sp_qdisc->qdiscs[band];
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1502
mlxsw_sp_qdisc_ets_get_band(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1503
struct mlxsw_sp_qdisc *child)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1505
unsigned int band = child - mlxsw_sp_qdisc->qdiscs;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1509
return &mlxsw_sp_qdisc->ets_data->bands[band];
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1513
mlxsw_sp_qdisc_ets_get_prio_bitmap(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1514
struct mlxsw_sp_qdisc *child)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1516
return mlxsw_sp_qdisc_ets_get_band(mlxsw_sp_qdisc, child)->prio_bitmap;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1520
mlxsw_sp_qdisc_ets_get_tclass_num(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1521
struct mlxsw_sp_qdisc *child)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1523
return mlxsw_sp_qdisc_ets_get_band(mlxsw_sp_qdisc, child)->tclass_num;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1551
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1556
return __mlxsw_sp_qdisc_ets_replace(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1563
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1568
__mlxsw_sp_qdisc_ets_unoffload(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1574
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1576
return __mlxsw_sp_qdisc_ets_destroy(mlxsw_sp_port, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
159
static struct mlxsw_sp_qdisc *
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1619
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1622
struct mlxsw_sp_qdisc *old_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1625
if (band < mlxsw_sp_qdisc->num_classes &&
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1626
mlxsw_sp_qdisc->qdiscs[band].handle == child_handle)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1644
parent = TC_H_MAKE(mlxsw_sp_qdisc->handle, band + 1);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1645
mlxsw_sp_qdisc = mlxsw_sp_qdisc->ops->find_class(mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1647
if (!WARN_ON(!mlxsw_sp_qdisc))
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1648
mlxsw_sp_qdisc_destroy(mlxsw_sp_port, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1656
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1658
mlxsw_sp_qdisc = mlxsw_sp_qdisc_find(mlxsw_sp_port, p->parent);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1659
if (!mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1664
mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1668
if (!mlxsw_sp_qdisc_compare(mlxsw_sp_qdisc, p->handle))
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1673
return mlxsw_sp_qdisc_destroy(mlxsw_sp_port, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1675
return mlxsw_sp_qdisc_get_stats(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1678
return mlxsw_sp_qdisc_graft(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1701
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1703
mlxsw_sp_qdisc = mlxsw_sp_qdisc_find(mlxsw_sp_port, p->parent);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1704
if (!mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1709
mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1713
if (!mlxsw_sp_qdisc_compare(mlxsw_sp_qdisc, p->handle))
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1718
return mlxsw_sp_qdisc_destroy(mlxsw_sp_port, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
172
static struct mlxsw_sp_qdisc *
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1720
return mlxsw_sp_qdisc_get_stats(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
1723
return mlxsw_sp_qdisc_graft(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
173
mlxsw_sp_qdisc_walk_cb_find_by_handle(struct mlxsw_sp_qdisc *qdisc, void *data)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
182
static struct mlxsw_sp_qdisc *
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
195
mlxsw_sp_qdisc_reduce_parent_backlog(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
197
struct mlxsw_sp_qdisc *tmp;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
199
for (tmp = mlxsw_sp_qdisc->parent; tmp; tmp = tmp->parent)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
200
tmp->stats_base.backlog -= mlxsw_sp_qdisc->stats_base.backlog;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
204
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
206
struct mlxsw_sp_qdisc *parent = mlxsw_sp_qdisc->parent;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
212
return parent->ops->get_prio_bitmap(parent, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
2178
struct mlxsw_sp_qdisc *qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
218
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
220
struct mlxsw_sp_qdisc *parent = mlxsw_sp_qdisc->parent;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
226
return parent->ops->get_tclass_num(parent, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
231
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
233
struct mlxsw_sp_qdisc *root_qdisc = &mlxsw_sp_port->qdisc->root_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
238
if (!mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
241
if (root_qdisc == mlxsw_sp_qdisc) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
251
if (!mlxsw_sp_qdisc->ops)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
254
for (i = 0; i < mlxsw_sp_qdisc->num_classes; i++)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
256
&mlxsw_sp_qdisc->qdiscs[i]);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
257
mlxsw_sp_qdisc_reduce_parent_backlog(mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
258
if (mlxsw_sp_qdisc->ops->destroy)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
259
err = mlxsw_sp_qdisc->ops->destroy(mlxsw_sp_port,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
260
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
261
if (mlxsw_sp_qdisc->ops->clean_stats)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
262
mlxsw_sp_qdisc->ops->clean_stats(mlxsw_sp_port, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
264
mlxsw_sp_qdisc->handle = TC_H_UNSPEC;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
265
mlxsw_sp_qdisc->ops = NULL;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
266
mlxsw_sp_qdisc->num_classes = 0;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
267
kfree(mlxsw_sp_qdisc->qdiscs);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
268
mlxsw_sp_qdisc->qdiscs = NULL;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
27
struct mlxsw_sp_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
280
__mlxsw_sp_qdisc_tree_validate(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
284
mlxsw_sp_qdisc_tree_validate_children(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
290
for (i = 0; i < mlxsw_sp_qdisc->num_classes; i++) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
291
err = __mlxsw_sp_qdisc_tree_validate(&mlxsw_sp_qdisc->qdiscs[i],
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
301
__mlxsw_sp_qdisc_tree_validate(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
304
if (!mlxsw_sp_qdisc->ops)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
307
switch (mlxsw_sp_qdisc->ops->type) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
34
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc, void *params);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
341
return mlxsw_sp_qdisc_tree_validate_children(mlxsw_sp_qdisc, validate);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
347
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
349
mlxsw_sp_qdisc = &mlxsw_sp_port->qdisc->root_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
350
return __mlxsw_sp_qdisc_tree_validate(mlxsw_sp_qdisc, validate);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
355
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
358
struct mlxsw_sp_qdisc *root_qdisc = &mlxsw_sp_port->qdisc->root_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
36
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
368
mlxsw_sp_qdisc->qdiscs = kzalloc_objs(*mlxsw_sp_qdisc->qdiscs,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
370
if (!mlxsw_sp_qdisc->qdiscs)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
374
mlxsw_sp_qdisc->qdiscs[i].parent = mlxsw_sp_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
378
if (root_qdisc == mlxsw_sp_qdisc) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
38
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
391
mlxsw_sp_qdisc->num_classes = ops->num_classes;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
392
mlxsw_sp_qdisc->ops = ops;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
393
mlxsw_sp_qdisc->handle = handle;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
398
err = ops->replace(mlxsw_sp_port, handle, mlxsw_sp_qdisc, params);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
405
mlxsw_sp_qdisc->handle = TC_H_UNSPEC;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
406
mlxsw_sp_qdisc->ops = NULL;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
407
mlxsw_sp_qdisc->num_classes = 0;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
41
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
410
kfree(mlxsw_sp_qdisc->qdiscs);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
411
mlxsw_sp_qdisc->qdiscs = NULL;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
417
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc, void *params)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
419
struct mlxsw_sp_qdisc_ops *ops = mlxsw_sp_qdisc->ops;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
426
err = ops->replace(mlxsw_sp_port, handle, mlxsw_sp_qdisc, params);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
434
if (mlxsw_sp_qdisc->handle != handle) {
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
436
ops->clean_stats(mlxsw_sp_port, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
439
mlxsw_sp_qdisc->handle = handle;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
44
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
444
ops->unoffload(mlxsw_sp_port, mlxsw_sp_qdisc, params);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
446
mlxsw_sp_qdisc_destroy(mlxsw_sp_port, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
452
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
455
if (mlxsw_sp_qdisc->ops && mlxsw_sp_qdisc->ops->type != ops->type)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
461
mlxsw_sp_qdisc_destroy(mlxsw_sp_port, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
463
if (!mlxsw_sp_qdisc->ops)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
465
mlxsw_sp_qdisc, ops, params);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
468
mlxsw_sp_qdisc, params);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
473
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
476
if (mlxsw_sp_qdisc && mlxsw_sp_qdisc->ops &&
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
477
mlxsw_sp_qdisc->ops->get_stats)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
478
return mlxsw_sp_qdisc->ops->get_stats(mlxsw_sp_port,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
479
mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
487
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
49
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc, void *params);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
490
if (mlxsw_sp_qdisc && mlxsw_sp_qdisc->ops &&
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
491
mlxsw_sp_qdisc->ops->get_xstats)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
492
return mlxsw_sp_qdisc->ops->get_xstats(mlxsw_sp_port,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
493
mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
50
struct mlxsw_sp_qdisc *(*find_class)(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
532
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
54
u8 (*get_prio_bitmap)(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
542
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
544
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
55
struct mlxsw_sp_qdisc *child);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
558
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
56
int (*get_tclass_num)(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
563
struct mlxsw_sp_qdisc_stats *stats_base = &mlxsw_sp_qdisc->stats_base;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
57
struct mlxsw_sp_qdisc *child);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
582
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
590
mlxsw_sp_qdisc_collect_tc_stats(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
593
mlxsw_sp_qdisc_update_stats(mlxsw_sp_port->mlxsw_sp, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
638
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
647
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
649
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
651
stats_base = &mlxsw_sp_qdisc->stats_base;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
652
red_base = &mlxsw_sp_qdisc->xstats_base.red;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
669
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
672
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
707
struct mlxsw_sp_qdisc *child_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
714
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
725
&mlxsw_sp_qdisc->qdiscs[0]);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
731
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
747
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
753
mlxsw_sp_qdisc->stats_base.backlog);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
755
mlxsw_sp_qdisc->stats_base.backlog = 0;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
760
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
765
mlxsw_sp_qdisc_leaf_unoffload(mlxsw_sp_port, mlxsw_sp_qdisc, p->qstats);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
770
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
773
struct red_stats *xstats_base = &mlxsw_sp_qdisc->xstats_base.red;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
780
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
800
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
809
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
811
stats_base = &mlxsw_sp_qdisc->stats_base;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
813
mlxsw_sp_qdisc_get_tc_stats(mlxsw_sp_port, mlxsw_sp_qdisc, stats_ptr);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
823
static struct mlxsw_sp_qdisc *
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
824
mlxsw_sp_qdisc_leaf_find_class(struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
830
return &mlxsw_sp_qdisc->qdiscs[0];
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
847
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
853
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
855
mlxsw_sp_qdisc = mlxsw_sp_qdisc_find(mlxsw_sp_port, p->parent);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
856
if (!mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
861
mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
865
if (!mlxsw_sp_qdisc_compare(mlxsw_sp_qdisc, p->handle))
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
87
struct mlxsw_sp_qdisc *parent;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
870
return mlxsw_sp_qdisc_destroy(mlxsw_sp_port, mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
872
return mlxsw_sp_qdisc_get_xstats(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
875
return mlxsw_sp_qdisc_get_stats(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
878
return mlxsw_sp_qdisc_graft(mlxsw_sp_port, mlxsw_sp_qdisc, 0,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
88
struct mlxsw_sp_qdisc *qdiscs;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
899
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
906
mlxsw_sp_qdisc_collect_tc_stats(mlxsw_sp_port, mlxsw_sp_qdisc,
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
910
mlxsw_sp_qdisc->stats_base.tx_packets = tx_packets;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
911
mlxsw_sp_qdisc->stats_base.tx_bytes = tx_bytes;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
912
mlxsw_sp_qdisc->stats_base.drops = drops;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
913
mlxsw_sp_qdisc->stats_base.backlog = 0;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
918
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
920
if (mlxsw_sp_qdisc == &mlxsw_sp_port->qdisc->root_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
93
struct mlxsw_sp_qdisc root_qdisc;
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
936
struct mlxsw_sp_qdisc *mlxsw_sp_qdisc)
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
939
mlxsw_sp_qdisc);
drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
941
mlxsw_sp_qdisc);