aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2018-06-04 13:20:38 -0400
committerDavid S. Miller <davem@davemloft.net>2018-06-04 13:20:38 -0400
commita925ab48dacbc9ad470a9ca4c761601ee07e476c (patch)
treec8bfcc98ea5d60284cbfcb906924685834413646
parent87ae68c8b4944d142447b88875c9c412c714434f (diff)
download96b-common-a925ab48dacbc9ad470a9ca4c761601ee07e476c.tar.gz
Revert "ipv6: omit traffic class when calculating flow hash"
This reverts commit 87ae68c8b4944d142447b88875c9c412c714434f. Applied the wrong version of this fix, correct version coming up. Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/net/ipv6.h5
-rw-r--r--net/core/flow_dissector.c2
-rw-r--r--net/ipv6/route.c4
3 files changed, 3 insertions, 8 deletions
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 6dcc473fbe51..798558fd1681 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -907,11 +907,6 @@ static inline __be32 ip6_make_flowinfo(unsigned int tclass, __be32 flowlabel)
return htonl(tclass << IPV6_TCLASS_SHIFT) | flowlabel;
}
-static inline u32 flowi6_get_flowlabel(const struct flowi6 *fl6)
-{
- return (__force u32)(fl6->flowlabel & IPV6_FLOWLABEL_MASK);
-}
-
/*
* Prototypes exported by ipv6
*/
diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
index 6497b815e7a2..4fc1e84d77ec 100644
--- a/net/core/flow_dissector.c
+++ b/net/core/flow_dissector.c
@@ -1334,7 +1334,7 @@ __u32 __get_hash_from_flowi6(const struct flowi6 *fl6, struct flow_keys *keys)
keys->ports.src = fl6->fl6_sport;
keys->ports.dst = fl6->fl6_dport;
keys->keyid.keyid = fl6->fl6_gre_key;
- keys->tags.flow_label = flowi6_get_flowlabel(fl6);
+ keys->tags.flow_label = (__force u32)fl6->flowlabel;
keys->basic.ip_proto = fl6->flowi6_proto;
return flow_hash_from_keys(keys);
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 06593781b59a..22c4de2317d0 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1981,7 +1981,7 @@ out:
} else {
keys->addrs.v6addrs.src = key_iph->saddr;
keys->addrs.v6addrs.dst = key_iph->daddr;
- keys->tags.flow_label = ip6_flowlabel(key_iph);
+ keys->tags.flow_label = ip6_flowinfo(key_iph);
keys->basic.ip_proto = key_iph->nexthdr;
}
}
@@ -2002,7 +2002,7 @@ u32 rt6_multipath_hash(const struct net *net, const struct flowi6 *fl6,
} else {
hash_keys.addrs.v6addrs.src = fl6->saddr;
hash_keys.addrs.v6addrs.dst = fl6->daddr;
- hash_keys.tags.flow_label = flowi6_get_flowlabel(fl6);
+ hash_keys.tags.flow_label = (__force u32)fl6->flowlabel;
hash_keys.basic.ip_proto = fl6->flowi6_proto;
}
break;