From 1c839246f934340e8dfb8fd71bc436f81541a587 Mon Sep 17 00:00:00 2001 From: Wenwu Ma Date: Tue, 22 Feb 2022 10:51:27 +0000 Subject: [PATCH] examples/multi_process: make RSS and checksum optional The default values of rx mq_mode and rx offloads for port will cause symmetric_mp startup failure if the port do not support rss or csum. This patch makes the app to reconfigure the NIC without them. Only quit the app if the second reconfiguration fails. Signed-off-by: Wenwu Ma Acked-by: Bruce Richardson Tested-by: Wei Ling --- examples/multi_process/symmetric_mp/main.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c index 050337765f..75237dee6e 100644 --- a/examples/multi_process/symmetric_mp/main.c +++ b/examples/multi_process/symmetric_mp/main.c @@ -232,6 +232,20 @@ smp_port_init(uint16_t port, struct rte_mempool *mbuf_pool, } retval = rte_eth_dev_configure(port, rx_rings, tx_rings, &port_conf); + if (retval == -EINVAL) { + printf("Port %u configuration failed. Re-attempting with HW checksum disabled.\n", + port); + port_conf.rxmode.offloads &= ~(RTE_ETH_RX_OFFLOAD_CHECKSUM); + retval = rte_eth_dev_configure(port, rx_rings, tx_rings, &port_conf); + } + + if (retval == -ENOTSUP) { + printf("Port %u configuration failed. Re-attempting with HW RSS disabled.\n", + port); + port_conf.rxmode.mq_mode &= ~(RTE_ETH_MQ_RX_RSS); + retval = rte_eth_dev_configure(port, rx_rings, tx_rings, &port_conf); + } + if (retval < 0) return retval; -- 2.39.5