On Sat, Aug 29, 2015 at 1:46 PM, David Miller <davem@xxxxxxxxxxxxx> wrote: > From: Peter Nørlund <pch@xxxxxxxxxxxx> > Date: Sat, 29 Aug 2015 22:31:15 +0200 > >> On Sat, 29 Aug 2015 13:14:29 -0700 (PDT) >> David Miller <davem@xxxxxxxxxxxxx> wrote: >> >>> From: pch@xxxxxxxxxxxx >>> Date: Fri, 28 Aug 2015 22:00:47 +0200 >>> >>> > 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@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html