Thread (36 messages) read the whole thread 36 messages, 8 authors, 2017-03-21

Re: [PATCH net-next v3] net: ipv4: add support for ECMP hash policy choice

From: David Miller <davem@davemloft.net>
Date: 2017-03-15 00:24:28

From: Stephen Hemminger <stephen@networkplumber.org>
Date: Tue, 14 Mar 2017 13:25:06 -0700
On Tue, 14 Mar 2017 11:48:37 -0700 (PDT)
David Miller [off-list ref] wrote:
quoted
From: Nikolay Aleksandrov <redacted>
Date: Tue, 14 Mar 2017 17:58:46 +0200
quoted
On 14/03/17 17:55, Stephen Hemminger wrote:  
quoted
On Tue, 14 Mar 2017 17:36:15 +0200
Nikolay Aleksandrov [off-list ref] wrote:
  
quoted
This patch adds support for ECMP hash policy choice via a new sysctl
called fib_multipath_hash_policy and also adds support for L4 hashes.
The current values for fib_multipath_hash_policy are:
 0 - layer 3 (default)
 1 - layer 4
If there's an skb hash already set and it matches the chosen policy then it
will be used instead of being calculated (currently only for L4).
In L3 mode we always calculate the hash due to the ICMP error special
case, the flow dissector's field consistentification should handle the
address order thus we can remove the address reversals.

Signed-off-by: Nikolay Aleksandrov <redacted>  
It is good to see ECMP come back from the grave.
Linux used to support it long ago but was abandoned after it was unstable
and removed from iproute2 in 2012.

The old API was through route attributes which makes more sense than
doing it with sysctl. It makes more sense to use netlink instead.
Therefore please go back and do something like the old API rather than doing it through
sysctl.
  
That's what my initial version did, but this was discussed during NetConf in Seville
and it was decided that it's best to make a global sysctl, thus the change.  
Correct, we discussed this, and we all agreed to only have a sysctl for now.
Why? If you are going to have private discussions please post the rationale
in public.
The idea is that we couldn't come up with an immediate use case, and if one
came up we could easily add the per-route or per-fib-table attribute.

Most people want the entire system to behave a certain way wrt. ECMP, rather
than have fine granularity.  For example, the case being discussed here is
to simply have software's behavior match that of hardware offloads.

We shouldn't add things until there is a real demonstrated and requested need.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help