Changelog
v1.5 Release
commit eb5fbe0
Author: Hagen Paul Pfeifer
Date: 2013-09-18
timesequence: add gnuplot size ratio option
Signed-off-by: Hagen Paul Pfeifer
commit 06021fa
Author: Hagen Paul Pfeifer
Date: 2013-09-18
timesequence: add option (-g) to pass gnuplot options
Currently implemented options are:
1. no-title
2. title="Foo Bar"
3. x-logscale
4. y-logscale
Signed-off-by: Hagen Paul Pfeifer
commit 8768b61
Author: Hagen Paul Pfeifer
Date: 2013-08-29
timesequence: 0 is valid value for range
Signed-off-by: Hagen Paul Pfeifer
commit cba333d
Author: Hagen Paul Pfeifer
Date: 2013-08-29
timesequence: concrete debug output for timeframe
Signed-off-by: Hagen Paul Pfeifer
commit 8ec9ff0
Author: Hagen Paul Pfeifer
Date: 2013-07-29
timesequence: code indent style fixes
Signed-off-by: Hagen Paul Pfeifer
commit 065ff4f
Author: Hagen Paul Pfeifer
Date: 2013-07-29
timesequence: fix null data gnuplot warning
Signed-off-by: Hagen Paul Pfeifer
commit c5ee9a4
Author: Hagen Paul Pfeifer
Date: 2013-07-18
statistic: fix bug where accounting pure ACKs failed
Signed-off-by: Hagen Paul Pfeifer
commit 1158902
Author: Hagen Paul Pfeifer
Date: 2013-07-18
statistic: truncate precision for output
Signed-off-by: Hagen Paul Pfeifer
commit 482dddc
Author: Hagen Paul Pfeifer
Date: 2013-07-18
statistic: rename title in normal output
Signed-off-by: Hagen Paul Pfeifer
commit 42178e2
Author: Hagen Paul Pfeifer
Date: 2013-07-18
timesequence: add option to hide advertised TCP window
Signed-off-by: Hagen Paul Pfeifer
commit 1729c54
Author: Hagen Paul Pfeifer
Date: 2013-07-16
statistic: display throughput as float limit to .2
Signed-off-by: Hagen Paul Pfeifer
commit 4bfd671
Author: Hagen Paul Pfeifer
Date: 2013-07-16
statistic: support throughput output
Signed-off-by: Hagen Paul Pfeifer
commit 14797be
Author: Hagen Paul Pfeifer
Date: 2013-07-16
statistics: account per flow duration
Signed-off-by: Hagen Paul Pfeifer
commit 1628064
Author: Hagen Paul Pfeifer
Date: 2013-07-16
statistics: add short option for extended mode
Signed-off-by: Hagen Paul Pfeifer
commit 91227cc
Author: Hagen Paul Pfeifer
Date: 2013-06-26
make: consider and help dist installers
Signed-off-by: Hagen Paul Pfeifer
commit 098ce4a
Author: Hagen Paul Pfeifer
Date: 2013-06-26
core: new version string
Signed-off-by: Hagen Paul Pfeifer
commit 46af81b
Author: Hagen Paul Pfeifer
Date: 2013-06-25
core: update version string
Signed-off-by: Hagen Paul Pfeifer
commit a554476
Author: Hagen Paul Pfeifer
Date: 2013-06-25
credits: new entry
Signed-off-by: Hagen Paul Pfeifer
commit 6ab05ce
Author: Hagen Paul Pfeifer
Date: 2013-06-25
throughput: fix indent length
Signed-off-by: Hagen Paul Pfeifer
commit fcec9d3
Author: Yoshiaki Kasahara
Date: 2013-06-25
throughput: add an option --per-second (-p) to normalize values and graph
also fix a typo in the description of --mode.
commit 6310bab
Author: Yoshiaki Kasahara
Date: 2013-06-25
throughput: Unit conversion is missing in the final summary output
commit 1cee845
Author: Yoshiaki Kasahara
Date: 2013-06-25
throughput: data_len belongs to the next time slot should be added to
self.data after the previous time slot is processed
commit bb00a87
Author: Hagen Paul Pfeifer
Date: 2013-06-24
core: add PPP support
This patch add PPP support. NS3 and real PPP traces are supported now
and the ppp dpkt disector is now enabled. Fixes #8
Reported-by: Clemens John
Signed-off-by: Hagen Paul Pfeifer
commit 634e31a
Author: Hagen Paul Pfeifer
Date: 2013-05-10
credits: update
Signed-off-by: Hagen Paul Pfeifer
commit 1738936
Author: Hagen Paul Pfeifer
Date: 2013-05-10
statistic: reformat code sections
Signed-off-by: Hagen Paul Pfeifer
commit 393dd7f
Author: Hagen Paul Pfeifer
Date: 2013-05-10
statitic: make numpy module optional required
Signed-off-by: Hagen Paul Pfeifer
commit 3ec3fcd
Merge: 7d89b5d 74285c0
Author: Hagen Paul Pfeifer
Date: 2013-05-02
Merge branch 'master' of http://github.com/fixje/captcp into fixje-master
commit 7d89b5d
Merge: 8ed21d2 44ef634
Author: Hagen Paul Pfeifer
Date: 2013-05-02
Merge branch 'master' of http://github.com/hgn/captcp
commit 74285c0
Author: Markus Fuchs
Date: 2013-05-01
added tcp inter-arrival times to extended statistic
commit f0f3138
Author: Markus Fuchs
Date: 2013-05-01
fixed format (removed tabs)
commit 063267f
Author: Markus Fuchs
Date: 2013-05-01
changed tcp packet size statistics => payload size
counting the size of pure ACKs does not make sense to me
commit 5ca2b19
Author: Markus Fuchs
Date: 2013-05-01
added duration to statistic
commit 6207468
Author: Markus Fuchs
Date: 2013-05-01
added --extended flag to statistic mod
commit 1e1180c
Author: Markus Fuchs
Date: 2013-05-01
formatting issues
commit 44ef634
Merge: 09b083e b1f2d67
Author: Hagen Paul Pfeifer
Date: 2013-04-23
Merge pull request #6 from fixje/master
Fix to analyze IPv6 traffic
commit b1f2d67
Author: Markus Fuchs
Date: 2013-04-23
added packet size to statistics
commit 9ccb119
Author: Markus Fuchs
Date: 2013-04-22
Hack to fix crash when examining IPv6-only traces
This fix provides a support for analyzing traces with IPv6 packets.
It will solve the problem for Unix platforms only, because
socket.inet_ntop is not available on other platforms acording to the
documentation.
This is what I got for a trace with IPv6 traffic only:
$ captcp statistic youtube-20130422-03-filtered.pcap
I experienced the following exception:
Traceback (most recent call last):
File "/usr/bin/captcp", line 4290, in
sys.exit(captcp.run())
File "/usr/bin/captcp", line 4261, in run
pcap_parser.run()
File "/usr/bin/captcp", line 552, in run
self.callback(dt, packet.data)
File "/usr/bin/captcp", line 826, in internal_pre_process_packet
self.cc.update(ts, packet)
File "/usr/bin/captcp", line 2459, in update
c = Connection(packet)
File "/usr/bin/captcp", line 2264, in __init__
TcpConn.__init__(self, packet)
File "/usr/bin/captcp", line 2155, in __init__
self.sip = Converter.dpkt_addr_to_string(ip.src)
File "/usr/bin/captcp", line 480, in dpkt_addr_to_string
iaddr = int(struct.unpack('I', addr)[0])
struct.error: unpack requires a string argument of length 4
commit 8ed21d2
Merge: 698d8c6 09b083e
Author: Hagen Paul Pfeifer
Date: 2013-03-18
Merge branch 'master' of http://github.com/hgn/captcp
commit 09b083e
Author: Hagen Paul Pfeifer
Date: 2013-02-27
timesequence: change scaling option
-t behavior is changed: until not the data set skips unwanted data. This
leads to several problem with zero option and window size calculation
because the first packets are not traced. The new method simple generate
all data but gnuplots xrange option is used to zoom in a specific area.
Signed-off-by: Hagen Paul Pfeifer
commit 698d8c6
Author: Hagen Paul Pfeifer
Date: 2013-02-19
throughtput: enhance help output
Signed-off-by: Hagen Paul Pfeifer
commit 005a22e
Author: Hagen Paul Pfeifer
Date: 2013-02-19
throughput: always show transfered bytes, throughput
Signed-off-by: Hagen Paul Pfeifer
commit 2d790c1
Author: Hagen Paul Pfeifer
Date: 2013-02-18
throughtput: display transfer unit correctly
Signed-off-by: Hagen Paul Pfeifer
commit ed62242
Author: Hagen Paul Pfeifer
Date: 2013-02-16
templates: linepoints to lines for inflight template
Signed-off-by: Hagen Paul Pfeifer
commit f1105b6
Author: Hagen Paul Pfeifer
Date: 2013-02-16
throughput: print usage message
Signed-off-by: Hagen Paul Pfeifer
commit 410d73a
Author: Hagen Paul Pfeifer
Date: 2013-02-16
througput: add link-layer mode
Signed-off-by: Hagen Paul Pfeifer
commit 39ed5f2
Author: Hagen Paul Pfeifer
Date: 2013-02-16
throughput: print usage if no argument is given
Signed-off-by: Hagen Paul Pfeifer
commit eb595d3
Author: Hagen Paul Pfeifer
Date: 2013-02-12
core: add IP ECN constants
Signed-off-by: Hagen Paul Pfeifer
commit df52ebf
Author: Hagen Paul Pfeifer
Date: 2013-02-12
statistic: point out that these are TCP flags
Signed-off-by: Hagen Paul Pfeifer
commit 2263572
Author: Hagen Paul Pfeifer
Date: 2013-02-11
timesequence: draw CWR marker darker
Signed-off-by: Hagen Paul Pfeifer
commit 45ad170
Author: Hagen Paul Pfeifer
Date: 2013-02-11
timesequence: draw ECN flags for ACK (RX) side
Signed-off-by: Hagen Paul Pfeifer
commit 14d20b4
Author: Hagen Paul Pfeifer
Date: 2013-02-11
timesequence: draw ECN flags for DATA (TX) side
Signed-off-by: Hagen Paul Pfeifer
commit 4507f1c
Author: Hagen Paul Pfeifer
Date: 2013-02-11
timesequence: add color definitions for ECN flags
Signed-off-by: Hagen Paul Pfeifer
commit 02dfa47
Author: Hagen Paul Pfeifer
Date: 2013-02-10
timesequence: re-format init method
Signed-off-by: Hagen Paul Pfeifer
commit 2cea7c3
Author: Hagen Paul Pfeifer
Date: 2013-02-10
timesequence: support data sender flow
Signed-off-by: Hagen Paul Pfeifer
commit e5d10cb
Author: Hagen Paul Pfeifer
Date: 2013-02-10
timesequence: add duration calculation
Signed-off-by: Hagen Paul Pfeifer
commit a4cd92c
Author: Hagen Paul Pfeifer
Date: 2013-02-10
timesequence: add PUSH flag visualization
Signed-off-by: Hagen Paul Pfeifer
commit 146b144
Author: Hagen Paul Pfeifer
Date: 2013-02-10
timesequence: refactor code - II
Signed-off-by: Hagen Paul Pfeifer
commit 671f3d2
Author: Hagen Paul Pfeifer
Date: 2013-02-10
timesequence: refactor code and make variable smaller
Signed-off-by: Hagen Paul Pfeifer
commit 3074230
Author: Hagen Paul Pfeifer
Date: 2013-02-10
timesequence: add string template system
Gnuplot files as well as all other template files are currently copied
in the output directory without any modification. To extend the format
and add _conditional_ additional information to the GPI file we must
change to content. Via python string.Template class we can simple change
file content. Without any regex magic.
Signed-off-by: Hagen Paul Pfeifer
commit e18a98c
Author: Hagen Paul Pfeifer
Date: 2013-02-09
make: include animation js data for install tgt
Signed-off-by: Hagen Paul Pfeifer
commit 3de4bcd
Author: Hagen Paul Pfeifer
Date: 2013-02-09
statistic: add ECN flag support (ECE/CWR)
Enable possibility to check for ECN bits on the wire.
Signed-off-by: Hagen Paul Pfeifer
commit cb8f781
Author: Hagen Paul Pfeifer
Date: 2013-02-09
core: captcp 1.1
Signed-off-by: Hagen Paul Pfeifer
commit 9f6828b
Author: Hagen Paul Pfeifer
Date: 2013-02-09
core: rename sequence graph in flow graph
Signed-off-by: Hagen Paul Pfeifer
commit 81015e0
Author: Hagen Paul Pfeifer
Date: 2013-02-08
statistic: re-format output to meet smaller terminals
Signed-off-by: Hagen Paul Pfeifer
commit db6c20a
Author: Hagen Paul Pfeifer
Date: 2013-02-08
core: python may locate anywhere[TM]
Signed-off-by: Hagen Paul Pfeifer
commit b98706b
Author: Hagen Paul Pfeifer
Date: 2013-02-08
core: change captcp URL in header
Signed-off-by: Hagen Paul Pfeifer
commit a12da62
Author: Hagen Paul Pfeifer
Date: 2013-02-08
core: more code indent to meet 80 char limit
Signed-off-by: Hagen Paul Pfeifer
commit 9440ce4
Author: Hagen Paul Pfeifer
Date: 2013-02-08
sequencegraph: don't recalc pi/2 every time
Signed-off-by: Hagen Paul Pfeifer
commit eecf424
Author: Hagen Paul Pfeifer
Date: 2013-02-08
core: code indent to meet 80 char limit
Signed-off-by: Hagen Paul Pfeifer
commit 1fe5135
Author: Hagen Paul Pfeifer
Date: 2013-02-08
core: create common packet info class
Signed-off-by: Hagen Paul Pfeifer
commit e1bfd3b
Author: Hagen Paul Pfeifer
Date: 2013-02-08
core: indedent module description
Just to align the code on the 80 chars coding style
pseudo rule.
Signed-off-by: Hagen Paul Pfeifer
commit f898e6e
Author: Hagen Paul Pfeifer
Date: 2013-02-05
core: hide trace directory, intro out dirs
Signed-off-by: Hagen Paul Pfeifer
commit e8d67fc
Author: Hagen Paul Pfeifer
Date: 2013-02-05
time-sequence: code cleanup
Signed-off-by: Hagen Paul Pfeifer
commit 2e55412
Author: Hagen Paul Pfeifer
Date: 2013-02-05
time-sequence: add TCP ACK and SACK offsets
The introduced offset information with zero option was missed for ACK
and SACK (selective ACKs) packets. So we add support here.
Signed-off-by: Hagen Paul Pfeifer
commit d1b2f74
Author: Hagen Paul Pfeifer
Date: 2013-02-05
core: print error and exit if snaplen is to short.
Signed-off-by: Hagen Paul Pfeifer
commit d490660
Author: Hagen Paul Pfeifer
Date: 2013-02-05
time-sequence: modify help/usage output
If the user forgot to provide a pcap filename the short description is
outputed. Now - because I think the user has no idea if he specify no
argument the whole usage() is printed too.
This should increase the user experience[TM].
Signed-off-by: Hagen Paul Pfeifer
commit a8e5c70
Author: Hagen Paul Pfeifer
Date: 2013-02-05
sequence-container: fix numpy module import
numpy has no second level class support or whatever is intended. Just
import first level instance and things work magically.
Signed-off-by: Hagen Paul Pfeifer
commit 1c0a70d
Author: Hagen Paul Pfeifer
Date: 2013-02-05
time-sequence: add zero option
Large TCP sequence number can be hard to read. Often the absolute number
is not required, a delta timestamp, starting with 0 is often superior.
The --zero (-Z) option just provide this information.
Signed-off-by: Hagen Paul Pfeifer
commit e1ed512
Author: Hagen Paul Pfeifer
Date: 2013-02-02
core: add function to get unwinded class instance
Signed-off-by: Hagen Paul Pfeifer
commit 37fba28
Author: Hagen Paul Pfeifer
Date: 2013-02-02
core: make module reference to packet info visible
Start to wrap() connection and flow id via PacketInfo class.
Signed-off-by: Hagen Paul Pfeifer
commit 46a403e
Author: Hagen Paul Pfeifer
Date: 2013-02-02
core: make PacketInfo superclass
All packet info class wrappers must subclass from this class.
Signed-off-by: Hagen Paul Pfeifer
commit 51ed70d
Author: Hagen Paul Pfeifer
Date: 2013-02-01
core: captcp v1.0
Signed-off-by: Hagen Paul Pfeifer
v1.0 Release
commit 99e8503
Date: 2013-01-29
data: integrate stop button
commit c4d2d4d
Date: 2013-01-29
animation module: functioning state
commit 1597690
Date: 2013-01-28
animation: add rtt calcalation functionality
commit c11a600
Date: 2013-01-28
packetinfo: rename function to something shorter
commit 69649ef
Date: 2013-01-28
packetinfo: add is_udp_packet method
commit 725e60e
Date: 2013-01-28
core: fix merge conflict
commit 278fcc5
Date: 2013-01-28
core: add PacketInfo class
This time this info has no network or transport layer specifics. Just a
multiplexer class.
commit b2a7da0
Date: 2013-01-28
core: rename PacketInfo in TcpPacketInfo
commit e3cca58
Date: 2013-01-28
core: add function to copy a directory structure
Needed for the much larger html file set for the animation module. May
be needed for other modules as well.
commit 3c24078
Date: 2013-01-28
animation-mod: add output directory
Current option honor the output file, which is wrong for this module.
commit 6ebd3b8
Date: 2013-01-28
animation-mod: add commandline parser
Parse required arguments for animation module, this includes
o verbose level
o pcap file path
o output directory
o connection (flow) id
commit 896a09f
Date: 2013-01-28
animation-mod: add infrastructure code
Simple add main class as well as all methods and hook into captcp
infrastructure. This commit can be used as a Hello World example.
commit 64a1135
Date: 2013-01-28
core: rename init function
pre_initialize was the method name where a module implement all pre
initializtion things. pre initilization is done twice - one
"initialization" is enough. So this patch renames all things.
commit 4e80f0a
Date: 2013-01-28
core: extend help/usage output
This patch increase the output of usage()/help() by providing a short
description of each module:
Usage: captcp [-h | --help] [--version] []
Available modules:
stacktrace - Hook into Linux Kernel to trace cwnd, ssthresh, ...
show - Tcpdump/tshark like mode
spacing - Time between packets and acks
statistic - Show statistic about all connections
payloadtimeport - Show distribution of data over ports
timesequence - Plot a Time-Sequence graph
geoip - Show country/location information about peers
inflight - Visualize all packets in flight and not ACKed
sound - Play sound based on payload/ack packets
connection - Visualize all communicating peers
throughput - Graph the throughput over time graph
template - Metamodule to generate template files for Gnuplot
sequencegraph - Graph a TCP sequencegraph (flow graph)
commit 0f61448
Date: 2013-01-28
core: format print_usage()
Just some tidy coding style cleanups
commit f0b7390
Date: 2013-01-28
timesequence mod: bring gnuplot arrows in foreground
Larger graphs show many sequncenumber graphs as well as ack graphs.
These lines will hide data-retransmission graphs - this should not
be the case. Just bring ACK and SACK info to foreground.
commit a2426f0
Date: 2013-01-27
animation-mod: integrate alpha release
This patch adds the required HTML/JS infrastructure. Captcp.py
functionality is added in a follow-up patch.
v0.9 Release
commit 1c543a2
Date: 2013-01-25
core: add new decoder functionality
Due to python-pcap removal the packet decoder was enforced to interpret
every packet as Ethernet - which will not be true in every case.
This patch check for some common types (Ethernet, Loopback, Linux) and
if not correct we enforce a Ethernet encoding - which will _probably_
not be correct, but it is better then nothing. A big warning message is
printed.
commit 2ff025a
Date: 2013-01-25
core: remove pcap library dependency
Pcap library was slightly used for link layer definitions, to get the
right dpkt decode. We not consider every packet as a ethernet frame.
commit 0efc431
Date: 2013-01-25
core: handle non-existing numpy package
Copy-paste error in code do not handle the module-not-exist-excetion
properly
v8 Release
commit 284ea25
Date: 2013-01-23
core: adjust copyright year string
Just to stay in time ...
commit af09e75
Date: 2013-01-23
core: add version option
Sometimes it is handy to know what captcp is used. --version will now
print the current version and exit the program.
commit 40ba3d1
Date: 2013-01-23
core: refactor usage() output
Provide usage() by a single function now - not several time in code.
commit f9ac182
Date: 2013-01-21
throughputmod: format code
Just cleanup to stick to our coding rules
commit 31a687b
Date: 2013-01-21
throughputmod: add reference time option
Via --reference-time (-r) it is now possible to GNUplot all connections
from one pcap file with the same time-offset. Until now (without -r) the
start-time for GNUplot graphs is the particular connection (time 0.0).
With -r, the reference time is now the first packet in the capture file.
This option makes it possible to draw several flows starting to
different times without align then on the time-axis.