44 lines
1.7 KiB
Diff
44 lines
1.7 KiB
Diff
From 492856b16e0673184987e402c41a42f991853b7c Mon Sep 17 00:00:00 2001
|
|
From: Ilya Maximets <i.maximets@ovn.org>
|
|
Date: Thu, 24 Oct 2019 12:55:15 +0200
|
|
Subject: dpif-netdev: Do not mix recirculation depth into RSS hash itself.
|
|
|
|
Mixing of RSS hash with recirculation depth is useful for flow lookup
|
|
because same packet after recirculation should match with different
|
|
datapath rule. Setting of the mixed value back to the packet is
|
|
completely unnecessary because recirculation depth is different on
|
|
each recirculation, i.e. we will have different packet hash for
|
|
flow lookup anyway.
|
|
|
|
This should fix the issue that packets from the same flow could be
|
|
directed to different buckets based on a dp_hash or different ports of
|
|
a balanced bonding in case they were recirculated different number of
|
|
times (e.g. due to conntrack rules).
|
|
With this change, the original RSS hash will remain the same making
|
|
it possible to calculate equal dp_hash values for such packets.
|
|
|
|
Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2019-September/363127.html
|
|
Fixes: 048963aa8507 ("dpif-netdev: Reset RSS hash when recirculating.")
|
|
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
|
|
Acked-by: Jan Scheurich <jan.scheurich@ericsson.com>
|
|
---
|
|
lib/dpif-netdev.c | 1 -
|
|
1 file changed, 1 deletion(-)
|
|
|
|
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
|
|
index 133c9b9a4..f71deb718 100644
|
|
--- a/lib/dpif-netdev.c
|
|
+++ b/lib/dpif-netdev.c
|
|
@@ -6272,7 +6272,6 @@ dpif_netdev_packet_get_rss_hash(struct dp_packet *packet,
|
|
recirc_depth = *recirc_depth_get_unsafe();
|
|
if (OVS_UNLIKELY(recirc_depth)) {
|
|
hash = hash_finish(hash, recirc_depth);
|
|
- dp_packet_set_rss_hash(packet, hash);
|
|
}
|
|
return hash;
|
|
}
|
|
--
|
|
2.14.1
|
|
|
|
|