Subject: TCP ECN summer of code project
To: None <tech-net@NetBSD.org>
From: Rui Paulo <rpaulo@fnop.net>
List: tech-net
Date: 08/17/2006 08:40:41
Hi.
My Summer of Code project is mostly finished and I would like you to try 
it as much as possible before incorporating it into the tree.
The primary archs I tested it on were i386 and macppc, but I build 
tested it on sparc.

To checkout. do the following in your NetBSD src tree:
% cd src/sys
% mv netinet netinet.old
% cvs -d :pserver:anonymous@netbsd-soc.cvs.sf.net:/cvsroot/netbsd-soc login
Logging in to 
:pserver:anonymous@netbsd-soc.cvs.sf.net:2401/cvsroot/netbsd-soc
CVS password:
% cvs -d :pserver:anonymous@netbsd-soc.cvs.sf.net:/cvsroot/netbsd-soc co 
-P ecn/src/sys/netinet
% mv ecn/src/sys/netinet .
% rm -rf ecn

Then build your kernel as usual. (netinet/ is from yesterday's sources).

After booting, you'll see:
% sysctl net.inet.tcp.ecn
net.inet.tcp.ecn.enable = 0
net.inet.tcp.ecn.maxretries = 1

The second one is the number of SYN retransmits the kernel should do 
before giving up on ECN and using a non-ECN setup packet.

If you have two distant machines and you think there's a ECN router or 
two in the middle, please test this.

Implementation results can be found at:
http://netbsd-soc.sourceforge.net/projects/ecn/testresults.html

I'll be back in the weekend for more.

Thanks in advance.