examples: take promiscuous mode switch result into account

rte_eth_promiscuous_enable()/rte_eth_promiscuous_disable() return
value was changed from void to int, so this patch modify usage
of these functions across examples according to new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
This commit is contained in:
Ivan Ilchenko 2019-09-14 12:37:33 +01:00 committed by Ferruh Yigit
parent 70e51a0ea2
commit f430bbcecf
35 changed files with 181 additions and 43 deletions

View File

@ -477,7 +477,12 @@ initialize_ports(struct app_config_params *app_params,
}
}
rte_eth_promiscuous_enable(port_id);
ret = rte_eth_promiscuous_enable(port_id);
if (ret != 0) {
printf("Cannot enable promiscuous mode: err=%s, port=%u\n",
rte_strerror(-ret), port_id);
return ret;
}
rte_eth_macaddr_get(port_id, &bbdev_port_eth_addr);
print_mac(port_id, &bbdev_port_eth_addr);

View File

@ -299,7 +299,13 @@ bond_port_init(struct rte_mempool *mbuf_pool)
rte_exit(-1, "\nFailed to activate slaves\n");
}
rte_eth_promiscuous_enable(BOND_PORT);
retval = rte_eth_promiscuous_enable(BOND_PORT);
if (retval != 0) {
rte_exit(EXIT_FAILURE,
"port %u: promiscuous mode enable failed: %s\n",
BOND_PORT, rte_strerror(-retval));
return;
}
struct rte_ether_addr addr;

View File

@ -194,7 +194,9 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
addr.addr_bytes[2], addr.addr_bytes[3],
addr.addr_bytes[4], addr.addr_bytes[5]);
rte_eth_promiscuous_enable(port);
retval = rte_eth_promiscuous_enable(port);
if (retval != 0)
return retval;
return 0;
}

View File

@ -333,7 +333,9 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool)
addr.addr_bytes[4], addr.addr_bytes[5]);
/* Enable RX in promiscuous mode for the Ethernet device. */
rte_eth_promiscuous_enable(port);
retval = rte_eth_promiscuous_enable(port);
if (retval != 0)
return retval;
return 0;
}

View File

@ -473,7 +473,10 @@ init_port(uint16_t port)
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 */

View File

@ -251,7 +251,9 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool)
addr.addr_bytes[4], addr.addr_bytes[5]);
/* Enable RX in promiscuous mode for the Ethernet device. */
rte_eth_promiscuous_enable(port);
retval = rte_eth_promiscuous_enable(port);
if (retval != 0)
return retval;
return 0;
}

View File

@ -180,7 +180,12 @@ init_port(void)
}
}
rte_eth_promiscuous_enable(port_id);
ret = rte_eth_promiscuous_enable(port_id);
if (ret != 0)
rte_exit(EXIT_FAILURE,
":: promiscuous mode enable failed: err=%s, port=%u\n",
rte_strerror(-ret), port_id);
ret = rte_eth_dev_start(port_id);
if (ret < 0) {
rte_exit(EXIT_FAILURE,

View File

@ -1038,7 +1038,11 @@ main(int argc, char **argv)
rte_exit(EXIT_FAILURE, "rte_eth_dev_start: err=%d, port=%d\n",
ret, portid);
rte_eth_promiscuous_enable(portid);
ret = rte_eth_promiscuous_enable(portid);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"rte_eth_promiscuous_enable: err=%s, port=%d\n",
rte_strerror(-ret), portid);
if (check_ptype(portid) == 0) {
rte_eth_add_rx_callback(portid, 0, cb_parse_ptype, NULL);

View File

@ -176,8 +176,11 @@ link_create(const char *name, struct link_params *params)
if (status < 0)
return NULL;
if (params->promiscuous)
rte_eth_promiscuous_enable(port_id);
if (params->promiscuous) {
status = rte_eth_promiscuous_enable(port_id);
if (status != 0)
return NULL;
}
/* Port RX */
for (i = 0; i < params->rx.n_queues; i++) {

View File

@ -1169,7 +1169,11 @@ main(int argc, char **argv)
rte_exit(EXIT_FAILURE, "rte_eth_dev_start: err=%d, port=%d\n",
ret, portid);
rte_eth_promiscuous_enable(portid);
ret = rte_eth_promiscuous_enable(portid);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"rte_eth_promiscuous_enable: err=%s, port=%d\n",
rte_strerror(-ret), portid);
}
if (init_routing_table() < 0)

View File

@ -2470,8 +2470,13 @@ main(int32_t argc, char **argv)
* to itself through 2 cross-connected ports of the
* target machine.
*/
if (promiscuous_on)
rte_eth_promiscuous_enable(portid);
if (promiscuous_on) {
ret = rte_eth_promiscuous_enable(portid);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"rte_eth_promiscuous_enable: err=%s, port=%d\n",
rte_strerror(-ret), portid);
}
rte_eth_dev_callback_register(portid,
RTE_ETH_EVENT_IPSEC, inline_ipsec_event_callback, NULL);

