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;

Reply via email to