[dpdk-dev] [PATCH v2] examples/ip_pipeline: fix RSS

Cristian Dumitrescu cristian.dumitrescu at intel.com
Mon Aug 6 17:24:16 CEST 2018


After adding RSS hash offload checks, flags that are not supported by
the current device result in RSS configuration failing as opposed to
unsupported flags being silently discarded. This fix is making sure
that only device supported flags are passed to RSS configuration.

Fixes: aa1a6d87f15d ("ethdev: force RSS offload rules again")

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu at intel.com>
Acked-by: Fan Zhang <roy.fan.zhang at intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com>
Tested-by: Peng, Yuan <yuan.peng at intel.com>
---
 examples/ip_pipeline/link.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/examples/ip_pipeline/link.c b/examples/ip_pipeline/link.c
index 2ccfea4..392a890 100644
--- a/examples/ip_pipeline/link.c
+++ b/examples/ip_pipeline/link.c
@@ -158,12 +158,9 @@ link_create(const char *name, struct link_params *params)
 	memcpy(&port_conf, &port_conf_default, sizeof(port_conf));
 	if (rss) {
 		port_conf.rxmode.mq_mode = ETH_MQ_RX_RSS;
-		if (port_info.flow_type_rss_offloads & ETH_RSS_IPV4)
-			port_conf.rx_adv_conf.rss_conf.rss_hf |=
-				ETH_RSS_IPV4;
-		if (port_info.flow_type_rss_offloads & ETH_RSS_IPV6)
-			port_conf.rx_adv_conf.rss_conf.rss_hf |=
-				ETH_RSS_IPV6;
+		port_conf.rx_adv_conf.rss_conf.rss_hf =
+			(ETH_RSS_IP | ETH_RSS_TCP | ETH_RSS_UDP) &
+			port_info.flow_type_rss_offloads;
 	}
 
 	cpu_id = (uint32_t) rte_eth_dev_socket_id(port_id);
-- 
2.7.4



More information about the dev mailing list