Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 9d458f6

Browse files
committedJan 27, 2025··
post: new article: one year after
A small retrospective and what's next. Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
1 parent bfff205 commit 9d458f6

File tree

1 file changed

+109
-0
lines changed

1 file changed

+109
-0
lines changed
 
+109
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
---
2+
layout: post
3+
title: "One year of NGI0 Core support"
4+
---
5+
6+
A bit more than one year ago, I started the [Angel Project]({% post_url
7+
2024-01-01-Angel-Project %}): improving the "deployability" of Multipath TCP. A
8+
project supported by [NGI0 Core](https://nlnet.nl/core), a fund established by
9+
[NLnet](https://nlnet.nl). Before starting, I had good planning, something to
10+
keep me busy for the following months. Not everything happened as expected, but
11+
on the bright side, the impact of this project is probably higher than what I
12+
expected! Read on to find out more about that!
13+
14+
<!--more-->
15+
16+
## Retrospective
17+
18+
When I'm thinking about what happened over the last year, I could say that I'm a
19+
bit disappointed, simply because I didn't manage to finish all the tasks I
20+
initially planned. But that feels wrong: yes, I didn't have time to finish some
21+
of them, but I have been **really** busy on many other aspects, which, at the
22+
end, had a very positive impact on Multipath TCP in general, but also in kernel
23+
testing in the Linux Network subsystem.
24+
25+
As mentioned in a few of my previous blog posts, a lot of time has been spent
26+
around the "maintenance"[^maintenance]. This time was and is still crucial for
27+
the survival of the project, and to gain confidence of new users. For example,
28+
**a lot** of various issues have been fixed. Without these fixes, and their
29+
backports to stable versions, new features would have been nice to have, but
30+
either tarnished by pre-existing bugs, or simply not implementable.
31+
32+
Note that a part of the "maintenance"[^maintenance] was dedicated to migrate and
33+
stabilise the CI system. A part of this work was also beneficial for the Linux
34+
Network subsystem with [NIPA](https://github.com/linux-netdev/nipa/). Thanks to
35+
all of that, I was able to join and contribute to the last
36+
[Netconf](https://netdev.bots.linux.dev/netconf/2024/index.html) with so many
37+
brilliant and nice Linux developers! This part benefits a lot more people.
38+
39+
[^maintenance]: "Maintenance" is a generic term which for a kernel maintainer of
40+
an active subtree includes: communication with the community, organising
41+
regular meetings, answering questions, tracking, analysing and fixing bugs,
42+
fixing issues with anything related to the workflow like the CI and other
43+
tools and services, refactoring code to ease the inclusion of new features
44+
or fixes, reviewing and accepting work from others, sending modifications to
45+
be included in the official Linux kernel, helping with the backports, and
46+
doing the different follow-up.
47+
48+
Tasks that had probably the most important impact were not directly on the
49+
kernel side, but around:
50+
51+
- The totally reworked [website](https://www.mptcp.dev) can now reply to most
52+
questions from new and existing users: what is MPTCP, how can it help, how to
53+
set it up, what apps devs need to do, how to contribute, etc.
54+
55+
- The documentation has been improved (or created) on different sides, e.g.
56+
[IPRoute](https://man.archlinux.org/man/core/iproute2/ip-mptcp.8.en), the
57+
[Linux Kernel](https://docs.kernel.org/networking/mptcp.html),
58+
[mptcpd](https://mptcpd.mptcp.dev/doc/html/), etc.
59+
60+
- MPTCP is natively supported in more programming languages, applications and
61+
Linux distributions, see this [page](https://www.mptcp.dev/apps.html). To name
62+
a few: Apache HTTP, cURL, HAProxy, Lighttpd, SystemD, GoLang (the next 1.24
63+
version will have all stream connections (TCP) supporting MPTCP by default on
64+
the server side), OpenWrt (enabled by default on the kernel side), etc.
65+
66+
- Various users and companies are then becoming interested in the technology,
67+
e.g. Marek at CloudFlare wrote a nice technical [blog
68+
post](https://blog.cloudflare.com/multi-path-tcp-revolutionizing-connectivity-one-path-at-a-time/)
69+
about the current situation using Ubuntu and a generic 6.8 kernel.
70+
71+
Looking from that side, I should be happy about the results, and force me to
72+
take some (hopefully) deserved time off at some point to finally "_recharge my
73+
batteries_" :)
74+
75+
## What's next?
76+
77+
In the short term, the activities around the second part of December were quite
78+
calm, which allowed me to continue the work on a performance lab dedicated to
79+
MPTCP and focused on tracking regressions linked to its packet scheduler. 2025
80+
didn't continue like the previous year finished: various instabilities in the
81+
tests -- showing real issues in the code, exposed by some recent fixes -- plus
82+
new issues discovered by [Syzbot](https://syzkaller.appspot.com) -- which could
83+
be used to cause DDoS... but requiring root access on the local machine! -- and
84+
having to deal with tax-related admin tasks, forced me to move my focus
85+
elsewhere. Hopefully I can go back to this task very soon!
86+
87+
Please note that I will be present at FOSDEM this weekend. There will be an
88+
[MPTCP Community
89+
meetup](https://fosdem.org/2025/schedule/event/fosdem-2025-6750-mptcp-community-meetup-bof/)
90+
on Saturday at 17.30. Please join, so hopefully the room will have more than 2
91+
people there :-D
92+
93+
In the longer term, quite a lot of work is planned to improve the situation in
94+
many different corner cases. A part of this work would require long
95+
uninterrupted sessions, which is hard to get when maintaining an active kernel
96+
subtree. But I hope to be able to split the work in a way that such sub-tasks
97+
can be interrupted by more urgent ones. I'm also looking at finding people to
98+
help me to realise these tasks quicker.
99+
100+
## Team work
101+
102+
As always, it is important to note that what I presented here so far is mostly
103+
what I was working on. But I'm not alone in this project. For example, Geliang
104+
continued to look at BPF `iter` for the subflows, and having a path-manage
105+
controlled with BPF ; Paolo helped fix some issues found by Syzbot, but also
106+
some improvements on the received path ; Mat helped with the code reviews ;
107+
Christoph continued to fix the SyzKaller infrastructure dedicated to MPTCP.
108+
109+
A great community!

0 commit comments

Comments
 (0)
Please sign in to comment.