The --rss-udp option is documented as enabling IPv4/IPv6 + UDP RSS, but it
currently sets the RSS hash functions to RTE_ETH_RSS_UDP only.

On PMDs that translate this directly to L4 port extracts, this can build a
L4-only RSS key. Add RTE_ETH_RSS_IP when --rss-udp is selected so the
configured key matches the documented IPv4/IPv6 + UDP behavior.

Make --rss-ip additive as well, so combining --rss-ip and --rss-udp is
order-independent.

Fixes: 8a387fa85f02 ("ethdev: more RSS flags")
Cc: [email protected]
Signed-off-by: Maxime Leroy <[email protected]>
---
 app/test-pmd/parameters.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c
index 337d8fc8ac..0032ea4e25 100644
--- a/app/test-pmd/parameters.c
+++ b/app/test-pmd/parameters.c
@@ -1286,10 +1286,10 @@ launch_args_parse(int argc, char** argv)
                        set_pkt_forwarding_mode(optarg);
                        break;
                case TESTPMD_OPT_RSS_IP_NUM:
-                       rss_hf = RTE_ETH_RSS_IP;
+                       rss_hf |= RTE_ETH_RSS_IP;
                        break;
                case TESTPMD_OPT_RSS_UDP_NUM:
-                       rss_hf = RTE_ETH_RSS_UDP;
+                       rss_hf |= RTE_ETH_RSS_IP | RTE_ETH_RSS_UDP;
                        break;
                case TESTPMD_OPT_RSS_LEVEL_INNER_NUM:
                        rss_hf |= RTE_ETH_RSS_LEVEL_INNERMOST;
-- 
2.43.0

Reply via email to