From: Mat Martineau <mathew.j.martineau@linux.intel.com>
To: mptcp@lists.linux.dev, Matthieu Baerts <matthieu.baerts@tessares.net>
Subject: Re: Draft talk proposal for MPTCP @ Linux Plumbers '22 (2nd draft)
Date: Thu, 14 Jul 2022 15:50:40 -0700 (PDT) [thread overview]
Message-ID: <3f3a487-64b-e687-f566-ae9b3b930bb@linux.intel.com> (raw)
In-Reply-To: <78ff1ebd-f440-9dd0-256-abf3345e6d3@linux.intel.com>
After some discussion at out last couple of weekly meetings, here's an
updated draft.
Changes:
* Moved BPF section up (before userspace PM)
* Emphasized interactive discussion for BPF issues we've been trying to
resolve, like the BPF/kernel API.
* General edits
Suggestions, edits, feedback, etc, all welcome!
---
Multipath TCP (MPTCP) was initially supported in v5.6 of the Linux kernel.
In later releases, the MPTCP development community has steadily expanded
from the initial baseline feature set to now support a broad range of
MPTCP features on the wire and through the socket and generic netlink
APIs. Two current projects are intended to make MPTCP more customizable
for client devices and unique use cases without requiring custom kernel
modules.
One of these projects is the BPF MPTCP packet scheduler framework. When
there are multiple active TCP subflows in a MPTCP connection, the MPTCP
stack must decide which of those subflows to use to transmit each data
packet. The default in-kernel scheduler tries to utilize all the available
subflows to favor throughput, but it is not tunable. Customizable
schedulers can optimize for latency, redundancy, cost, carrier policy, or
other factors. We have patches implementing a proof-of-concept BPF packet
scheduler, and hope to discuss with the netdev/BPF maintainers and
audience how we might best structure the BPF/kernel API to balance
long-term API stability, future evolution of MPTCP scheduler features, and
usability for scheduler authors.
The next customization feature is the userspace path manager added in
v5.19. On the kernel side, MPTCP's generic netlink API has new commands
that allow a userspace process to control multipath address advertisements
and the additional subflows that add paths to a MPTCP connection. The
Multipath TCP Daemon (mptcpd) is the first userspace daemon to support
these commands. With these components, systems can now customize MPTCP
behavior on a per-connection basis. The in-kernel path manager, which is
enabled by default, only has per-namespace configuration. We will show
what the userspace and in-kernel path managers are best suited for and
explain the tradeoffs between them.
MPTCP development for the Linux kernel and mptcpd are public and open. You
can find us at mptcp@lists.linux.dev, https://mptcp.dev, and
https://github.com/intel/mptcpd
--
Mat Martineau
Intel
next prev parent reply other threads:[~2022-07-14 22:50 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-30 0:16 Draft talk proposal for MPTCP @ Linux Plumbers '22 Mat Martineau
2022-07-14 22:50 ` Mat Martineau [this message]
2022-07-15 14:47 ` Draft talk proposal for MPTCP @ Linux Plumbers '22 (2nd draft) Matthieu Baerts
2022-07-17 22:01 ` Mat Martineau
2022-07-19 1:17 ` Draft talk proposal for MPTCP @ Linux Plumbers '22 (3rd draft) Mat Martineau
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=3f3a487-64b-e687-f566-ae9b3b930bb@linux.intel.com \
--to=mathew.j.martineau@linux.intel.com \
--cc=matthieu.baerts@tessares.net \
--cc=mptcp@lists.linux.dev \
/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