From: Yoshiki Komachi <komachi.yoshiki@gmail.com> To: "David S. Miller" <davem@davemloft.net>, Alexei Starovoitov <ast@kernel.org>, Daniel Borkmann <daniel@iogearbox.net>, Jesper Dangaard Brouer <hawk@kernel.org>, John Fastabend <john.fastabend@gmail.com>, Jakub Kicinski <kuba@kernel.org>, Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>, Yonghong Song <yhs@fb.com>, Andrii Nakryiko <andriin@fb.com>, KP Singh <kpsingh@chromium.org>, Roopa Prabhu <roopa@cumulusnetworks.com>, Nikolay Aleksandrov <nikolay@cumulusnetworks.com>, David Ahern <dsahern@kernel.org> Cc: Yoshiki Komachi <komachi.yoshiki@gmail.com>, netdev@vger.kernel.org, bridge@lists.linux-foundation.org, bpf@vger.kernel.org Subject: [RFC PATCH bpf-next 0/3] Add a new bpf helper for FDB lookup Date: Fri, 31 Jul 2020 13:44:17 +0900 [thread overview] Message-ID: <1596170660-5582-1-git-send-email-komachi.yoshiki@gmail.com> (raw) This series adds a new bpf helper for doing FDB lookup in the kernel tables from XDP programs. This helps users to accelerate Linux bridge with XDP. In the past, XDP generally required users to reimplement their own networking functionalities with specific manners of BPF programming by themselves, hindering its potential uses. IMO, bpf helpers to access networking stacks in kernel help to mitigate the programming costs because users reuse mature Linux networking feature more easily. The previous commit 87f5fc7e48dd ("bpf: Provide helper to do forwarding lookups in kernel FIB table") have already added a bpf helper for access FIB in the kernel tables from XDP programs. As a next step, this series introduces the API for FDB lookup. In the future, other bpf helpers for learning and VLAN filtering will also be required in order to realize fast XDP-based bridge although these are not included in this series. Patch 1 adds new function for access FDB in the kernel tables via the new bpf helper. Patch 2 adds the bpf helper and 3 adds a sample program. Yoshiki Komachi (3): net/bridge: Add new function to access FDB from XDP programs bpf: Add helper to do forwarding lookups in kernel FDB table samples/bpf: Add a simple bridge example accelerated with XDP include/linux/if_bridge.h | 11 ++ include/uapi/linux/bpf.h | 28 ++++ net/bridge/br_fdb.c | 25 ++++ net/core/filter.c | 45 +++++++ samples/bpf/Makefile | 3 + samples/bpf/xdp_bridge_kern.c | 129 ++++++++++++++++++ samples/bpf/xdp_bridge_user.c | 239 +++++++++++++++++++++++++++++++++ scripts/bpf_helpers_doc.py | 1 + tools/include/uapi/linux/bpf.h | 28 ++++ 9 files changed, 509 insertions(+) create mode 100644 samples/bpf/xdp_bridge_kern.c create mode 100644 samples/bpf/xdp_bridge_user.c -- 2.20.1 (Apple Git-117)
WARNING: multiple messages have this Message-ID (diff)
From: Yoshiki Komachi <komachi.yoshiki@gmail.com> To: "David S. Miller" <davem@davemloft.net>, Alexei Starovoitov <ast@kernel.org>, Daniel Borkmann <daniel@iogearbox.net>, Jesper Dangaard Brouer <hawk@kernel.org>, John Fastabend <john.fastabend@gmail.com>, Jakub Kicinski <kuba@kernel.org>, Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>, Yonghong Song <yhs@fb.com>, Andrii Nakryiko <andriin@fb.com>, KP Singh <kpsingh@chromium.org>, Roopa Prabhu <roopa@cumulusnetworks.com>, Nikolay Aleksandrov <nikolay@cumulusnetworks.com>, David Ahern <dsahern@kernel.org> Cc: netdev@vger.kernel.org, bpf@vger.kernel.org, bridge@lists.linux-foundation.org, Yoshiki Komachi <komachi.yoshiki@gmail.com> Subject: [Bridge] [RFC PATCH bpf-next 0/3] Add a new bpf helper for FDB lookup Date: Fri, 31 Jul 2020 13:44:17 +0900 [thread overview] Message-ID: <1596170660-5582-1-git-send-email-komachi.yoshiki@gmail.com> (raw) This series adds a new bpf helper for doing FDB lookup in the kernel tables from XDP programs. This helps users to accelerate Linux bridge with XDP. In the past, XDP generally required users to reimplement their own networking functionalities with specific manners of BPF programming by themselves, hindering its potential uses. IMO, bpf helpers to access networking stacks in kernel help to mitigate the programming costs because users reuse mature Linux networking feature more easily. The previous commit 87f5fc7e48dd ("bpf: Provide helper to do forwarding lookups in kernel FIB table") have already added a bpf helper for access FIB in the kernel tables from XDP programs. As a next step, this series introduces the API for FDB lookup. In the future, other bpf helpers for learning and VLAN filtering will also be required in order to realize fast XDP-based bridge although these are not included in this series. Patch 1 adds new function for access FDB in the kernel tables via the new bpf helper. Patch 2 adds the bpf helper and 3 adds a sample program. Yoshiki Komachi (3): net/bridge: Add new function to access FDB from XDP programs bpf: Add helper to do forwarding lookups in kernel FDB table samples/bpf: Add a simple bridge example accelerated with XDP include/linux/if_bridge.h | 11 ++ include/uapi/linux/bpf.h | 28 ++++ net/bridge/br_fdb.c | 25 ++++ net/core/filter.c | 45 +++++++ samples/bpf/Makefile | 3 + samples/bpf/xdp_bridge_kern.c | 129 ++++++++++++++++++ samples/bpf/xdp_bridge_user.c | 239 +++++++++++++++++++++++++++++++++ scripts/bpf_helpers_doc.py | 1 + tools/include/uapi/linux/bpf.h | 28 ++++ 9 files changed, 509 insertions(+) create mode 100644 samples/bpf/xdp_bridge_kern.c create mode 100644 samples/bpf/xdp_bridge_user.c -- 2.20.1 (Apple Git-117)
next reply other threads:[~2020-07-31 4:44 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-31 4:44 Yoshiki Komachi [this message] 2020-07-31 4:44 ` [Bridge] [RFC PATCH bpf-next 0/3] Add a new bpf helper for FDB lookup Yoshiki Komachi 2020-07-31 4:44 ` [RFC PATCH bpf-next 1/3] net/bridge: Add new function to access FDB from XDP programs Yoshiki Komachi 2020-07-31 4:44 ` [Bridge] " Yoshiki Komachi 2020-07-31 4:44 ` [RFC PATCH bpf-next 2/3] bpf: Add helper to do forwarding lookups in kernel FDB table Yoshiki Komachi 2020-07-31 4:44 ` [Bridge] " Yoshiki Komachi 2020-07-31 11:52 ` Maciej Fijalkowski 2020-07-31 11:52 ` [Bridge] " Maciej Fijalkowski 2020-08-04 8:44 ` Yoshiki Komachi 2020-08-04 8:44 ` [Bridge] " Yoshiki Komachi 2020-07-31 17:15 ` David Ahern 2020-07-31 17:15 ` [Bridge] " David Ahern 2020-08-04 11:27 ` Yoshiki Komachi 2020-08-04 11:27 ` [Bridge] " Yoshiki Komachi 2020-08-05 16:38 ` David Ahern 2020-08-05 16:38 ` [Bridge] " David Ahern 2020-08-07 8:06 ` Yoshiki Komachi 2020-08-07 8:06 ` [Bridge] " Yoshiki Komachi 2020-07-31 21:12 ` Daniel Borkmann 2020-07-31 21:12 ` [Bridge] " Daniel Borkmann 2020-08-05 4:45 ` Yoshiki Komachi 2020-08-05 4:45 ` [Bridge] " Yoshiki Komachi 2020-07-31 4:44 ` [RFC PATCH bpf-next 3/3] samples/bpf: Add a simple bridge example accelerated with XDP Yoshiki Komachi 2020-07-31 4:44 ` [Bridge] " Yoshiki Komachi 2020-07-31 14:15 ` Jesper Dangaard Brouer 2020-07-31 14:15 ` [Bridge] " Jesper Dangaard Brouer 2020-08-04 10:08 ` Yoshiki Komachi 2020-08-04 10:08 ` [Bridge] " Yoshiki Komachi 2020-07-31 17:48 ` Andrii Nakryiko 2020-07-31 17:48 ` [Bridge] " Andrii Nakryiko 2020-08-04 10:35 ` Yoshiki Komachi 2020-08-04 10:35 ` [Bridge] " Yoshiki Komachi 2020-07-31 21:52 ` [RFC PATCH bpf-next 0/3] Add a new bpf helper for FDB lookup John Fastabend 2020-07-31 21:52 ` [Bridge] " John Fastabend 2020-08-05 10:26 ` Yoshiki Komachi 2020-08-05 10:26 ` [Bridge] " Yoshiki Komachi 2020-08-05 16:36 ` David Ahern 2020-08-05 16:36 ` [Bridge] " David Ahern 2020-08-07 8:30 ` Yoshiki Komachi 2020-08-07 8:30 ` [Bridge] " Yoshiki Komachi
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=1596170660-5582-1-git-send-email-komachi.yoshiki@gmail.com \ --to=komachi.yoshiki@gmail.com \ --cc=andriin@fb.com \ --cc=ast@kernel.org \ --cc=bpf@vger.kernel.org \ --cc=bridge@lists.linux-foundation.org \ --cc=daniel@iogearbox.net \ --cc=davem@davemloft.net \ --cc=dsahern@kernel.org \ --cc=hawk@kernel.org \ --cc=john.fastabend@gmail.com \ --cc=kafai@fb.com \ --cc=kpsingh@chromium.org \ --cc=kuba@kernel.org \ --cc=netdev@vger.kernel.org \ --cc=nikolay@cumulusnetworks.com \ --cc=roopa@cumulusnetworks.com \ --cc=songliubraving@fb.com \ --cc=yhs@fb.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: linkBe 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.