Skip to content

Commit 073498f

Browse files
committed
post: new article about supporting new users
And more, around the maintenance and WIP stuff. Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
1 parent 0623e78 commit 073498f

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
---
2+
layout: post
3+
title: "Supporting new users"
4+
---
5+
6+
During the last few months, a lot of work has been done to help other kernel
7+
developers, and stabilize the current solution. It was really time to focus on
8+
supporting new users and application developers. Read on to find out more about
9+
what happened in April!
10+
11+
<!--more-->
12+
13+
## MPTCP case
14+
15+
Like many consequent projects modifying the Linux kernel, the development of the
16+
MPTCP Linux Upstream project has been mainly supported by companies, for their
17+
specific use-cases.
18+
19+
Because using multiple paths at the same time is still not common these days,
20+
most OS's need to be configured to let MPTCP use different paths, and the apps
21+
need to ask to use MPTCP. Companies working on the Linux implementation already
22+
know about MPTCP, and how to configure it. Their clients have also certainly
23+
been told what it is and how to use it in their product. But it has never been a
24+
priority to have good documentation for the community. Of course, we were, and
25+
still are, open to answer questions about MPTCP, but not everybody is curious
26+
enough to find out what MPTCP is, how to configure it, and/or to ask questions
27+
if something is not clear. That's a shame because attracting new users,
28+
generally also means new contributors (bug reports, fixes, features, etc.), and
29+
a better solution at the end.
30+
31+
This situation is now changing thanks to the [NLnet
32+
project](https://nlnet.nl/project/MPTCP-deployability) I'm participating to,
33+
funded through [NGI0 Core](https://nlnet.nl/core).
34+
35+
## New website
36+
37+
[mptcp.dev](https://www.mptcp.dev) has been completely rewritten and published
38+
in April.
39+
40+
Before, the documentation about MPTCP in the Linux kernel was available in
41+
different places:
42+
- [mptcp.dev](https://www.mptcp.dev) was a summary of the wiki page, and assumed
43+
people already knew about MPTCP -- see the previous version
44+
[here](https://github.com/multipath-tcp/mptcp.dev/blob/531801e/README.md).
45+
- The [wiki](https://github.com/multipath-tcp/mptcp_net-next/wiki) had some
46+
info, but it was also redirecting to info from different sources, including
47+
talks and articles, and out of date info -- see the previous version
48+
[here](https://github.com/multipath-tcp/mptcp_net-next/wiki/Home/34ba2883e2a30b15a149df94a941b446eb51e1d6).
49+
- The documentation attached to the kernel only contained info about the
50+
[MPTCP sysfs variables](https://docs.kernel.org/networking/mptcp-sysctl.html),
51+
and recently about the
52+
[`mptcp_pm` Netlink API](https://docs.kernel.org/networking/netlink_spec/mptcp_pm.html).
53+
- A [website](https://mptcp-apps.github.io/mptcp-doc/mptcp.html) has been
54+
initiated by the community, but never finished.
55+
- RedHat has [documentation](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/configuring_and_managing_networking/index#getting-started-with-multipath-tcp_configuring-and-managing-networking),
56+
but centred around RHEL.
57+
58+
When helping Maxime Durov, Dorian Craps, and Olivier Bonaventure to add native
59+
MPTCP support to apps like
60+
[lighttpd](https://github.com/lighttpd/lighttpd1.4/pull/132) and
61+
[curl](https://github.com/curl/curl/pull/13278) as part of a project linked to
62+
the UCLouvain, we realized it was urgent to have a website dedicated to new
63+
users and apps developers, regrouping all required info about MPTCP, what it is,
64+
how to configure it, use it, and more. With their great help, the website has
65+
been updated, and announced on [social media](https://social.kernel.org/mptcp).
66+
It even appeared at the top of [Hacker News](https://news.ycombinator.com/),
67+
bringing thousands of visitors! So far, we got positive feedback: the new
68+
website seems to be answering questions from new users, and app developers, and
69+
even brought new contributors!
70+
71+
## What's next?
72+
73+
Various works have been started recently: adding missing features that are
74+
important for some apps and libs which want to support MPTCP natively, a new lib
75+
for MPTCP in Rust, a test service, adapting the packet scheduler API to support
76+
new use-cases, and improving some corner cases, etc. That's quite a bit of work
77+
in parallel, but that's coming "soon"!
78+
79+
But before, it is also time to wrap up all new but mature enough features to
80+
send upstream for the inclusion in the future v6.10 version. It looks like we
81+
have up to the 2nd week of May to have them accepted in the 'net-next' tree.
82+
Check a [previous post]({% post_url 2024-03-04-backports %}) to know more about
83+
the kernel development cycle.
84+
85+
## Team work
86+
87+
As always, it is important to note that what I presented here so far is mostly
88+
what I was working on. But I'm not alone in this project. For example, Geliang
89+
finished supporting the 'last time' fields in `MPTCP_INFO`, and did some
90+
refactoring in the BPF selftests to reduce duplicated code ; Paolo fixed issues
91+
reported by Christoph thanks to SyzKaller ; Mat helped with the code and website
92+
reviews ; Gregory (new contributor!) is doing some experimentation with the
93+
packet scheduler API, and fixing bugs along the way ; Dorian and Maxime
94+
continued to add native MPTCP support in userspace apps.
95+
96+
A great community!

0 commit comments

Comments
 (0)