Comment 10 for bug 1687879

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/32473
Committed: http://github.com/Juniper/contrail-controller/commit/7813ea9ef99c5dea11aecbc8ea451a3f54b13ed8
Submitter: Zuul (<email address hidden>)
Branch: R3.2

commit 7813ea9ef99c5dea11aecbc8ea451a3f54b13ed8
Author: Praveen K V <email address hidden>
Date: Fri May 26 12:12:30 2017 +0530

Add vhost ip-address to ECMP hash

In case of flows from one compute to another, the 5-tuple used to
compute hash is same on both compute nodes. At source, hash is computed
on hash of 5-tuple and a remote compute is selected based on hash.
When flow reaches destination, hash value for flow is computed on same key
and results in same value. At destination, the entropy for hash is
significantly reduced (since only flows with specific hash pattern reach
destination). This results in either skewed distribution or in some
cases flows not selecting some interfaces

Example:
Consider source has 2 member composite-nh (destined to dest-1 and dest-2).
All flows reaching dest-1 will have even-hash value and all flows reaching
dest-2 will have odd hash-value. On dest-1, the flows will only go to
even members on local composite-nh and on dest-2, the flows will only go
to odd members of local composite-nh.

Fix:
Use vhost-ip on compute node for hash computation. This will result in
diffrent hash value on source and destination. This results in better
distribution at destination.

Conflicts:
 src/vnsw/agent/pkt/test/SConscript
 src/vnsw/agent/pkt/test/test_pkt_parse.cc

Change-Id: I65e17a58fc778a1f2ce3546d03d69f8827c64d2a
Closes-Bug: #1687879