Announcing the Release of a Userspace TCP Stack

Dan Levin dlevin at
Tue Oct 26 21:20:55 UTC 2010

At Mike Perry's request, I'd like to announce the recent availability of a tunable, BSD-licensed Userspace TCP Stack. I'll just post my original email exchange from yesterday below, which includes all the details:

------------------------ 8<  ------------------------

Hi Mike,
I hope my TCP code may prove useful. Our code comes out of a research
project for enabling legacy TCP-speaking end-hosts to interface with
new, clean slate wireless mesh transport protocols. Our sources can be
obtained as part of the TCPSpeaker Element of the Click Modular Router

git clone git://
git checkout tcpspeaker

All TCP-specific code is contained in the two files:

To build the code as a click element (which I'm not certain may be
your desired use case)
./configure --disable-linuxmodule --enable-userlevel --enable-local&&

To get a high-level overview of our design, which may assist in your
retooling it to your needs, here's a video from the SyClick workshop
which gives a nice explanation:

A 3-page abstract:
A (slightly longer) Thesis:

This thesis contains a lot (possibly too much) documentation on the
TCPSpeaker Click Element. The implementation section may give some
useful insights. At the end in the Appendix, there are some tables
documenting the TCPSpeaker element handlers. Finally, if anyone wishes
to try running this within click, there are some example click
configurations given in the click repository under

------------------------ 8<  ------------------------

I'm happy to provide whatever further information or assistance I can, if our code appears useful to anyone.

More information about the tor-dev mailing list