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 v5
  - Assign txmode.mq_mode with ETH_MQ_TX_NONE explicitly;
  - Remove one line wrong comment.

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

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 8c69756..64fd4ee 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,20 @@ 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;
+                               port->dev_conf.txmode.mq_mode =
+                                       ETH_MQ_TX_NONE;
+                       } 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