ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
if (name && *name)
- snprintf(ifr.ifr_name, IFNAMSIZ, "%s", name);
+ strlcpy(ifr.ifr_name, name, IFNAMSIZ);
ret = ioctl(fd, TUNSETIFF, (void *) &ifr);
if (ret < 0) {
}
if (name)
- snprintf(name, IFNAMSIZ, "%s", ifr.ifr_name);
+ strlcpy(name, ifr.ifr_name, IFNAMSIZ);
return fd;
}
/* Initialise device and RX/TX queues */
PRINT_INFO("Initialising port %u ...", port);
fflush(stdout);
- rte_eth_dev_info_get(port, &dev_info);
+
+ ret = rte_eth_dev_info_get(port, &dev_info);
+ if (ret != 0)
+ FATAL_ERROR("Error during getting device (port %u) info: %s\n",
+ port, strerror(-ret));
+
if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
local_port_conf.txmode.offloads |=
DEV_TX_OFFLOAD_MBUF_FAST_FREE;
if (ret < 0)
FATAL_ERROR("Could not start port%u (%d)", port, ret);
- rte_eth_promiscuous_enable(port);
+ ret = rte_eth_promiscuous_enable(port);
+ if (ret != 0)
+ FATAL_ERROR("Could not enable promiscuous mode for port%u (%s)",
+ port, rte_strerror(-ret));
}
/* Check the link status of all ports in up to 9s, and print them finally */
uint16_t portid;
uint8_t count, all_ports_up, print_flag = 0;
struct rte_eth_link link;
+ int ret;
printf("\nChecking link status");
fflush(stdout);
if ((port_mask & (1 << portid)) == 0)
continue;
memset(&link, 0, sizeof(link));
- rte_eth_link_get_nowait(portid, &link);
+ ret = rte_eth_link_get_nowait(portid, &link);
+ if (ret < 0) {
+ all_ports_up = 0;
+ if (print_flag == 1)
+ printf("Port %u link get failed: %s\n",
+ portid, rte_strerror(-ret));
+ continue;
+ }
/* print link status if flag set */
if (print_flag == 1) {
if (link.link_status)