Added my simplistic link tracing and monitoring. Example usage and
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.
Showing with 1148 additions and 122 deletions