• Leigh Stoller's avatar
    Added my simplistic link tracing and monitoring. Example usage and · 7942119e
    Leigh Stoller authored
    some details can be found in the advanced tutorial that I wrote up.
    See this link:
    
    http://www.emulab.net/tutorial/docwrapper.php3?docname=advanced.html#Tracing
    
    The basic idea is that each virt_lan entry gets a couple of new slots
    describing the type of tracing that is desired.
    
      traced tinyint(1) default '0',
      trace_type enum('header','packet','monitor') NOT NULL default 'header',
      trace_expr tinytext,
      trace_snaplen int(11) NOT NULL default '0',
      trace_endnode tinyint(1) NOT NULL default '0',
    
    There is a new physical table called "traces" that is a little bit
    like the current delays table. A new tmcd command returns the trace
    configuration to the client nodes (tmcd/common/config/rc.trace).
    
    The delays table got a new boolean called "noshaping" that tells the
    delay node to bridge, but not set up any pipes. This allows us to
    capture traffic at the delay node, but without much less overhead on
    the packets.
    
    The pcapper got bloated up to do packet capture and more event stuff.
    I also had to add some mutex locking around calls into the pcap
    library and around malloc, since the current setup used linuxthreads,
    which is not compatable with the standard libc_r library. I was
    getting all kinds of memory corruption, and I am sure that if someone
    breathes on the pcapper again, it will break in some new way.
    7942119e
database-migrate.txt 104 KB