OpenBSD Journal

c2k15: mpi@ on trunk(4), pf(4), wifi, routing, bridge(4) and more

Contributed by tj on from the bits flying, packets soar dept.

Our next c2k15 report comes from Martin Pieuchot (mpi@), who appears to have had a quite productive hackathon:

As expected, I spent most of my time during this hackathon working on the network stack. But apart from a crazy trunk(4) bug fix I did not write much code during the week and this was completely new to me!

I always though that hackathons were the best place to write code, but what's even more important is that they are the best (well actually only) moment where one can discuss and coordinate projects with other developers IRL. And that's what I did.

I spent a fair amount of time discussing with Stefan (stsp@) about the current state machine of the wireless stack. The state machine seems to assume that every single driver can switch between states synchronously. This is obviously not true, especially with USB devices, and results in a pile of different races in every driver with more hacks to avoid some of them.

I also had some interesting talks with Alexandr (sashan@) about his SMP pf(4) work. Alexandr did some amazing work and we discussed about how can it be smoothly integrated and how does it fit in the big picture.

Since Claudio (claudio@) and I were sitting next to each other, it has been quite easy to make some plans. We even had a brainstorming session with a dozen of other developers, and managed to reach a consensus about what to do next. Obviously, most of what we talked about is being cooked for the next release cycle.

Even if Mike (mikeb@) could not attend the hackathon, we managed to review and improve Bret's (blambert@) diff to stop using the rtalloc(9) interface for SPD lookups. I still don't understand how we managed to work on the same diff at the same time while chatting without screwing things up...

Once this went in, I imported a new abstraction layer for the routing table. This new layer allows us to differentiate routing entries from radix-tree nodes. This makes the routing code much easier to understand, and might allow us to experiment with alternative routing table backends.

I also discussed a lot with Rafael (rzalamena@) about his mpw(4) driver. We tried to integrate it properly and not abuse the bridge(4) like gif(4) actually does but failed. Thanks to Rafael I learned a lot about MPLS. We even discussed about better integration of the MPLS stack and what needs to be done to make it SMP ready(tm)!

This led me to a maze of bridge(4) discussions. Seems like "bridge(4) over Troubled Network" could be a nice release song.... Anyway, this is a really hot topic among OpenBSD network developers. I wish they would have the same energy when it comes to review bridge(4) diffs.

Finally I tried to keep everybody up-to-date about the recent network stack changes and what will happen next. I tried to motivate people, see how we can work together, we'll see if it works!

This was a great hackathon. I spent too much energy and was completely burned at the end of the week. But now that I slept for two days and see what we've done, I'm really impressed.

Thanks to Nayden, the OpenBSD Foundation and Theo for organizing yet another great event!

Thanks for all the work and a great report, Martin! Some of this is already in, while some of the goodies mentioned here have not yet been committed.

(Comments are closed)


Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]