From: Mat Martineau <mathew.j.martineau@linux.intel.com>
To: Matthieu Baerts <matthieu.baerts@tessares.net>
Cc: mptcp@lists.linux.dev
Subject: Re: Draft talk proposal for MPTCP @ Linux Plumbers '22 (3rd draft)
Date: Mon, 18 Jul 2022 18:17:50 -0700 (PDT) [thread overview]
Message-ID: <38919512-f6f-1035-763f-67cd15a5febb@linux.intel.com> (raw)
In-Reply-To: <7cd436ad-6c05-d788-7af3-2ff08d647dfd@tessares.net>
Here's a new draft based on Matthieu's feedback for v2
(https://lore.kernel.org/mptcp/7cd436ad-6c05-d788-7af3-2ff08d647dfd@tessares.net/).
The main goal was to frame the proposal as an illustration of tradeoffs
between different kernel extensibility options (BPF & genl).
---
Multipath TCP (MPTCP) was initially supported in v5.6 of the Linux kernel.
In subsequent 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.
With core MPTCP functionality established, our next goal is to make MPTCP
more extensible and customizable at runtime. The two most common tools in
the kernel's networking subsystem for these purposes are generic netlink
and BPF. Each has tradeoffs that make them better suited for different
scenarios. Our choices for extending MPTCP show some of those tradeoffs,
and also leave our community with some open questions about how to best
use these interfaces and frameworks.
As one example, we are extending the MPTCP packet scheduler using BPF.
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. This requires low latency and low overhead, and direct access
to low-level TCP connection information. 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. MPTCP path managers advertise addresses available for multipath
connections, and establish or close additional TCP subflows using the
available interfaces. There are a limited number of interactions with a
path manager during the life of a MPTCP connection. Operations are not
very sensitive to latency, and may need access to data from userspace.
This led us to expand the MPTCP generic netlink API and update the
Multipath TCP Daemon (mptcpd) to support the new commands. Generic netlink
has been a good fit for path manager commands and events, the concepts are
familiar and the message format makes it possible to maintain forward and
backward compatibility between different kernel versions and userspace
binaries.
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
prev parent reply other threads:[~2022-07-19 1:17 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 ` Draft talk proposal for MPTCP @ Linux Plumbers '22 (2nd draft) Mat Martineau
2022-07-15 14:47 ` Matthieu Baerts
2022-07-17 22:01 ` Mat Martineau
2022-07-19 1:17 ` Mat Martineau [this message]
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=38919512-f6f-1035-763f-67cd15a5febb@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