ipv6: Calculate multipath hash inside switch statement
A subsequent patch will add another multipath hash policy where the multipath hash is calculated directly by the policy specific code and not outside of the switch statement. Prepare for this change by moving the multipath hash calculation inside the switch statement. No functional changes intended. Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: David Ahern <dsahern@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
67db5ca73b
commit
b95b6e072a
|
@ -2331,7 +2331,7 @@ u32 rt6_multipath_hash(const struct net *net, const struct flowi6 *fl6,
|
|||
const struct sk_buff *skb, struct flow_keys *flkeys)
|
||||
{
|
||||
struct flow_keys hash_keys;
|
||||
u32 mhash;
|
||||
u32 mhash = 0;
|
||||
|
||||
switch (ip6_multipath_hash_policy(net)) {
|
||||
case 0:
|
||||
|
@ -2345,6 +2345,7 @@ u32 rt6_multipath_hash(const struct net *net, const struct flowi6 *fl6,
|
|||
hash_keys.tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6);
|
||||
hash_keys.basic.ip_proto = fl6->flowi6_proto;
|
||||
}
|
||||
mhash = flow_hash_from_keys(&hash_keys);
|
||||
break;
|
||||
case 1:
|
||||
if (skb) {
|
||||
|
@ -2376,6 +2377,7 @@ u32 rt6_multipath_hash(const struct net *net, const struct flowi6 *fl6,
|
|||
hash_keys.ports.dst = fl6->fl6_dport;
|
||||
hash_keys.basic.ip_proto = fl6->flowi6_proto;
|
||||
}
|
||||
mhash = flow_hash_from_keys(&hash_keys);
|
||||
break;
|
||||
case 2:
|
||||
memset(&hash_keys, 0, sizeof(hash_keys));
|
||||
|
@ -2412,9 +2414,9 @@ u32 rt6_multipath_hash(const struct net *net, const struct flowi6 *fl6,
|
|||
hash_keys.tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6);
|
||||
hash_keys.basic.ip_proto = fl6->flowi6_proto;
|
||||
}
|
||||
mhash = flow_hash_from_keys(&hash_keys);
|
||||
break;
|
||||
}
|
||||
mhash = flow_hash_from_keys(&hash_keys);
|
||||
|
||||
return mhash >> 1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue