On Fri, Mar 02, 2018 at 08:32:11AM -0800, David Ahern wrote: > Hardware supports multipath selection using the standard L4 5-tuple > instead of just L3 and the flow label. In addition, some network > operators prefer IPv6 path selection to use the 5-tuple. To that end, > add support to IPv6 for multipath hash policy similar to > bf4e0a3db97eb ("net: ipv4: add support for ECMP hash policy choice"). > The default is still L3 which covers source and destination addresses > along with flow label and IPv6 protocol. This gives users a choice in > hash algorithms if they believe L3 only and the IPv6 flow label are not > sufficient for their use case. > > A separate sysctl is added for IPv6, allowing IPv4 and IPv6 to use > different algorithms if desired. > > The first 3 patches modify the IPv4 variant so that at the end of the > patch set the ipv4 and ipv6 implementations are direct parallels. > > Patch 4 refactors the existing rt6_multipath_hash in preparation for > adding the policy option. > > Patch 5 renames the existing netevent to have IPv4 in the name so ipv4 > changes can be distinguished from IPv6 if the netevent handler cares. > > Patch 6 adds the skb as an argument through the FIB lookup functions > to the multipath selection. Needed for the forwarding case. > > Patch 7 adds the L4 hash support. > > Patch 8 adds the hook for the netevent to the spectrum driver to update > the ASIC. > > Patch 9 removes no longer used code. > > Patch 10 adds a testcase for IPv6 multipath with L4 hash.
David, Great work. Thanks a lot!