View File

@ -83,7 +83,9 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
addr.addr_bytes[4], addr.addr_bytes[5]);
/* Enable RX in promiscuous mode for the Ethernet device. */
rte_eth_promiscuous_enable(port);
retval = rte_eth_promiscuous_enable(port);
if (retval != 0)
return retval;
return 0;
}

View File

@ -2574,7 +2574,12 @@ initialize_ports(struct l2fwd_crypto_options *options)
return -1;
}
rte_eth_promiscuous_enable(portid);
retval = rte_eth_promiscuous_enable(portid);
if (retval != 0) {
printf("rte_eth_promiscuous_enable:err=%s, port=%u\n",
rte_strerror(-retval), portid);
return -1;
}
rte_eth_macaddr_get(portid, &l2fwd_ports_eth_addr[portid]);

View File

@ -916,7 +916,14 @@ main(int argc, char **argv)
printf("done:\n");
rte_eth_promiscuous_enable(portid);
ret = rte_eth_promiscuous_enable(portid);
if (ret != 0) {
rte_exit(EXIT_FAILURE,
"rte_eth_promiscuous_enable:err=%s, port=%u\n",
rte_strerror(-ret), portid);
return ret;
}
printf("Port %u, MAC address: %02X:%02X:%02X:%02X:%02X:%02X\n\n",
portid,

View File

@ -709,7 +709,11 @@ main(int argc, char **argv)
"rte_eth_dev_start:err=%d, port=%u\n",
ret, portid);
rte_eth_promiscuous_enable(portid);
ret = rte_eth_promiscuous_enable(portid);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"rte_eth_promiscuous_enable:err=%s, port=%u\n",
rte_strerror(-ret), portid);
printf("Port %u, MAC address: "
"%02X:%02X:%02X:%02X:%02X:%02X\n\n",

View File

@ -708,7 +708,11 @@ main(int argc, char **argv)
printf("done: \n");
rte_eth_promiscuous_enable(portid);
ret = rte_eth_promiscuous_enable(portid);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"rte_eth_promiscuous_enable:err=%s, port=%u\n",
rte_strerror(-ret), portid);
printf("Port %u, MAC address: %02X:%02X:%02X:%02X:%02X:%02X\n\n",
portid,

View File

@ -2085,8 +2085,13 @@ main(int argc, char **argv)
* to itself through 2 cross-connected ports of the
* target machine.
*/
if (promiscuous_on)
rte_eth_promiscuous_enable(portid);
if (promiscuous_on) {
ret = rte_eth_promiscuous_enable(portid);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"rte_eth_promiscuous_enable: err=%s, port=%u\n",
rte_strerror(-ret), portid);
}
}
check_all_ports_link_status(enabled_port_mask);

View File

