ソースを参照

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>
David S. Miller 7 年 前
コミット
a925ab48da
3 ファイル変更3 行追加8 行削除
  1. 0 5
      include/net/ipv6.h
  2. 1 1
      net/core/flow_dissector.c
  3. 2 2
      net/ipv6/route.c

+ 0 - 5
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
  */

+ 1 - 1
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);

+ 2 - 2
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;