1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
---
date: 2021-12-26
title: "A brief look into 2022"
linkTitle: "Plans for 2022"
description: "Quo vadis?"
author: Dimitri Staessens
---
```
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.
Of course, 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.
Of course, 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
|