Call flow plotter =================== Sonny Rajagopalan 02/20/2013. Input file: Call flow file: example.cff Output file: SVG First working version: 02/23/2013. Things to add in V1.0 ===================== (a) FromTo flows. These flows are used when we want to abstract a number of call flows we are not interested in showing the details for. For example, for an application (L5) interaction, it makes no sense to discuss TCP 3-way handshake open and TCP close. In this case, we will show the TCP 3-way handshake as a FromTo flow. Typical uses of FromTo flows are: (1) Showing existing states in the beginning of a callflow. Example: a 3G data connection is already open before setting up a web services connection to a data center over the Internet (presumably using the 3G data connection). (2) Abstracting protocol activity in layers that are no interest to the reader (e.g., DNS discovery when discussing a BitTorrent interaction). (b) Check call flow file (*.cff) validity. (c) Self references in the call flows. To show import/pertinent processing that the node does internally. (d) Multiple "to" nodes support. (e) Placing text in a more sophisticated fashion. Multi-line text and word-wraps. (f) Anchor nodes--to show the importance of some nodes spanning the call flow. For example, in a 3G/WiFi multi access scenario, it is important to show that the IP anchor is both at the WLAN AP and the PGW. (g) Color profiles: Need to be able to change the colors of the text, nodes, arrows, arrow heads. Also need to be able to change the shape of the nodes. (h) Clickable SVG portions. For example, click an arrow, and contents of the application layer PDU show on another page. (i) Generate MS-Office usable pictures. SVG is not an MS-office recognizable format. Turn the SVG to PNG. Check out PythonMagick at http://stackoverflow.com/questions/1740158/documents-and-examples-of-pythonmagick (j) Extra credit: Take an arbitrary wireshark dump (pcap file) and a filter text and apply the filter and generate the call flow from the pcap file, with clickable details for the flows. (k) Introduce <AlongWithPrevious/>, <SoonAfterPrevious/> <LongAfterPrevious/> (will place ellipsis between the current, and previous horizontals) (l) Introduce titles. (m) Sessions: a handle for everything each run of ./cfp.py should have in memory. (n) Pages. Introduce page-length feature, which is the number of flows per page. This doesn't scale, as you could have just one flow with a large text segment. Perhaps we should just limit the description to 140 characters. (o) Should self references just show a box over the node stem, instead of the arrow loop?
SonnyRajagopalan/CallFlowPlot
CFP generates call flows from XML descriptions of the callflow nodes and the flows. The initial version is a proof of concept, based on http://callplot.sourceforge.net/ (thanks to Eric McMurry, a creator of the aforementioned, who also happens to be a colleague), but using XML input. Also, my primary aim was to generate call flows that can be used on a Windows platform (generating a PNG file, for instance). I am also adding support for a number of other features, namely design templates, reading directly from a PCAP file, generating clickable SVGs, etc.
Python