if (i == nb_pfc ||
subport_id >= port_params.n_subports_per_port ||
- pipe_id >= port_params.n_pipes_per_subport ||
+ pipe_id >= subport_params[subport_id].n_pipes_per_subport_enabled ||
tc >= RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE ||
q >= RTE_SCHED_BE_QUEUES_PER_PIPE ||
(tc < RTE_SCHED_TRAFFIC_CLASS_BE && q > 0))
port = qos_conf[i].sched_port;
for (i = 0; i < subport_id; i++)
- queue_id += port_params.n_pipes_per_subport *
+ queue_id += subport_params[i].n_pipes_per_subport_enabled *
RTE_SCHED_QUEUES_PER_PIPE;
if (tc < RTE_SCHED_TRAFFIC_CLASS_BE)
queue_id += pipe_id * RTE_SCHED_QUEUES_PER_PIPE + tc;
}
if (i == nb_pfc || subport_id >= port_params.n_subports_per_port ||
- pipe_id >= port_params.n_pipes_per_subport ||
+ pipe_id >= subport_params[subport_id].n_pipes_per_subport_enabled ||
tc >= RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE)
return -1;
port = qos_conf[i].sched_port;
for (i = 0; i < subport_id; i++)
- queue_id += port_params.n_pipes_per_subport * RTE_SCHED_QUEUES_PER_PIPE;
+ queue_id +=
+ subport_params[i].n_pipes_per_subport_enabled *
+ RTE_SCHED_QUEUES_PER_PIPE;
queue_id += pipe_id * RTE_SCHED_QUEUES_PER_PIPE + tc;
if (i == nb_pfc ||
subport_id >= port_params.n_subports_per_port ||
- pipe_id >= port_params.n_pipes_per_subport)
+ pipe_id >= subport_params[subport_id].n_pipes_per_subport_enabled)
return -1;
port = qos_conf[i].sched_port;
for (i = 0; i < subport_id; i++)
- queue_id += port_params.n_pipes_per_subport *
+ queue_id += subport_params[i].n_pipes_per_subport_enabled *
RTE_SCHED_QUEUES_PER_PIPE;
queue_id += pipe_id * RTE_SCHED_QUEUES_PER_PIPE;
for (i = 0; i < subport_id; i++)
subport_queue_id +=
- port_params.n_pipes_per_subport * RTE_SCHED_QUEUES_PER_PIPE;
+ subport_params[i].n_pipes_per_subport_enabled *
+ RTE_SCHED_QUEUES_PER_PIPE;
average = 0;
for (count = 0; count < qavg_ntimes; count++) {
+ uint32_t n_pipes_per_subport =
+ subport_params[subport_id].n_pipes_per_subport_enabled;
+
part_average = 0;
- for (i = 0; i < port_params.n_pipes_per_subport; i++) {
+ for (i = 0; i < n_pipes_per_subport; i++) {
if (tc < RTE_SCHED_TRAFFIC_CLASS_BE) {
queue_id = subport_queue_id +
i * RTE_SCHED_QUEUES_PER_PIPE + tc;
}
if (tc < RTE_SCHED_TRAFFIC_CLASS_BE)
- average += part_average / (port_params.n_pipes_per_subport);
+ average += part_average /
+ (subport_params[subport_id].n_pipes_per_subport_enabled);
else
- average +=
- part_average / (port_params.n_pipes_per_subport) *
+ average += part_average /
+ (subport_params[subport_id].n_pipes_per_subport_enabled) *
RTE_SCHED_BE_QUEUES_PER_PIPE;
usleep(qavg_period);
port = qos_conf[i].sched_port;
for (i = 0; i < subport_id; i++)
- subport_queue_id += port_params.n_pipes_per_subport *
+ subport_queue_id += subport_params[i].n_pipes_per_subport_enabled *
RTE_SCHED_QUEUES_PER_PIPE;
average = 0;
for (count = 0; count < qavg_ntimes; count++) {
+ uint32_t n_pipes_per_subport =
+ subport_params[subport_id].n_pipes_per_subport_enabled;
+
part_average = 0;
- for (i = 0; i < port_params.n_pipes_per_subport; i++) {
+ for (i = 0; i < n_pipes_per_subport; i++) {
queue_id = subport_queue_id + i * RTE_SCHED_QUEUES_PER_PIPE;
for (j = 0; j < RTE_SCHED_QUEUES_PER_PIPE; j++) {
}
average += part_average /
- (port_params.n_pipes_per_subport * RTE_SCHED_QUEUES_PER_PIPE);
+ (subport_params[subport_id].n_pipes_per_subport_enabled *
+ RTE_SCHED_QUEUES_PER_PIPE);
usleep(qavg_period);
}
printf("+----+-------------+-------------+-------------+-------------+-------------+\n");
for (i = 0; i < RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE; i++) {
- printf("| %d | %11" PRIu32 " | %11" PRIu32 " | %11" PRIu32 " | %11" PRIu32 " | %11" PRIu32 " |\n",
+ printf("| %d | %11" PRIu64 " | %11" PRIu64 " | %11" PRIu64 " | %11" PRIu64 " | %11" PRIu32 " |\n",
i, stats.n_pkts_tc[i], stats.n_pkts_tc_dropped[i],
stats.n_bytes_tc[i], stats.n_bytes_tc_dropped[i], tc_ov[i]);
printf("+----+-------------+-------------+-------------+-------------+-------------+\n");
if (i == nb_pfc ||
subport_id >= port_params.n_subports_per_port ||
- pipe_id >= port_params.n_pipes_per_subport)
+ pipe_id >= subport_params[subport_id].n_pipes_per_subport_enabled)
return -1;
port = qos_conf[i].sched_port;
for (i = 0; i < subport_id; i++)
- queue_id += port_params.n_pipes_per_subport * RTE_SCHED_QUEUES_PER_PIPE;
+ queue_id += subport_params[i].n_pipes_per_subport_enabled *
+ RTE_SCHED_QUEUES_PER_PIPE;
queue_id += pipe_id * RTE_SCHED_QUEUES_PER_PIPE;
for (i = 0; i < RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE; i++) {
if (i < RTE_SCHED_TRAFFIC_CLASS_BE) {
rte_sched_queue_read_stats(port, queue_id + i, &stats, &qlen);
- printf("| %d | %d | %11" PRIu32 " | %11" PRIu32 " | %11" PRIu32 " | %11" PRIu32 " | %11i |\n",
+ printf("| %d | %d | %11" PRIu64 " | %11" PRIu64 " | %11" PRIu64 " | %11" PRIu64 " | %11i |\n",
i, 0, stats.n_pkts, stats.n_pkts_dropped, stats.n_bytes,
stats.n_bytes_dropped, qlen);
printf("+----+-------+-------------+-------------+-------------+-------------+-------------+\n");
for (j = 0; j < RTE_SCHED_BE_QUEUES_PER_PIPE; j++) {
rte_sched_queue_read_stats(port, queue_id + i + j,
&stats, &qlen);
- printf("| %d | %d | %11" PRIu32 " | %11" PRIu32 " | %11" PRIu32 " | %11" PRIu32 " | %11i |\n",
+ printf("| %d | %d | %11" PRIu64 " | %11" PRIu64 " | %11" PRIu64 " | %11" PRIu64 " | %11i |\n",
i, j, stats.n_pkts, stats.n_pkts_dropped, stats.n_bytes,
stats.n_bytes_dropped, qlen);
printf("+----+-------+-------------+-------------+-------------+-------------+-------------+\n");