From: Tom Herbert <tom@herbertland.com>
To: <davem@davemloft.net>, <netdev@vger.kernel.org>
Cc: <kernel-team@fb.com>, <tgraf@suug.ch>
Subject: [PATCH RFC 0/6] net: ILA resolver and generic resolver backend
Date: Fri, 9 Sep 2016 16:19:51 -0700 [thread overview]
Message-ID: <1473463197-3076903-1-git-send-email-tom@herbertland.com> (raw)
This patch sets 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.
Tom Herbert (6):
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/resolver.h | 58 +++++++++
include/uapi/linux/lwtunnel.h | 1 +
include/uapi/linux/rtnetlink.h | 5 +
lib/Makefile | 2 +-
lib/bucket_locks.c | 63 ++++++++++
lib/rhashtable.c | 46 +------
net/Kconfig | 4 +
net/core/Makefile | 1 +
net/core/resolver.c | 267 +++++++++++++++++++++++++++++++++++++++++
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 | 9 ++
net/ipv6/ila/ila_resolver.c | 192 +++++++++++++++++++++++++++++
net/ipv6/ila/ila_xlat.c | 51 ++------
18 files changed, 666 insertions(+), 93 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-09 23:20 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-09 23:19 Tom Herbert [this message]
2016-09-09 23:19 ` [PATCH RFC 1/6] spinlock: Add library function to allocate spinlock buckets array Tom Herbert
2016-09-12 15:17 ` Greg
2016-09-14 9:27 ` Thomas Graf
2016-09-09 23:19 ` [PATCH RFC 2/6] rhashtable: Call library function alloc_bucket_locks Tom Herbert
2016-09-14 9:18 ` Thomas Graf
2016-09-20 1:49 ` Herbert Xu
2016-09-09 23:19 ` [PATCH RFC 3/6] ila: " Tom Herbert
2016-09-09 23:19 ` [PATCH RFC 4/6] rhashtable: abstract out function to get hash Tom Herbert
2016-09-14 9:23 ` Thomas Graf
2016-09-09 23:19 ` [PATCH RFC 5/6] net: Generic resolver backend Tom Herbert
2016-09-14 9:49 ` Thomas Graf
2016-09-14 19:56 ` Tom Herbert
2016-09-09 23:19 ` [PATCH RFC 6/6] 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=1473463197-3076903-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=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).