The symmetric_mp example app is set up to allow two processes to
share a NIC port, with each pulling packets from one queue. In order
to have the app continue working when one of the process dies, the
drop_en bit should be set in the NIC configuration. Without this bit
set, the NIC will stall once any queue fills. With the bit set, once
a queue fills, all subsequent packets for that queue are discarded
allowing other queues to continue operating as normal.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
}
};
const uint16_t rx_rings = num_queues, tx_rings = num_queues;
+ struct rte_eth_dev_info info;
int retval;
uint16_t q;
printf("# Initialising port %u... ", (unsigned)port);
fflush(stdout);
+ rte_eth_dev_info_get(port, &info);
+ info.default_rxconf.rx_drop_en = 1;
+
retval = rte_eth_dev_configure(port, rx_rings, tx_rings, &port_conf);
if (retval < 0)
return retval;
for (q = 0; q < rx_rings; q ++) {
retval = rte_eth_rx_queue_setup(port, q, RX_RING_SIZE,
rte_eth_dev_socket_id(port),
- NULL,
+ &info.default_rxconf,
mbuf_pool);
if (retval < 0)
return retval;