From: Matias Elo <matias....@nokia.com> The RSS functionality is limited to max 16 queues on devices using ixgbe driver even though dpdk rte_eth_dev_info may return a larger value.
Signed-off-by: Matias Elo <matias....@nokia.com> Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org> --- /** Email created from pull request 301 (muvarov:api-next) ** https://github.com/Linaro/odp/pull/301 ** Patch: https://github.com/Linaro/odp/pull/301.patch ** Base sha: d4b364849c4abb4c71e0c5260e1a793ebb8dc97d ** Merge commit sha: 36cef9760e8883bbd6641af08c7d0ecdac085e79 **/ platform/linux-generic/pktio/dpdk.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/platform/linux-generic/pktio/dpdk.c b/platform/linux-generic/pktio/dpdk.c index 3684ca5cd..d7e9fcd4f 100644 --- a/platform/linux-generic/pktio/dpdk.c +++ b/platform/linux-generic/pktio/dpdk.c @@ -1135,6 +1135,13 @@ static void dpdk_init_capability(pktio_entry_t *pktio_entry, rte_eth_dev_info_get(pkt_dpdk->port_id, dev_info); capa->max_input_queues = RTE_MIN(dev_info->max_rx_queues, PKTIO_MAX_QUEUES); + + /* ixgbe devices support only 16 rx queues in RSS mode */ + if (!strncmp(dev_info->driver_name, IXGBE_DRV_NAME, + strlen(IXGBE_DRV_NAME))) + capa->max_input_queues = RTE_MIN((unsigned)16, + capa->max_input_queues); + capa->max_output_queues = RTE_MIN(dev_info->max_tx_queues, PKTIO_MAX_QUEUES); capa->set_op.op.promisc_mode = 1;