From: David Ahern <dsahern@gmail.com>
To: netdev@vger.kernel.org
Cc: idosch@idosch.org, tom@herbertland.com, davem@davemloft.net,
roopa@cumulusnetworks.com, nikolay@cumulusnetworks.com,
David Ahern <dsahern@gmail.com>
Subject: [PATCH net-next 0/7] net/ipv6: Add support for path selection using hash of 5-tuple
Date: Wed, 21 Feb 2018 10:49:47 -0800 [thread overview]
Message-ID: <20180221184954.28875-1-dsahern@gmail.com> (raw)
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 2 patches modify the IPv4 variant so that at the end of the
patch set the ipv4 and ipv6 implementations are direct parallels.
Patch 3 refactors the existing rt6_multipath_hash in preparation for
adding the policy option.
Patch 4 renames the existing netevent to have IPv4 in the name so ipv4
changes can be distinguished from IPv6 if the netevent handler cares.
Patch 5 adds the L4 hash support.
Patch 6 adds the hook for the netevent to the spectrum driver to update
the ASIC.
Patch 7 removes no longer used code.
RFC to v1:
- rebase to top of net-next
- fix addr_type in hash_keys and removed flow label as noticed by Ido
- added a comment to cover letter about choice in algorithms based on
use case per Or's comments
David Ahern (7):
net/ipv4: Pass net to fib_multipath_hash instead of fib_info
net: Align ip_multipath_l3_keys and ip6_multipath_l3_keys
net/ipv6: Make rt6_multipath_hash similar to fib_multipath_hash
net: Rename NETEVENT_MULTIPATH_HASH_UPDATE
net/ipv6: Add support for path selection using hash of 5-tuple
mlxsw: spectrum_router: Add support for ipv6 hash policy update
net: Remove unused get_hash_from_flow functions
Documentation/networking/ip-sysctl.txt | 7 +++
.../net/ethernet/mellanox/mlxsw/spectrum_router.c | 13 ++++-
include/net/flow.h | 15 -----
include/net/ip6_route.h | 3 +-
include/net/ip_fib.h | 2 +-
include/net/netevent.h | 3 +-
include/net/netns/ipv6.h | 1 +
net/core/flow_dissector.c | 16 ------
net/ipv4/fib_semantics.c | 2 +-
net/ipv4/route.c | 25 +++++----
net/ipv4/sysctl_net_ipv4.c | 2 +-
net/ipv6/icmp.c | 2 +-
net/ipv6/route.c | 64 ++++++++++++++++++----
net/ipv6/sysctl_net_ipv6.c | 26 +++++++++
14 files changed, 118 insertions(+), 63 deletions(-)
--
2.11.0
next reply other threads:[~2018-02-21 18:50 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-21 18:49 David Ahern [this message]
2018-02-21 18:49 ` [PATCH net-next 1/7] net/ipv4: Pass net to fib_multipath_hash instead of fib_info David Ahern
2018-02-21 18:49 ` [PATCH net-next 2/7] net: Align ip_multipath_l3_keys and ip6_multipath_l3_keys David Ahern
2018-02-21 18:49 ` [PATCH net-next 3/7] net/ipv6: Make rt6_multipath_hash similar to fib_multipath_hash David Ahern
2018-02-21 18:49 ` [PATCH net-next 4/7] net: Rename NETEVENT_MULTIPATH_HASH_UPDATE David Ahern
2018-02-21 18:49 ` [PATCH net-next 5/7] net/ipv6: Add support for path selection using hash of 5-tuple David Ahern
2018-02-22 10:09 ` Ido Schimmel
2018-02-21 18:49 ` [PATCH net-next 6/7] mlxsw: spectrum_router: Add support for ipv6 hash policy update David Ahern
2018-02-21 20:26 ` Ido Schimmel
2018-02-22 12:54 ` Ido Schimmel
2018-02-23 17:09 ` kbuild test robot
2018-02-21 18:49 ` [PATCH net-next 7/7] net: Remove unused get_hash_from_flow functions David Ahern
2018-02-22 19:27 ` [PATCH net-next 0/7] net/ipv6: Add support for path selection using hash of 5-tuple David Miller
2018-02-22 19:31 ` David Ahern
2018-02-22 19:40 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180221184954.28875-1-dsahern@gmail.com \
--to=dsahern@gmail.com \
--cc=davem@davemloft.net \
--cc=idosch@idosch.org \
--cc=netdev@vger.kernel.org \
--cc=nikolay@cumulusnetworks.com \
--cc=roopa@cumulusnetworks.com \
--cc=tom@herbertland.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.