]> git.droids-corp.org - dpdk.git/commitdiff
examples/ip_pipeline: fix RSS
authorCristian Dumitrescu <cristian.dumitrescu@intel.com>
Mon, 6 Aug 2018 15:24:16 +0000 (16:24 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 7 Aug 2018 21:19:02 +0000 (23:19 +0200)
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: Yuan Peng <yuan.peng@intel.com>
examples/ip_pipeline/link.c

index 2ccfea4fac05c839dbebd5bd2c1be0c12ab43fb0..392a890fbe7122bdfac0c5c9f17a7e07470ef934 100644 (file)
@@ -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);