[v2] examples/ip_pipeline: fix RSS

Message ID 1533569056-90492-1-git-send-email-cristian.dumitrescu@intel.com (mailing list archive)
State Accepted, archived
Headers
Series [v2] examples/ip_pipeline: fix RSS |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Cristian Dumitrescu Aug. 6, 2018, 3:24 p.m. UTC
  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@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Tested-by: Peng, Yuan <yuan.peng@intel.com>
---
 examples/ip_pipeline/link.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
  

Comments

Thomas Monjalon Aug. 7, 2018, 9:18 p.m. UTC | #1
06/08/2018 17:24, Cristian Dumitrescu:
> 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@intel.com>
> Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> Tested-by: Peng, Yuan <yuan.peng@intel.com>

Applied, thanks
  

Patch

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);