packetdrill: a scriptable network stack testing tool (for FreeBSD, etc.)

Neal Cardwell ncardwell at google.com
Tue Jul 2 20:30:46 UTC 2013


I'd like to announce the availability of the packetdrill network stack
testing tool.

The packetdrill scripting tool enables users to quickly write precise
tests for entire TCP/UDP/IPv4/IPv6 network stacks, from the system
call layer down to the NIC hardware. packetdrill currently works on
Linux, FreeBSD, OpenBSD, and NetBSD. It can test network stack
behavior over physical NICs on a LAN, or on a single machine using a
tun virtual network device.

The code is licensed under version 2 of the GPL, and available in a
git repository at:

  https://code.google.com/p/packetdrill/

Here's a USENIX 2013 paper about the tool:

  http://research.google.com/pubs/pub41316.html

This paper describes the design and implementation of the tool, and
our experiences using it to execute 657 test cases. The tool was
instrumental in our development of three new features for Linux
TCP—Early Retransmit, Fast Open, and Loss Probes—and allowed us to
find and fix 10 bugs in Linux. Our team uses packetdrill in all phases
of the development process.

Currently the source for the testing tool is in the git repository,
along with an example script for each supported OS. We will also be
posting tests from our team's Linux TCP test suite (described in the
paper), as time permits.

There is a mailing list for questions, discussions and patches:

  http://groups.google.com/group/packetdrill

Enjoy!

neal


More information about the freebsd-net mailing list