UNMAINTED WARNING: I am not actively maintaining this module anymore. This code was designed to run against Ubuntu 12.04 kernel versions and I keep this repo for reference and historical reasons. I am not accepting pull requests and will not answer support inquiries sent to my private email.
This is my fixed version of the tcp_probe.c kernel module for linux. The version
that ships with the vanilla kernel was not suitable for me as it only writes to
/proc/net/tcpprobe in large buffer bursts, whereas I needed to monitor short
lived HTTP connections.
This version uses and EVENT_BUF value of 1 by default, which means every event
is written to /proc/net/tcpprobe immediately. An event can be either the
reception of a tcp segment of an established connection, or the change of the
snd_cwnd (depending on whether or not the full module parameter is given).
Additionally, the timestamp is reset on every fopen of the
/proc/net/tcp_probe file for easier plotting.
For more information and documentation on original tcp_probe, see:
<http://www.linuxfoundation.org/collaborate/workgroups/networking/tcpprobe>
The sample_plot folder contains a sample gnuplot plus two samples collected
via this kernel modules that show congestion behaviour using tcp reno and
linux' tcp_cubic.
Get and install matching linux-header package for your kernel and run make.
Usage: Same as the original tcp_probe module. I.e:
insmod tcp_probe_fixed.ko port=8080 full=1