return;
}
- if (parser_read_uint32(&p.tb_rate, tokens[3]) != 0) {
+ if (parser_read_uint64(&p.tb_rate, tokens[3]) != 0) {
snprintf(out, out_size, MSG_ARG_INVALID, "tb_rate");
return;
}
- if (parser_read_uint32(&p.tb_size, tokens[4]) != 0) {
+ if (parser_read_uint64(&p.tb_size, tokens[4]) != 0) {
snprintf(out, out_size, MSG_ARG_INVALID, "tb_size");
return;
}
for (i = 0; i < RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE; i++)
- if (parser_read_uint32(&p.tc_rate[i], tokens[5 + i]) != 0) {
+ if (parser_read_uint64(&p.tc_rate[i], tokens[5 + i]) != 0) {
snprintf(out, out_size, MSG_ARG_INVALID, "tc_rate");
return;
}
- if (parser_read_uint32(&p.tc_period, tokens[18]) != 0) {
+ if (parser_read_uint64(&p.tc_period, tokens[18]) != 0) {
snprintf(out, out_size, MSG_ARG_INVALID, "tc_period");
return;
}
return;
}
- if (parser_read_uint32(&p.tb_rate, tokens[3]) != 0) {
+ if (parser_read_uint64(&p.tb_rate, tokens[3]) != 0) {
snprintf(out, out_size, MSG_ARG_INVALID, "tb_rate");
return;
}
- if (parser_read_uint32(&p.tb_size, tokens[4]) != 0) {
+ if (parser_read_uint64(&p.tb_size, tokens[4]) != 0) {
snprintf(out, out_size, MSG_ARG_INVALID, "tb_size");
return;
}
for (i = 0; i < RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE; i++)
- if (parser_read_uint32(&p.tc_rate[i], tokens[5 + i]) != 0) {
+ if (parser_read_uint64(&p.tc_rate[i], tokens[5 + i]) != 0) {
snprintf(out, out_size, MSG_ARG_INVALID, "tc_rate");
return;
}
- if (parser_read_uint32(&p.tc_period, tokens[18]) != 0) {
+ if (parser_read_uint64(&p.tc_period, tokens[18]) != 0) {
snprintf(out, out_size, MSG_ARG_INVALID, "tc_period");
return;
}
return;
}
- if (parser_read_uint32(&p.rate, tokens[3]) != 0) {
+ if (parser_read_uint64(&p.rate, tokens[3]) != 0) {
snprintf(out, out_size, MSG_ARG_INVALID, "rate");
return;
}
tmgr_port_find(const char *name);
struct tmgr_port_params {
- uint32_t rate;
+ uint64_t rate;
uint32_t n_subports_per_port;
uint32_t frame_overhead;
uint32_t mtu;
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tb rate");
if (entry)
- pipe_params[j].tb_rate = (uint32_t)atoi(entry);
+ pipe_params[j].tb_rate = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tb size");
if (entry)
- pipe_params[j].tb_size = (uint32_t)atoi(entry);
+ pipe_params[j].tb_size = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc period");
if (entry)
- pipe_params[j].tc_period = (uint32_t)atoi(entry);
+ pipe_params[j].tc_period = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 0 rate");
if (entry)
- pipe_params[j].tc_rate[0] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[0] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 1 rate");
if (entry)
- pipe_params[j].tc_rate[1] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[1] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 2 rate");
if (entry)
- pipe_params[j].tc_rate[2] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[2] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 3 rate");
if (entry)
- pipe_params[j].tc_rate[3] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[3] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 4 rate");
if (entry)
- pipe_params[j].tc_rate[4] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[4] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 5 rate");
if (entry)
- pipe_params[j].tc_rate[5] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[5] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 6 rate");
if (entry)
- pipe_params[j].tc_rate[6] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[6] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 7 rate");
if (entry)
- pipe_params[j].tc_rate[7] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[7] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 8 rate");
if (entry)
- pipe_params[j].tc_rate[8] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[8] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 9 rate");
if (entry)
- pipe_params[j].tc_rate[9] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[9] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 10 rate");
if (entry)
- pipe_params[j].tc_rate[10] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[10] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 11 rate");
if (entry)
- pipe_params[j].tc_rate[11] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[11] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 12 rate");
if (entry)
- pipe_params[j].tc_rate[12] = (uint32_t)atoi(entry);
+ pipe_params[j].tc_rate[12] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, pipe_name, "tc 12 oversubscription weight");
if (entry)
entry = rte_cfgfile_get_entry(cfg, sec_name, "tb rate");
if (entry)
- subport_params[i].tb_rate = (uint32_t)atoi(entry);
+ subport_params[i].tb_rate = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tb size");
if (entry)
- subport_params[i].tb_size = (uint32_t)atoi(entry);
+ subport_params[i].tb_size = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc period");
if (entry)
- subport_params[i].tc_period = (uint32_t)atoi(entry);
+ subport_params[i].tc_period = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 0 rate");
if (entry)
- subport_params[i].tc_rate[0] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[0] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 1 rate");
if (entry)
- subport_params[i].tc_rate[1] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[1] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 2 rate");
if (entry)
- subport_params[i].tc_rate[2] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[2] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 3 rate");
if (entry)
- subport_params[i].tc_rate[3] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[3] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 4 rate");
if (entry)
- subport_params[i].tc_rate[4] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[4] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 5 rate");
if (entry)
- subport_params[i].tc_rate[5] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[5] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 6 rate");
if (entry)
- subport_params[i].tc_rate[6] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[6] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 7 rate");
if (entry)
- subport_params[i].tc_rate[7] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[7] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 8 rate");
if (entry)
- subport_params[i].tc_rate[8] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[8] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 9 rate");
if (entry)
- subport_params[i].tc_rate[9] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[9] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 10 rate");
if (entry)
- subport_params[i].tc_rate[10] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[10] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 11 rate");
if (entry)
- subport_params[i].tc_rate[11] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[11] = (uint64_t)atoi(entry);
entry = rte_cfgfile_get_entry(cfg, sec_name, "tc 12 rate");
if (entry)
- subport_params[i].tc_rate[12] = (uint32_t)atoi(entry);
+ subport_params[i].tc_rate[12] = (uint64_t)atoi(entry);
int n_entries = rte_cfgfile_section_num_entries(cfg, sec_name);
struct rte_cfgfile_entry entries[n_entries];
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");
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");
*/
struct rte_sched_pipe_params {
/** Token bucket rate (measured in bytes per second) */
- uint32_t tb_rate;
+ uint64_t tb_rate;
/** Token bucket size (measured in credits) */
- uint32_t tb_size;
+ uint64_t tb_size;
/** Traffic class rates (measured in bytes per second) */
- uint32_t tc_rate[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
+ uint64_t tc_rate[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
/** Enforcement period (measured in milliseconds) */
- uint32_t tc_period;
+ uint64_t tc_period;
/** Best-effort traffic class oversubscription weight */
uint8_t tc_ov_weight;
*/
struct rte_sched_subport_params {
/** Token bucket rate (measured in bytes per second) */
- uint32_t tb_rate;
+ uint64_t tb_rate;
/** Token bucket size (measured in credits) */
- uint32_t tb_size;
+ uint64_t tb_size;
/** Traffic class rates (measured in bytes per second) */
- uint32_t tc_rate[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
+ uint64_t tc_rate[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
/** Enforcement period for rates (measured in milliseconds) */
- uint32_t tc_period;
+ uint64_t tc_period;
/** Number of subport pipes.
* The subport can enable/allocate fewer pipes than the maximum
/** Subport statistics */
struct rte_sched_subport_stats {
/** Number of packets successfully written */
- uint32_t n_pkts_tc[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
+ uint64_t n_pkts_tc[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
/** Number of packets dropped */
- uint32_t n_pkts_tc_dropped[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
+ uint64_t n_pkts_tc_dropped[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
/** Number of bytes successfully written for each traffic class */
- uint32_t n_bytes_tc[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
+ uint64_t n_bytes_tc[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
/** Number of bytes dropped for each traffic class */
- uint32_t n_bytes_tc_dropped[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
+ uint64_t n_bytes_tc_dropped[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
#ifdef RTE_SCHED_RED
/** Number of packets dropped by red */
- uint32_t n_pkts_red_dropped[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
+ uint64_t n_pkts_red_dropped[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
#endif
};
/** Queue statistics */
struct rte_sched_queue_stats {
/** Packets successfully written */
- uint32_t n_pkts;
+ uint64_t n_pkts;
/** Packets dropped */
- uint32_t n_pkts_dropped;
+ uint64_t n_pkts_dropped;
#ifdef RTE_SCHED_RED
/** Packets dropped by RED */
- uint32_t n_pkts_red_dropped;
+ uint64_t n_pkts_red_dropped;
#endif
/** Bytes successfully written */
- uint32_t n_bytes;
+ uint64_t n_bytes;
/** Bytes dropped */
- uint32_t n_bytes_dropped;
+ uint64_t n_bytes_dropped;
};
/** Port configuration parameters. */
int socket;
/** Output port rate (measured in bytes per second) */
- uint32_t rate;
+ uint64_t rate;
/** Maximum Ethernet frame size (measured in bytes).
* Should not include the framing overhead.