- Dec 2, 2007: the patch is updated with a change in tcp_compound.c to fix a discrepency between this module and the new congestion control interface on TCP_CONG_RTT_STAMP flag. Thanks to Arya Afrashteh at Virginia Tech for reporting the problem.
- Nov 11, 2007: the patch is updated with documentation in doc/ directory and example codes in tcl/ex/tcp-linux directory.
- Oct 30, 2007: Updated the patch with a new feature that allows simulation script to change Linux parameters (the parameters out side congestion control modules,
such as max_burst, abc, and etc). See updated tutorial on how this works.
- Oct 21, 2007: Confirmed that the patch works with NS-2.31 on Cygwin.
- Oct 9, 2007: Updated the patch with a bug fix on local parameter setting. This bug happens when there are severe loss, when load_to_linux is called several times and the default value is flushed.
- Oct 8, 2007: Added the changes to Makefile.in to the patch so that a re-configuration will not remove the Makefile's changes. Thanks to In-Su Yoon at Pusan National University for providing the patch
- Oct 1, 2007: A new version of NS-2 TCP-Linux is released. New features include:
The old version of NS-2 TCP-Linux with 22.214.171.124 kernel is no longer supported. However, bug fixes and patches from other contributors to this project will still be published here.
- Support changes of congestion control parameters with an updated tutorial on how to change congestion control parameters in the simulations.
- Patch against latest NS-2 source code (2.31), compatible with 2.29 and 2.30.
- Support the new interface in recent Linux kernel (126.96.36.199), incorporated with 14 congestion control algorithms
- A set of NS2-compatible validation tests
- A script that easily updates the congestion control module source codes from linux kernel source code (on *nux platform)
- Sep 25, 2007: A patch that directly upgrades the NS-2 TCP-Linux based on Linux 188.8.131.52 to Linux 184.108.40.206 is provided by Greg Bigwood and Martin Bateman University of St Andrews.
- Sep 11, 2007: fixed a bug in SnoopyQueue scheduler. The bug leads to an extremely small bin-width in the hash table and finally a float-point exception when the bin-width becomes almost 0. So far, this bug has only been found in wireless simulation. The fix enforces a minimum bin-width of 1E-18. -- Thanks to Pierre Capillon at the LRSM lab at Evry (France) for reporting the problem.
- Jun 29, 2007: verified and fixed the bug on rcv_tsecr reported by Sangtae Ha. Fixed another related bug on rcv_tsval. The rcv_tsecr bug affects performance with Cubic and LP. The rcv_tsval bug affects the performance of LP. -- Thanks to Sangtae Ha at NCSU for reporting the problem.
- Feb 1, 2007: The patch is updated with a bug fix in ScoreBoard1 and TcpLinux. This bug only happens in scenarios with severe packet loss and with congestion control algorithms that require micro-second timestamp. When some packets are retransmitted by mistake (early timeout, e.g.), tss table will have the timestamp of the last (retransmitted) copy of the packet. When the old packet arrives, the usrtt calculation will be wrong.
- Jan 31, 2007: A potential bug in tcp_vegas.c of Linux source code is found. This bug might leads to fairness problem of Vegas implementation in Linux.
- Dec 27, 2006: The patch is confirmed to be working with NS-2.30 by David Serafim.
- Dec 06, 2006: A fix to CUBIC proposed by Sangtae Ha. Need to apply two patches.
1. Patch to tcp_cubic.c
2. Patch to tcp-linux.cc
A detailed explanation is provided by Sangtae.
- Aug 05, 2006: Paper NS-2 TCP-Linux: An NS-2 TCP Implementation with Congestion Control Algorithms from Linux;
D. X. Wei and P. Cao; to appear in proceedings of ValueTool'06 -- Workshop of NS-2, Oct, 2006.
- Jul 21, 2006: The patch is updated with an accuracy improvement.
NS-2 TCP sets its default initial window to be 1 (by setting delay_growth_ to be true by default).
However, Linux sets to be 2.
We change the default value of delay_growth_ to be false for TCP/Linux.
-- Thanks to Salman Abdul Baset at Columbia University for reporting the problem!
- Jul 14, 2006: The patch is updated with a bug fix in ScoreBoard1 module.
The bug might cause "Hit strange case 2" debug messages in some rare cases:
when a partial ack acknowledges all the SACK-ed
packets with no other SACK information coming back to indicate that its
a partial ack.
So far the problem has been only observed with FreeBSD machines
but it is recommended to update the patch even with Linux) --
Thanks to Luiz Antonio F. da Silva for reporting the problem!
- Jun 15, 2006: A summary of known problems in Linux TCP modules is set up in order to help users separate the Linux bugs from algorithm design problems or bugs in NS-2 TCP-Linux.
- Jun 10: The patch is updated to support three new TCP modules in Linux: Veno, Compound and LP
- May 29, 2006: The patch is updated for a bugfix on ECN reaction - Thanks to Eryk Schiller for reporting the problem!
- May 22, 2006: A mini-tutorial for TCP Linux is written for users who want to develop their congestion control algorithms with TCP Linux.
- May 15, 2006: First version released