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 <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>
This commit is contained in:
Cristian Dumitrescu 2018-08-06 16:24:16 +01:00 committed by Thomas Monjalon
parent 4278f8df47
commit 2e1141b6f1

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