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