On 11/11/2019 1:19 PM, pbhagavat...@marvell.com wrote: > diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c > b/drivers/net/ixgbe/ixgbe_ethdev.c > index 30c0379d4..8c1caac18 100644 > --- a/drivers/net/ixgbe/ixgbe_ethdev.c > +++ b/drivers/net/ixgbe/ixgbe_ethdev.c > @@ -2402,6 +2402,9 @@ ixgbe_dev_configure(struct rte_eth_dev *dev) > int ret; > > PMD_INIT_FUNC_TRACE(); > + > + dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_RSS_HASH; > +
Hi Pavan, Andrew, Jerin, This is causing trouble when device is re-configured with its existing data, because of the check in the ethdev [1]. This is for the case device configuration get, a few thing changed and re-configured case, this is what is done in bonding and it is failing now. Do you have any suggestion for the solution? We can set this offload in PMDs only if 'ETH_MQ_RX_RSS_FLAG' set but same thing still can caught us, if the initial configuration was with 'ETH_MQ_RX_RSS_FLAG' but reconfigure is not. Or we can relax the check in 'rte_eth_dev_configure()' to log but not return error? [1] @@ -1305,6 +1306,17 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q, goto rollback; } + /* Check if Rx RSS distribution is disabled but RSS hash is enabled. */ + if (((dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) == 0) && + (dev_conf->rxmode.offloads & DEV_RX_OFFLOAD_RSS_HASH)) { + RTE_ETHDEV_LOG(ERR, + "Ethdev port_id=%u config invalid Rx mq_mode without RSS but %s offload is requested", + port_id, + rte_eth_dev_rx_offload_name(DEV_RX_OFFLOAD_RSS_HASH)); + ret = -EINVAL; + goto rollback; + }