summaryrefslogtreecommitdiffstats
path: root/src/vnet/ip/ip6_inlines.h
diff options
context:
space:
mode:
authorAhmed Abdelsalam <ahabdels@cisco.com>2020-11-20 18:56:09 +0000
committerOle Tr�an <otroan@employees.org>2021-01-21 10:59:46 +0000
commitf2984bbb013acb0d6872e8fbb2f9d57d3e4f49b9 (patch)
tree2b53a21de615e7f6fabcf96e2b15e7070adc1736 /src/vnet/ip/ip6_inlines.h
parent03fabbd22215d306fb66c51f952480631d67c9dc (diff)
ip: use IPv6 flowlabel in flow hash computation
extends ip6_compute_flow_hash() to include IPv6 flowlabel in flowhash computation Type: improvement Signed-off-by: Ahmed Abdelsalam <ahabdels@cisco.com> Signed-off-by: Neale Ranns <neale.ranns@cisco.com> Change-Id: Id1aaa20c9dac729c22b714eea1cdd6e9e4d1f75e
Diffstat (limited to 'src/vnet/ip/ip6_inlines.h')
-rw-r--r--src/vnet/ip/ip6_inlines.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/vnet/ip/ip6_inlines.h b/src/vnet/ip/ip6_inlines.h
index ae7b7a1761b..8376377600a 100644
--- a/src/vnet/ip/ip6_inlines.h
+++ b/src/vnet/ip/ip6_inlines.h
@@ -108,6 +108,8 @@ ip6_compute_flow_hash (const ip6_header_t * ip,
b ^= (flow_hash_config & IP_FLOW_HASH_PROTO) ? protocol : 0;
c = (flow_hash_config & IP_FLOW_HASH_REVERSE_SRC_DST) ?
((t1 << 16) | t2) : ((t2 << 16) | t1);
+ t1 = ip->ip_version_traffic_class_and_flow_label & IP6_PACKET_FL_MASK;
+ c ^= (flow_hash_config & IP_FLOW_HASH_FL) ? (t1 << 32) : 0;
hash_mix64 (a, b, c);
return (u32) c;