From: David Ahern <dsahern@gmail.com>
To: netdev@vger.kernel.org
Cc: roopa@cumulusnetworks.com, nikolay@cumulusnetworks.com,
idosch@mellanox.com, David Ahern <dsahern@gmail.com>
Subject: [PATCH RFC net-next 3/7] net/ipv6: Make rt6_multipath_hash similar to fib_multipath_hash
Date: Mon, 12 Feb 2018 16:05:58 -0800 [thread overview]
Message-ID: <20180213000602.12150-4-dsahern@gmail.com> (raw)
In-Reply-To: <20180213000602.12150-1-dsahern@gmail.com>
Make rt6_multipath_hash more of a direct parallel to fib_multipath_hash
and reduce stack and overhead in the process: get_hash_from_flowi6 is
just a wrapper around __get_hash_from_flowi6 with another stack
allocation for flow_keys. Move setting the addresses, protocol and
label into rt6_multipath_hash and allow it to make the call to
flow_hash_from_keys.
Signed-off-by: David Ahern <dsahern@gmail.com>
---
net/ipv6/route.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index baef18635f96..8d3a95eed662 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1822,15 +1822,21 @@ static void ip6_multipath_l3_keys(const struct sk_buff *skb,
u32 rt6_multipath_hash(const struct flowi6 *fl6, const struct sk_buff *skb)
{
struct flow_keys hash_keys;
+ u32 mhash;
+ memset(&hash_keys, 0, sizeof(hash_keys));
+ hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
if (skb) {
- memset(&hash_keys, 0, sizeof(hash_keys));
- hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
ip6_multipath_l3_keys(skb, &hash_keys);
- return flow_hash_from_keys(&hash_keys) >> 1;
+ } else {
+ hash_keys.addrs.v6addrs.src = fl6->saddr;
+ hash_keys.addrs.v6addrs.dst = fl6->daddr;
+ hash_keys.tags.flow_label = (__force u32)fl6->flowlabel;
+ hash_keys.basic.ip_proto = fl6->flowi6_proto;
}
+ mhash = flow_hash_from_keys(&hash_keys);
- return get_hash_from_flowi6(fl6) >> 1;
+ return mhash >> 1;
}
void ip6_route_input(struct sk_buff *skb)
--
2.11.0
next prev parent reply other threads:[~2018-02-13 0:06 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-13 0:05 [PATCH RFC net-next 0/7] net/ipv6: Add support for path selection using hash of 5-tuple David Ahern
2018-02-13 0:05 ` [PATCH RFC net-next 1/7] net/ipv4: Pass net to fib_multipath_hash instead of fib_info David Ahern
2018-02-13 0:05 ` [PATCH RFC net-next 2/7] net: Align ip_multipath_l3_keys and ip6_multipath_l3_keys David Ahern
2018-02-13 0:05 ` David Ahern [this message]
2018-02-13 0:05 ` [PATCH RFC net-next 4/7] net: Rename NETEVENT_MULTIPATH_HASH_UPDATE David Ahern
2018-02-13 0:06 ` [PATCH RFC net-next 5/7] net/ipv6: Add support for path selection using hash of 5-tuple David Ahern
2018-02-13 20:31 ` Nicolas Dichtel
2018-02-13 20:35 ` David Ahern
2018-02-13 20:59 ` Nicolas Dichtel
2018-02-13 21:02 ` David Ahern
2018-02-13 21:21 ` Nicolas Dichtel
2018-02-21 16:22 ` Ido Schimmel
2018-02-21 17:54 ` David Ahern
2018-02-13 0:06 ` [PATCH RFC net-next 6/7] mlxsw: spectrum_router: Add support for ipv6 hash policy update David Ahern
2018-02-13 0:06 ` [PATCH RFC net-next 7/7] net: Remove unused get_hash_from_flow functions David Ahern
2018-02-13 11:03 ` [PATCH RFC net-next 0/7] net/ipv6: Add support for path selection using hash of 5-tuple Or Gerlitz
2018-02-13 12:42 ` Ido Schimmel
2018-02-13 13:16 ` Or Gerlitz
2018-02-14 22:45 ` Or Gerlitz
2018-02-13 15:21 ` David Ahern
2018-02-14 22:45 ` Or Gerlitz
2018-02-14 22:56 ` David Ahern
2018-02-18 10:40 ` Or Gerlitz
2018-02-13 12:32 ` Ido Schimmel
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=20180213000602.12150-4-dsahern@gmail.com \
--to=dsahern@gmail.com \
--cc=idosch@mellanox.com \
--cc=netdev@vger.kernel.org \
--cc=nikolay@cumulusnetworks.com \
--cc=roopa@cumulusnetworks.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.