A brief look into 2022
A discipline doesn’t mean that you make sure that you have breakfast
at eight o’clock in the morning and you are out of the house by half
past eight. A discipline is that you… if you conceive some thing, then
you decide whether or not it’s worth following through, and if it’s
worth following through then you follow it through to its logical
conclusion, and do it with the best… to the best of your
ability. That’s a discipline, yes? -- David Bowie
With the end of the year in sight, it’s time for a bit of reflection.
2021 was still in the grip of the pandemic. The delta and omicron variants of SARS-CoV-2 prove to be some of the most contageous viruses known to date. Evolution driving emerging coronavirus variants that reduce the effectiveness of the vaccines is a big blow for all to bear. The fight against this strain can only be won if we all fight together, with respect for the health workers that have been standing in the front lines for almost two years now. Follow sound medical advice, and stay safe.
But I’m here to reflect on the Ouroboros (O7s) project. 2021 was a bit of a slow year, not in the least because of my own motivation – or lack of it. But some things are worth mentioning.
We rewrote how O7s runs over UDP/IPv4. Instead of using of UDP ports to mimic the concepts of port IDs as outlined in RINA, we caved in and realigned the O7s ipcpd-udp to work more as a “normal” UDP service. The UDP port is not re-used as an Endpoint ID; instead, we added a small header to the protocol stack, and use a UDP-UDP tunnel to transport O7s traffic. This means that clients connecting to an O7s network from behind a NAT firewall will not need to add port forwarding rules. This should make things easier for people trying Ouroboros over IP.
We removed support for Raptor. Raptor was our NetFPGA demo to run Ouroboros point-to-point over Ethernet Layer 1 without the use of Ethernet MAC layer and addressing. The plan for Raptor was also to include a driver that maps user-space memory (like netmap, but then tailored to the O7s shared memory layout) to reduce context switches to the kernel when sending high packet rates and thus boost performance. However, given the niche hardware requirements and our current limited resources, we decided to remove it from the project instead of continuing to maintain this.
The most important feature this year is probably the InfluxDB exporter, which adds a layer of observability to the project and allows us to better monitor the internals for much needed debugging so we can stabilize the implementation.
2021 also brought an unexpected surprise, in that we received a review from the paper we submitted to the Journal of the ACM. After more than 2 years, we were not expecting any review anymore. Getting review comments on an article always comes with mixed feelings. The paper was rejected, and I agree with that outcome. But the quality of the peer review was extremely disappointing. For a journal of such standing, having only a single reviewer doesn’t feel acceptable to me. It’s a waste of time – both to me and to the reviewers – to even try to improve and re-submit a paper. Eo Romam iterum crucifigi.
So, what’s up for 2022? Right now the focus is on scalablility of the O7s routing system. To dynamically construct the addressing for a network, bottom-up. To build a global-scale network by continuously aggregating independent smaller networks, possibly with different routing protocols and different naming schemes, without causing disruptions to existing services in those networks. This will need some changes in the datapath implementation and support in the flow management for multiple data transfer components and multiple directories. If this sounds interesting, stay tuned.
Finally, I’m infinitely grateful to anyone that took the time to give the prototype a go and then reported back on things that didn’t go as they expected. This is a very small project, I have only so much time I can put in, and any bug reports and constructive feedback are really appreciated. That’s how this can be taken forward. Do keep it coming.
My best wishes for 2022.
Stay healthy, and above all, stay curious.
Dimitri