|
| 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