From 2e1141b6f16fbe41ed2da812e3a03810c5724ae7 Mon Sep 17 00:00:00 2001 From: Cristian Dumitrescu Date: Mon, 6 Aug 2018 16:24:16 +0100 Subject: [PATCH] examples/ip_pipeline: fix RSS 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 Acked-by: Fan Zhang Acked-by: Konstantin Ananyev Tested-by: Yuan Peng --- 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 2ccfea4fac..392a890fbe 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.20.1