When part of the RSS hash calculation, UDP packets are discarded (not
received on any queue) likely due to an issue with the kernel
implementation.

Temporarily disable UDP RSS support until this issue is resolved.

Signed-off-by: Adrien Mazarguil <adrien.mazarg...@6wind.com>
Acked-by: Nelio Laranjeiro <nelio.laranje...@6wind.com>
---
 drivers/net/mlx4/mlx4_flow.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c
index 101f245..41b7a4c 100644
--- a/drivers/net/mlx4/mlx4_flow.c
+++ b/drivers/net/mlx4/mlx4_flow.c
@@ -133,9 +133,11 @@ mlx4_conv_rss_hf(uint64_t rss_hf)
                [TCP] = (ETH_RSS_NONFRAG_IPV4_TCP |
                         ETH_RSS_NONFRAG_IPV6_TCP |
                         ETH_RSS_IPV6_TCP_EX),
-               [UDP] = (ETH_RSS_NONFRAG_IPV4_UDP |
-                        ETH_RSS_NONFRAG_IPV6_UDP |
-                        ETH_RSS_IPV6_UDP_EX),
+               /*
+                * UDP support is temporarily disabled due to an
+                * implementation issue in the kernel.
+                */
+               [UDP] = 0,
        };
        const uint64_t out[RTE_DIM(in)] = {
                [IPV4] = IBV_RX_HASH_SRC_IPV4 | IBV_RX_HASH_DST_IPV4,
@@ -753,10 +755,8 @@ mlx4_flow_prepare(struct priv *priv,
                                        .rss_key = mlx4_rss_hash_key_default,
                                        .rss_key_len = MLX4_RSS_HASH_KEY_SIZE,
                                        .rss_hf = (ETH_RSS_IPV4 |
-                                                  ETH_RSS_NONFRAG_IPV4_UDP |
                                                   ETH_RSS_NONFRAG_IPV4_TCP |
                                                   ETH_RSS_IPV6 |
-                                                  ETH_RSS_NONFRAG_IPV6_UDP |
                                                   ETH_RSS_NONFRAG_IPV6_TCP),
                                };
                        /* Sanity checks. */
-- 
2.1.4

Reply via email to