Table of Contents

200705 Meeting of the Network Stack Cabal

The FreeBSD network stack is one of the most active areas of development in the FreeBSD kernel. However, it has been observed that we have many point specialists: experts in Netgraph, TCP, BPF, etc, but relatively few generalists. The goal of this meeting is to perform structured discussion and code-reading of critical sections of the network stack in order to improve knowledge of the many stack components among the network developer community, and to motivate thinking about overall architectural issues in the stack. A set of possible themes for cross-stack consideration can be found below.

All participants in the meeting are asked to prepare brief presentations and code walk-throughs of specific sections of the stack – most frequently, areas in which they have special expertise. Presentations will be short, and this is not an attempt to read all code. Rather, to identify critical paths and allow them to shed light on the structure of components and their integration. Sessions will be recorded for future reference.

The basic day structure is something along the following lines:

This meeting is by invitation only. Please contact EdMaste and RobertWatson for details.

Format

Presentation slots for the network stack cabal are limited to 30 minutes, with at most 10 minutes for slides (approximately five slides maximum). The remaining 20 minutes or more is reserved for code walk through and discussion. We want to keep a fairly tight schedule as we have a lot of material to get through. Sessions may run significantly shorter, but should not run longer. Sessions will be interactive, and asking questions to guide reading is encouraged (subject to time limitations).

Please post your name and your topic, and if you have them, your slides. Try to be interesting, or this will be a really boring day!

Permanent Record

This session will be video recorded, and slides will be collected. One of the important outputs of this meeting will be content that can be reused for educational purposes in the future.

Attendees

This is an invitation-only event. Please contact EdMaste and RobertWatson for more information; do not add yourself to this list without contacting them first. Current partial list of attendees:

Themes to Discuss

As we review key components of the network stack, we should be looking not just at the details of the component, but also issues the span many components. This will provide the opportunities to identify common elements, and especially common requirements. Some areas we may want to focus our questions on:

Schedule

Time Presenter Topic Presentation Materials
09:10-09:15 GeorgeNevilleNeil, RobertWatson Introduction 20070516-net-cabal-intro.pdf
09:15-09:45 RobertWatson mbufs and mbuf allocator 20070516-mbufallocator.pdf
09:45-10:00 RobertWatson netisr dispatch 20070516-netisr.pdf
10:00-10:20 BrooksDavis ifnet API 20070516-ifnet.pdf
10:20-10:50 SamLeffler wireless networking NetworkCabal2007.pdf
10:50-11:00 Break
11:00-11:30 ChristianPeron BPF bpf.pdf
11:30-11:45 MaxLaier pfil, firewalls and locking pfil.pdf
11:45-12:00 MaxLaier pf pf.pdf
12:00-12:30 KipMacy cxgb 10gbps driver optimizations cxgb.pdf
12:30-13:00 Lunch
13:00-13:40 StephanUphoff Sockets and socket buffers socket.pdf
13:40-14:15 KirkMcKusick UNIX Domain Sockets
14:15-15:15 QingLi Routing, ARP, IPv6 ND6
15:15-15:30 Break
15:30-15:50 MikeSilbersack ip_input(), ip_output(), ip_forward() bsdcan07_ip.pdf
15:50-16:05 BjoernZeeb ip6_{in,out,..}* 20070516-netcabal-ip6.pdf
16:05-16:35 GeorgeNevilleNeil FAST_IPSEC NetworkCabalIPsec.pdf
16:35-16:50 Break
16:50-17:20 JulianElischer Netgraph
17:20-17:40 MikeSilbersack accept filters bsdcan07_acceptfilters.pdf
17:40-18:50 AndreOppermann TCP Syncache, PCB, input, output
18:50-19:00 Day recap
19:00 Dinner

Topics Looking for Owners

Here are some things we'd really like to have people signed up to talk about and walk through: