OpenBSD Journal

b2k13 hackathon report: Henning Brauer (henning@) on Lazy IP Checksumming

Contributed by weerd on from the the-sum-of-all-evil-packets dept.

Henning Brauer (henning@) just sent in his report from the b2k13 hackathon, but there's also a short interview with Henning over on which you might enjoy.

Berlin was a really convenient hackathon location for me, since getting there from Hamburg feels like a little longer S-Bahn ride. The fast ICE train makes it only a 90 minute trip. I arrived half a day later than intended due to work interfering, but I quickly got going.

I foremost wanted to do some follow up work now that the big ckecksum rewrite has matured a little bit. I wanted to remove the partial pre-calculation of the protocol checksums in the template Protocol Control Block (PCB) and the freshly inherited PCBs after accept. Doing so was easier and faster than expected. I spent an hour or two only on writing the diff, and about 2 days of convincing myself (by testing a LOT and verifying code paths through inspection and, again, testing) that it was actually right. I went on chasing a bug Stuart Henderson (sthen@) was seeing. I found 2 corner cases we didn't handle correctly (one fixed, one super rare case fixed in my tree but still to be committed) -- but not sthen@'s bug. Lawrence Teo (lteo@) spotted that one. I spent a lot of time with Alexander Bluhm (bluhm@) verifying logic in corner cases. The cksum handling is complex and being able to sit down together and think things through helped enormously. One more reason why hackathons are so important for our development.

With the last round of changes committed, we wanted to head towards the checksum handling being nicely contained in the in_proto_cksum_out and in6_proto_cksum_out functions. This means the rest of the stack doesn't have to do anything except to mark packets (or rather, pkthdr mbufs) as "needs checksumming". We make pretty optimal use of hardware offloading where available.

Aside from the work on the code it was really great to spend time with the other developers again. We had a lot of fun and very productive discussions in the hackroom, bars, and restaurants nearby. We also had an awesome night in Kreuzberg and I got back at the hotel at 7:30am, where they were just setting up for breakfast. Many thanks to everybody involved, especially Uwe Stuehler (uwe@) and Stefan Sperling (stsp@). It was a great little hackathon.

Thanks Henning for telling us about your efforts at the hackathon. We usually try to blame getting back to the hotel at 7:30am on jetlag, but in your case, no one would believe us.

(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.]