The official Google release of packetdrill
This is the official Google release of packetdrill.
The packetdrill scripting tool enables quick, 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 GPLv2. Currently the source for the testing tool and a number of test scripts is in the git repository. We will continue to post more tests from our team's Linux TCP test suite (described in our USENIX paper), as time permits.
Links: * the Google packetdrill git repository is now on github.com * packetdrill USENIX ATC paper from June 2013 describing the tool and our team's experiences * packetdrill USENIX ;login: article from October 2013 * packetdrill mailing list for questions, discussions and patches * packetdrill language syntax reference
External links: * using packetdrill for teaching TCP
First, download the dependencies that you will need in order to build and run packetdrill. If you are on a Linux system based on Debian/Ubuntu then you can use a command like:
sudo apt install git gcc make bison flex python
To check out and build packetdrill:
git clone https://github.com/google/packetdrill.git cd packetdrill/gtests/net/packetdrill ./configure make
If you are on a machine with a recent Linux kernel you can su to root and run all of the TCP stack tests included in the packetdrill distribution in the tcp/ directory:
cd .. ./packetdrill/run_all.py -S -v -L -l tcp/
We welcome patches with bug fixes or new features for packetdrill. The packetdrill project uses git for source code management. Please follow the following steps when sending in a patch for packetdrill:
Signed-off-byfooter, according to the standards of the Linux open source project
packetdrill: add amazing feature foo
This commit adds amazing feature foo, which ...
Tested on FooOS and BarOS by doing the following: ...
Signed-off-by: John Doe <john.doe> </john.doe>
git format-patch HEAD~1
checkpatch.plfrom the Linux source tree, e.g.:
wget http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/scripts/checkpatch.pl chmod u+x checkpatch.pl ./checkpatch.pl --no-tree --ignore FSF_MAILING_ADDRESS 00*.patch
git send-email --to [email protected] 00*.patch