From: Tom Herbert <tom@herbertland.com>
To: <davem@davemloft.net>, <netdev@vger.kernel.org>
Cc: <tgraf@suug.ch>, <roopa@cumulusnetworks.com>, <kernel-team@fb.com>
Subject: [PATCH net-next 0/7] net: ILA resolver and generic resolver backend
Date: Wed, 14 Sep 2016 16:22:49 -0700 [thread overview]
Message-ID: <1473895376-347096-1-git-send-email-tom@herbertland.com> (raw)
This patch set implements an ILA host side resolver. This uses LWT to
implement the hook to a userspace resolver and tracks pending unresolved
address using the backend net resolver.
This patch set contains:
- An new library function to allocate an array of spinlocks for use
with locking hash buckets.
- Make hash function in rhashtable directly callable.
- A generic resolver backend infrastructure. This primary does two
things: track unsesolved addresses and implement a timeout for
resolution not happening. These mechanisms provides rate limiting
control over resolution requests (for instance in ILA it use used
to rate limit requests to userspace to resolve addresses).
- The ILA resolver. This is implements to path from the kernel ILA
implementation to a userspace daemon that an identifier address
needs to be resolved.
- Routing messages are used over netlink to indicate resoltion
requests.
Changes from intial RFC:
- Added net argument to LWT build_state
- Made resolve timeout an attribute of the LWT encap route
- Changed ILA notifications to be regular routing messages of event
RTM_ADDR_RESOLVE, family RTNL_FAMILY_ILA, and group
RTNLGRP_ILA_NOTIFY
Tested:
- Ran a UDP flood to random addresses in a resolver prefix. Observed
timeout and limits were working (watching "ip monitor").
- Also ran against an ILA client daemon that runs the resolver
protocol. Observed that when resolution completes (ILA encap route is
installed) routing messages are no longer sent.
Tom Herbert (7):
lwt: Add net to build_state argument
spinlock: Add library function to allocate spinlock buckets array
rhashtable: Call library function alloc_bucket_locks
ila: Call library function alloc_bucket_locks
rhashtable: abstract out function to get hash
net: Generic resolver backend
ila: Resolver mechanism
include/linux/rhashtable.h | 28 +++--
include/linux/spinlock.h | 6 +
include/net/lwtunnel.h | 10 +-
include/net/resolver.h | 58 +++++++++
include/uapi/linux/ila.h | 9 ++
include/uapi/linux/lwtunnel.h | 1 +
include/uapi/linux/rtnetlink.h | 8 +-
lib/Makefile | 2 +-
lib/bucket_locks.c | 63 ++++++++++
lib/rhashtable.c | 46 +------
net/Kconfig | 4 +
net/core/Makefile | 1 +
net/core/lwtunnel.c | 11 +-
net/core/resolver.c | 268 +++++++++++++++++++++++++++++++++++++++++
net/ipv4/fib_semantics.c | 7 +-
net/ipv4/ip_tunnel_core.c | 12 +-
net/ipv6/Kconfig | 1 +
net/ipv6/ila/Makefile | 2 +-
net/ipv6/ila/ila.h | 16 +++
net/ipv6/ila/ila_common.c | 7 ++
net/ipv6/ila/ila_lwt.c | 15 ++-
net/ipv6/ila/ila_resolver.c | 246 +++++++++++++++++++++++++++++++++++++
net/ipv6/ila/ila_xlat.c | 51 ++------
net/ipv6/route.c | 2 +-
net/mpls/mpls_iptunnel.c | 6 +-
25 files changed, 761 insertions(+), 119 deletions(-)
create mode 100644 include/net/resolver.h
create mode 100644 lib/bucket_locks.c
create mode 100644 net/core/resolver.c
create mode 100644 net/ipv6/ila/ila_resolver.c
--
2.8.0.rc2
next reply other threads:[~2016-09-14 23:23 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-14 23:22 Tom Herbert [this message]
2016-09-14 23:22 ` [PATCH net-next 1/7] lwt: Add net to build_state argument Tom Herbert
2016-09-14 23:56 ` kbuild test robot
2016-09-15 0:17 ` kbuild test robot
2016-09-15 0:42 ` kbuild test robot
2016-09-15 17:17 ` Roopa Prabhu
2016-09-14 23:22 ` [PATCH net-next 2/7] spinlock: Add library function to allocate spinlock buckets array Tom Herbert
2016-09-14 23:22 ` [PATCH net-next 3/7] rhashtable: Call library function alloc_bucket_locks Tom Herbert
2016-09-20 9:29 ` Herbert Xu
2016-09-14 23:22 ` [PATCH net-next 4/7] ila: " Tom Herbert
2016-09-14 23:22 ` [PATCH net-next 5/7] rhashtable: abstract out function to get hash Tom Herbert
2016-09-20 9:36 ` Herbert Xu
2016-09-20 17:58 ` Thomas Graf
2016-09-21 2:46 ` Herbert Xu
2016-09-21 3:17 ` Tom Herbert
2016-09-14 23:22 ` [PATCH net-next 6/7] net: Generic resolver backend Tom Herbert
2016-09-20 9:40 ` Herbert Xu
2016-09-14 23:22 ` [PATCH net-next 7/7] ila: Resolver mechanism Tom Herbert
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=1473895376-347096-1-git-send-email-tom@herbertland.com \
--to=tom@herbertland.com \
--cc=davem@davemloft.net \
--cc=kernel-team@fb.com \
--cc=netdev@vger.kernel.org \
--cc=roopa@cumulusnetworks.com \
--cc=tgraf@suug.ch \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).