summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Maximets <i.maximets@ovn.org>2019-10-24 12:55:15 +0200
committerIlya Maximets <i.maximets@ovn.org>2019-10-28 13:36:07 +0100
commit373e3951bddf7473e545bd91a35b6719ca8c0770 (patch)
tree47e9cc99d5f2a1f66615d80653b3833cf49ca740
parent6791d2a23e2bd4d301f6a31d0140626e430778f6 (diff)
downloadopenvswitch-373e3951bddf7473e545bd91a35b6719ca8c0770.tar.gz
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>
-rw-r--r--lib/dpif-netdev.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index 203aa0468..67186320e 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -3987,7 +3987,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;
}