Re: [PATCH v2 net-next 0/3] ipv4: Hash-based multipath routing
flat view
From: Tom Herbert <hidden>
Date: 2015-08-29 20:59:08
Also in:
netdev
On Sat, Aug 29, 2015 at 1:46 PM, David Miller [off-list ref] wrote:
From: Peter Nørlund <pch-chEQUL3jiZBWk0Htik3J/w@public.gmane.org> Date: Sat, 29 Aug 2015 22:31:15 +0200quoted
On Sat, 29 Aug 2015 13:14:29 -0700 (PDT) David Miller [off-list ref] wrote:quoted
From: pch-chEQUL3jiZBWk0Htik3J/w@public.gmane.org Date: Fri, 28 Aug 2015 22:00:47 +0200quoted
When the routing cache was removed in 3.6, the IPv4 multipath algorithm changed from more or less being destination-based into being quasi-random per-packet scheduling. This increases the risk of out-of-order packets and makes it impossible to use multipath together with anycast services.Don't even try to be fancy. Simply kill the round-robin stuff off completely, and make hash based routing the one and only mode, no special configuration stuff necessary.I like the sound of that! Just to be clear - are you telling me to stick with L3 and skip the L4 part?For now it seems best to just do L3 and make ipv4 and ipv6 behave the same.
This might be simpler if we just go directly to L4 which should be better load balancing and what most switches are doing anyway. The hash comes from: 1) If a lookup includes an skb, we just need to call skb_get_hash. 2) If we have a socket and sk->sk_txhash is nonzero then use that. 3) Else compute a hash frome flowi. We don't have the exact functions for this, but they can be easily derived from __skb_get_hash_flowi4 and __skb_get_hash_flowi6 (i.e. create general get_hash_flowi4 and get_hash_flowi6 and then call these from skb functions and multipath lookup). Tom
-- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html