@ -2453,8 +2453,13 @@ main(int argc, char **argv)
* to itself through 2 cross-connected ports of the
* target machine.
*/
if (promiscuous_on)
rte_eth_promiscuous_enable(portid);
if (promiscuous_on) {
ret = rte_eth_promiscuous_enable(portid);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"rte_eth_promiscuous_enable: err=%s, port=%u\n",
rte_strerror(-ret), portid);
}
/* initialize spinlock for each port */
rte_spinlock_init(&(locks[portid]));
}

View File

@ -1035,8 +1035,13 @@ main(int argc, char **argv)
* to itself through 2 cross-connected ports of the
* target machine.
*/
if (promiscuous_on)
rte_eth_promiscuous_enable(portid);
if (promiscuous_on) {
ret = rte_eth_promiscuous_enable(portid);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"rte_eth_promiscuous_enable: err=%s, port=%u\n",
rte_strerror(-ret), portid);
}
}
printf("\n");

View File

@ -689,7 +689,11 @@ main(int argc, char **argv)
ret, (unsigned) portid);
printf("done:\n");
rte_eth_promiscuous_enable(portid);
ret = rte_eth_promiscuous_enable(portid);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"rte_eth_promiscuous_enable: err=%s, port=%u\n",
rte_strerror(-ret), portid);
printf("Port %u, MAC address: %02X:%02X:%02X:%02X:%02X:%02X\n\n",
(unsigned) portid,

View File

@ -440,7 +440,11 @@ app_init_nics(void)
if (ret < 0) {
rte_panic("Cannot init NIC port %u (%d)\n", port, ret);
}
rte_eth_promiscuous_enable(port);
ret = rte_eth_promiscuous_enable(port);
if (ret != 0)
rte_panic("Cannot enable promiscuous mode on port %u (%s)\n",
port, rte_strerror(-ret));
nic_rx_ring_size = app.nic_rx_ring_size;
nic_tx_ring_size = app.nic_tx_ring_size;

View File

@ -132,7 +132,9 @@ init_port(uint16_t port_num)
if (retval < 0) return retval;
}
rte_eth_promiscuous_enable(port_num);
retval = rte_eth_promiscuous_enable(port_num);
if (retval < 0)
return retval;
retval = rte_eth_dev_start(port_num);
if (retval < 0) return retval;

View File

@ -261,7 +261,9 @@ smp_port_init(uint16_t port, struct rte_mempool *mbuf_pool,
return retval;
}
rte_eth_promiscuous_enable(port);
retval = rte_eth_promiscuous_enable(port);
if (retval != 0)
return retval;
retval = rte_eth_dev_start(port);
if (retval < 0)

View File

@ -261,7 +261,11 @@ int main(int argc, char *argv[])
rte_exit(EXIT_FAILURE, "Couldn't setup port %hhu\n",
ports.p[i].id);
rte_eth_promiscuous_enable(ports.p[i].id);
err = rte_eth_promiscuous_enable(ports.p[i].id);
if (err != 0)
rte_exit(EXIT_FAILURE,
"Couldn't enable promiscuous mode on port %u: %s\n",
ports.p[i].id, rte_strerror(-err));
}
for (i = 0; i != ports.num; i++) {

View File

@ -330,7 +330,9 @@ configure_eth_port(uint16_t port_id)
addr.addr_bytes[2], addr.addr_bytes[3],
addr.addr_bytes[4], addr.addr_bytes[5]);
rte_eth_promiscuous_enable(port_id);
ret = rte_eth_promiscuous_enable(port_id);
if (ret != 0)
return ret;
return 0;
}

View File

@ -3706,8 +3706,13 @@ main(int argc, char **argv)
* to itself through 2 cross-connected ports of the
* target machine.
*/
if (promiscuous_on)
rte_eth_promiscuous_enable(portid);
if (promiscuous_on) {
ret = rte_eth_promiscuous_enable(portid);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"rte_eth_promiscuous_enable: err=%s, port=%u\n",
rte_strerror(-ret), portid);
}
}
for (i = 0; i < n_rx_thread; i++) {

View File

@ -247,7 +247,12 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
}
/* Enable RX in promiscuous mode for the Ethernet device. */
rte_eth_promiscuous_enable(port);
retval = rte_eth_promiscuous_enable(port);
if (retval != 0) {
printf("Promiscuous mode enable failed: %s\n",
rte_strerror(-retval));
return retval;
}
return 0;
}

