|
@@ -445,16 +445,6 @@ static bool rt6_check_expired(const struct rt6_info *rt)
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
-/* Multipath route selection:
|
|
|
- * Hash based function using packet header and flowlabel.
|
|
|
- * Adapted from fib_info_hashfn()
|
|
|
- */
|
|
|
-static int rt6_info_hash_nhsfn(unsigned int candidate_count,
|
|
|
- const struct flowi6 *fl6)
|
|
|
-{
|
|
|
- return get_hash_from_flowi6(fl6) % candidate_count;
|
|
|
-}
|
|
|
-
|
|
|
static struct rt6_info *rt6_multipath_select(struct rt6_info *match,
|
|
|
struct flowi6 *fl6, int oif,
|
|
|
int strict)
|
|
@@ -462,7 +452,7 @@ static struct rt6_info *rt6_multipath_select(struct rt6_info *match,
|
|
|
struct rt6_info *sibling, *next_sibling;
|
|
|
int route_choosen;
|
|
|
|
|
|
- route_choosen = rt6_info_hash_nhsfn(match->rt6i_nsiblings + 1, fl6);
|
|
|
+ route_choosen = get_hash_from_flowi6(fl6) % (match->rt6i_nsiblings + 1);
|
|
|
/* Don't change the route, if route_choosen == 0
|
|
|
* (siblings does not include ourself)
|
|
|
*/
|