NAME

NS-2 Wireless TraceViewer


Currently only for a modified AODV-Routing protocol. But you are welcome to extend it to a more general tool.


FUNCTIONS

sub analyzeTraceFile()
Reads tracefile and write the main FLASH5-file and simple HTML-file.

Detect and provides global parameter from tracefile like "nodes", "area size", "simulation time". 
So it must be run first.

sub makePacketFlows()
TODO: analyze the tracefile, pick up packets and trace its flow through the network (send,forward,receive,drop)

TODO: anim them, make packets clickable to view informations of the packet/packetflow (packetsize, routing overhead

TODO: Which strategy?
One separate swf-file for every packet?
One separate swf-file for mobile node?
One separate swf-file for every application in a mobile node? <- can we trace this?

TODO:
statistic of simulation (send, recv, forw, drop, endtoend-communicatin/quality)
statistics of different packettypes (UDP/CBR, TCP, AODV-REQUEST/HELLO/REPLY/ERROR)

sub makeQueueMovies()
Reads directory and convert all found ``queue-$nodeID.dat'' files to FLASH-movies. (queue-$nodeID.swf)

I log every(?) event with queues and log it for every node. I modified


        queue/queue.cc
        queue/queue.h
        queue/priqueue.cc
        tcl/lib/ns-default.tcl
        tcl/lib/..?
        ..??

to make this work.

sub makeSampleMovies()
        SampleMovies are made of all samples-NodeID-NeighborID.dat in the directory.
        I log every received HELLO-Messages in AODV. I changed AODV-protocol of ns-2 version 2.1b9. 
        Possible would be measuring of all received packets, but HELLO-Messages come in relative constant timeintervals
        and are not too many. :-) 

        1 HELLO/sec, if signal>RxThresh and medium (MAC802.11) not too overloaded or blocked by other mobile nodes.
sub buildMobileNode()
This part of this program constructs the skeleton and the controls of a mobile node.

You can click on every node in the simulation area and have then access to the interface queue, measured signals of neighbors and other stuff.

The graphs will be loaded on demand, so we keep the mainflashmovie slim. If a graph of a neighbor will not popup, then this node never got a signal from this neighbor and so this file not exist. but flash tolerates this(no error) :-)


structure of a mobilenodemovieclip:
 frame1:
        movieclip
          |-actionsscript(stop) 
          |-nodebutton
          |-textField

 frame2:movieclip
          |-menushape
          |-buttonclose
          |-buttonqueue 
          |-textfieldID

          |-buttonsamples0
          |-testsamples0
          ..
          |-buttonsampleslastnode
          |-testsampleslastnode
          |-movieclipempty (name 'empty')


AUTHOR

Peter Liscovius


        email: peter.liscovius@mailbox.tu-dresden.de
        www  : http://peter.liscovius.de

Started work on this by frustration with "nam" and crawling through tracefiles.