View File

@ -439,9 +439,17 @@ main(int argc, char **argv)
if (ret < 0)
rte_exit(EXIT_FAILURE, "Port %d start error (%d)\n", port_tx, ret);
rte_eth_promiscuous_enable(port_rx);
ret = rte_eth_promiscuous_enable(port_rx);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"Port %d promiscuous mode enable error (%s)\n",
port_rx, rte_strerror(-ret));
rte_eth_promiscuous_enable(port_tx);
ret = rte_eth_promiscuous_enable(port_tx);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"Port %d promiscuous mode enable error (%s)\n",
port_rx, rte_strerror(-ret));
/* App configuration */
ret = app_configure_flow_table();

View File

@ -163,7 +163,11 @@ app_init_port(uint16_t portid, struct rte_mempool *mp)
} else {
printf(" Link Down\n");
}
rte_eth_promiscuous_enable(portid);
ret = rte_eth_promiscuous_enable(portid);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"rte_eth_promiscuous_enable: err=%s, port=%u\n",
rte_strerror(-ret), portid);
/* mark port as initialized */
app_inited_port_mask |= 1u << portid;

View File

@ -103,7 +103,11 @@ void configure_eth_port(uint16_t port_id)
(unsigned int) port_id, ret);
/* Put it in promiscuous mode */
rte_eth_promiscuous_enable(port_id);
ret = rte_eth_promiscuous_enable(port_id);
if (ret != 0)
rte_exit(EXIT_FAILURE,
"Failed to enable promiscuous mode for port %u: %s\n",
port_id, rte_strerror(-ret));
}
void

View File

@ -196,7 +196,10 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
addr.addr_bytes[2], addr.addr_bytes[3],
addr.addr_bytes[4], addr.addr_bytes[5]);
rte_eth_promiscuous_enable(port);
retval = rte_eth_promiscuous_enable(port);
if (retval != 0)
return retval;
rte_eth_add_rx_callback(port, 0, add_timestamps, NULL);
rte_eth_add_tx_callback(port, 0, calc_latency, NULL);

View File

@ -150,7 +150,9 @@ init_port(uint16_t port_num)
return retval;
}
rte_eth_promiscuous_enable(port_num);
retval = rte_eth_promiscuous_enable(port_num);
if (retval != 0)
return retval;
retval = rte_eth_dev_start(port_num);
if (retval < 0)

View File

@ -98,7 +98,9 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
addr.addr_bytes[4], addr.addr_bytes[5]);
/* Enable RX in promiscuous mode for the Ethernet device. */
rte_eth_promiscuous_enable(port);
retval = rte_eth_promiscuous_enable(port);
if (retval != 0)
return retval;
return 0;
}

View File

@ -336,8 +336,15 @@ port_init(uint16_t port)
return retval;
}
if (promiscuous)
rte_eth_promiscuous_enable(port);
if (promiscuous) {
retval = rte_eth_promiscuous_enable(port);
if (retval != 0) {
RTE_LOG(ERR, VHOST_PORT,
"Failed to enable promiscuous mode on port %u: %s\n",
port, rte_strerror(-retval));
return retval;
}
}
rte_eth_macaddr_get(port, &vmdq_ports_eth_addr[port]);
RTE_LOG(INFO, VHOST_PORT, "Max virtio devices supported: %u\n", num_devices);

View File

@ -121,7 +121,9 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
addr.addr_bytes[4], addr.addr_bytes[5]);
/* Enable RX in promiscuous mode for the Ethernet device. */
rte_eth_promiscuous_enable(port);
retval = rte_eth_promiscuous_enable(port);
if (retval != 0)
return retval;
return 0;