summaryrefslogtreecommitdiffstats
path: root/src/plugins/dpdk/device/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/dpdk/device/init.c')
-rw-r--r--src/plugins/dpdk/device/init.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c
index 5dd15ab3c98..9b14c1a9d4f 100644
--- a/src/plugins/dpdk/device/init.c
+++ b/src/plugins/dpdk/device/init.c
@@ -387,7 +387,17 @@ dpdk_lib_init (dpdk_main_t * dm)
xd->port_conf.rx_adv_conf.rss_conf.rss_hf =
ETH_RSS_IP | ETH_RSS_UDP | ETH_RSS_TCP;
else
- xd->port_conf.rx_adv_conf.rss_conf.rss_hf = devconf->rss_fn;
+ {
+ u64 unsupported_bits;
+ xd->port_conf.rx_adv_conf.rss_conf.rss_hf = devconf->rss_fn;
+ unsupported_bits = xd->port_conf.rx_adv_conf.rss_conf.rss_hf;
+ unsupported_bits &= ~dev_info.flow_type_rss_offloads;
+ if (unsupported_bits)
+ dpdk_log_warn ("Unsupported RSS hash functions: %U",
+ format_dpdk_rss_hf_name, unsupported_bits);
+ }
+ xd->port_conf.rx_adv_conf.rss_conf.rss_hf &=
+ dev_info.flow_type_rss_offloads;
}
else
xd->rx_q_used = 1;