Set VMDq RSS mode if it has VF(VF number is more than 1) and has RSS 
information.

Signed-off-by: Changchun Ouyang <changchun.ouyang at intel.com>

changes in v6
  - Put common statement outside the if branch.

changes in v5
  - Assign txmode.mq_mode with ETH_MQ_TX_NONE explicitly;
  - Remove one line wrong comment.

---
 app/test-pmd/testpmd.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 8c69756..773b8af 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -1700,7 +1700,6 @@ init_port_config(void)
                        port->dev_conf.rx_adv_conf.rss_conf.rss_hf = 0;
                }

-               /* In SR-IOV mode, RSS mode is not available */
                if (port->dcb_flag == 0 && port->dev_info.max_vfs == 0) {
                        if( port->dev_conf.rx_adv_conf.rss_conf.rss_hf != 0)
                                port->dev_conf.rxmode.mq_mode = ETH_MQ_RX_RSS;
@@ -1708,6 +1707,17 @@ init_port_config(void)
                                port->dev_conf.rxmode.mq_mode = ETH_MQ_RX_NONE;
                }

+               if (port->dev_info.max_vfs != 0) {
+                       if (port->dev_conf.rx_adv_conf.rss_conf.rss_hf != 0)
+                               port->dev_conf.rxmode.mq_mode =
+                                       ETH_MQ_RX_VMDQ_RSS;
+                       else
+                               port->dev_conf.rxmode.mq_mode =
+                                       ETH_MQ_RX_NONE;
+
+                       port->dev_conf.txmode.mq_mode = ETH_MQ_TX_NONE;
+               }
+
                port->rx_conf.rx_thresh = rx_thresh;
                port->rx_conf.rx_free_thresh = rx_free_thresh;
                port->rx_conf.rx_drop_en = rx_drop_en;
-- 
1.8.4.2

Reply via email to