Announcing the Packet Debugger

In order to facilitate the debugging of networking code I have used my library, Packet Construction Set aka PCS to write a program I call the Packet Debugger (pdb). All of this is written in Python and available under a BSD license. The blurb from the pdb web page gives you the best idea of what I’m doing:

“The Packet Debugger (pdb) is a program which allows people to work with packet streams as if they were working with a source code debugger. Users can list, inspect, modify, and retransmit any packet from captured files as well as work with live packet capture.” – pdb web page

There is a twelve page manual on the web page that describes how to use the debugger as well.

Add to del.icio.us - Digg this article

This post points to two files, PARA, my kernel configuration file, and loader.conf which sets the kernel’s HZ back to 100. The default hz in FreeBSD CURRENT (will be 7.0) is now 1000 which is too high for Parallels to keep up with and causes it to eat about 15% of the CPU on my MacBook. With HZ set to 100 an idle virtual machine uses only 5% of the CPU, which is less than OSX’s windowserver process.

PARA

loader.conf

Add to del.icio.us - Digg this article

 As some of you may, or may not know, I tend to do a lot of my kernel development in virtual machines, such as VMware and now Parallels on my MacBook. I find that virtual machines make the perfect test lab because you can easily create, copy, store, backup and delete them. For a more full discussion of using virtual machines for kernel and protocol development see my presentat from the BSDCan conference in 2006.

To build a proper network test lab you not only need machines with multiple interfaces but a way to hook those interfaces to each other. Until the most recent versions of Parallels, around December of 2006, this was not possible, and so I had to stick with VMware, on Linux. Now with the advent of 3 types of networking on Parallels, bridged, shared and host only, it is possible to have 3 interfaces independently active for use in testing.

At home my typical setup is that ed0 is a bridged network, which connects to the outside world, and ed1 is shared, and then ed2 is host only. Testing occurs on ed1 and ed2 in order for there to be a “quiet” network on which to do tests.

The next step that Parallels needs to take to make this truly work is to provide the equivalent of a hub per network, much like private networks in VMware, at which point all this messing about with different types of network interfaces can cease and I can safely continue to do testing wherever I like.

For those of you who want to do this kind of work I will be uploading my kernel configuration and other files in another post.

Add to del.icio.us - Digg this article

FAST_IPSEC + IPv6 in Host Mode

I recently posted this patch to and have not had any replies.
This patch allows a FreeBSD CURRENT host to use FAST_IPSEC+IPv6 as an end station.

The patch was uploaded on 01-Oct-2006.

Router mode is not yet supported. Please report bugs and problems directly to me or to the net@ mailing list.

Add to del.icio.us - Digg this article

Welcome

Hello and welcome to my networking blog. Mostly I think blogs are appallingly stupid, written by people with little or no ability to write. I hope that this blog is not one of those.

The purpose of this blog is to comment on what I’m currently working on in the FreeBSD networking stack and as a place to keep pointers to code and patches which so often get lost in our email archives.

I’ll try to remember to post new entries here when I create new patches and people are welcome to comment on those patches here or in email to my freebsd.org address.

Add to del.icio.us - Digg this article



About

I am a tall, dark and handsome stranger.... Er, actually, no. I'm an unrepentant computer geek with interests in operating systems, embedded and real-time systems, networking and security.