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:

200705NetworkCabal (last edited 2008-06-17T21:37:20+0000 by anonymous)