#include <rte_string_fns.h>
#include <rte_metrics.h>
#include <rte_cycles.h>
+#ifdef RTE_LIBRTE_SECURITY
#include <rte_security.h>
+#endif
#include <rte_cryptodev.h>
#include <rte_tm.h>
#include <rte_hexdump.h>
int err = gethostname(host_id, MAX_LONG_OPT_SZ-1);
if (err)
- strcpy(host_id, "unknown");
+ strlcpy(host_id, "unknown", sizeof(host_id));
}
return 0;
if ((type_end != NULL) &&
(strncmp(cnt_name, "rx_", strlen("rx_")) == 0)) {
if (strncmp(type_end, "_errors", strlen("_errors")) == 0)
- strncpy(cnt_type, "if_rx_errors", cnt_type_len);
+ strlcpy(cnt_type, "if_rx_errors", cnt_type_len);
else if (strncmp(type_end, "_dropped", strlen("_dropped")) == 0)
- strncpy(cnt_type, "if_rx_dropped", cnt_type_len);
+ strlcpy(cnt_type, "if_rx_dropped", cnt_type_len);
else if (strncmp(type_end, "_bytes", strlen("_bytes")) == 0)
- strncpy(cnt_type, "if_rx_octets", cnt_type_len);
+ strlcpy(cnt_type, "if_rx_octets", cnt_type_len);
else if (strncmp(type_end, "_packets", strlen("_packets")) == 0)
- strncpy(cnt_type, "if_rx_packets", cnt_type_len);
+ strlcpy(cnt_type, "if_rx_packets", cnt_type_len);
else if (strncmp(type_end, "_placement",
strlen("_placement")) == 0)
- strncpy(cnt_type, "if_rx_errors", cnt_type_len);
+ strlcpy(cnt_type, "if_rx_errors", cnt_type_len);
else if (strncmp(type_end, "_buff", strlen("_buff")) == 0)
- strncpy(cnt_type, "if_rx_errors", cnt_type_len);
+ strlcpy(cnt_type, "if_rx_errors", cnt_type_len);
else
/* Does not fit obvious type: use a more generic one */
- strncpy(cnt_type, "derive", cnt_type_len);
+ strlcpy(cnt_type, "derive", cnt_type_len);
} else if ((type_end != NULL) &&
(strncmp(cnt_name, "tx_", strlen("tx_"))) == 0) {
if (strncmp(type_end, "_errors", strlen("_errors")) == 0)
- strncpy(cnt_type, "if_tx_errors", cnt_type_len);
+ strlcpy(cnt_type, "if_tx_errors", cnt_type_len);
else if (strncmp(type_end, "_dropped", strlen("_dropped")) == 0)
- strncpy(cnt_type, "if_tx_dropped", cnt_type_len);
+ strlcpy(cnt_type, "if_tx_dropped", cnt_type_len);
else if (strncmp(type_end, "_bytes", strlen("_bytes")) == 0)
- strncpy(cnt_type, "if_tx_octets", cnt_type_len);
+ strlcpy(cnt_type, "if_tx_octets", cnt_type_len);
else if (strncmp(type_end, "_packets", strlen("_packets")) == 0)
- strncpy(cnt_type, "if_tx_packets", cnt_type_len);
+ strlcpy(cnt_type, "if_tx_packets", cnt_type_len);
else
/* Does not fit obvious type: use a more generic one */
- strncpy(cnt_type, "derive", cnt_type_len);
+ strlcpy(cnt_type, "derive", cnt_type_len);
} else if ((type_end != NULL) &&
(strncmp(cnt_name, "flow_", strlen("flow_"))) == 0) {
if (strncmp(type_end, "_filters", strlen("_filters")) == 0)
- strncpy(cnt_type, "operations", cnt_type_len);
+ strlcpy(cnt_type, "operations", cnt_type_len);
else if (strncmp(type_end, "_errors", strlen("_errors")) == 0)
- strncpy(cnt_type, "errors", cnt_type_len);
+ strlcpy(cnt_type, "errors", cnt_type_len);
else if (strncmp(type_end, "_filters", strlen("_filters")) == 0)
- strncpy(cnt_type, "filter_result", cnt_type_len);
+ strlcpy(cnt_type, "filter_result", cnt_type_len);
} else if ((type_end != NULL) &&
(strncmp(cnt_name, "mac_", strlen("mac_"))) == 0) {
if (strncmp(type_end, "_errors", strlen("_errors")) == 0)
- strncpy(cnt_type, "errors", cnt_type_len);
+ strlcpy(cnt_type, "errors", cnt_type_len);
} else {
/* Does not fit obvious type, or strrchr error: */
/* use a more generic type */
- strncpy(cnt_type, "derive", cnt_type_len);
+ strlcpy(cnt_type, "derive", cnt_type_len);
}
}
static void
nic_xstats_clear(uint16_t port_id)
{
+ int ret;
+
printf("\n Clearing NIC xstats for port %d\n", port_id);
- rte_eth_xstats_reset(port_id);
+ ret = rte_eth_xstats_reset(port_id);
+ if (ret != 0) {
+ printf("\n Error clearing xstats for port %d: %s\n", port_id,
+ strerror(-ret));
+ return;
+ }
+
printf("\n NIC extended statistics for port %d cleared\n", port_id);
}
printf(" - generic config\n");
printf("\t -- Socket %d\n", rte_eth_dev_socket_id(i));
- rte_eth_link_get(i, &link);
- printf("\t -- link speed %d duplex %d,"
- " auto neg %d status %d\n",
- link.link_speed,
- link.link_duplex,
- link.link_autoneg,
- link.link_status);
+ ret = rte_eth_link_get(i, &link);
+ if (ret < 0) {
+ printf("Link get failed (port %u): %s\n",
+ i, rte_strerror(-ret));
+ } else {
+ printf("\t -- link speed %d duplex %d,"
+ " auto neg %d status %d\n",
+ link.link_speed,
+ link.link_duplex,
+ link.link_autoneg,
+ link.link_status);
+ }
printf("\t -- promiscuous (%d)\n",
rte_eth_promiscuous_get(i));
ret = rte_eth_dev_get_mtu(i, &mtu);
}
printf(" - cyrpto context\n");
+#ifdef RTE_LIBRTE_SECURITY
void *p_ctx = rte_eth_dev_get_sec_ctx(i);
printf("\t -- security context - %p\n", p_ctx);
s_cap->crypto_capabilities->op);
}
}
+#endif
}
STATS_BDR_STR(50, "");
if (ret)
printf("Error from rte_eal_cleanup(), %d\n", ret);
- snprintf(bdr_str, MAX_STRING_LEN, " ");
+ strlcpy(bdr_str, " ", MAX_STRING_LEN);
STATS_BDR_STR(50, bdr_str);
return 0;