• Leigh B. Stoller's avatar
    Overview: Add Event Groups: · ed964507
    Leigh B. Stoller authored
    	set g1 [new EventGroup $ns]
    	$g1 add  $link0 $link1
    	$ns at 60.0 "$g1 down"
    See the new advanced tutorial section on event groups for a better
    Changed tbreport to dump the event groups table when in summary mode.
    At the same time, I changed tbreport to use the recently added
    virt_lans:vnode and ip slots, decprecating virt_nodes:ips in one more
    place. I also changed the web interface to always dump the event and
    event group summaries.
    The parser gets a new file (event.tcl), and the "at" method deals with
    event group events by expanding them inline into individual events
    sent to each member. For some agents, this is unavoidable; traffic
    generators get the initial params in the event, so it is not possible
    to send a single event to all members of the group. Same goes for
    program objects, although program objects do default to the initial
    command now, at least on new images.
    Changed the event scheduler to load the event groups table. The
    current operation is that the scheduler expands events sent to a
    group, into a set of distinct events sent to each member of the
    group. At some point we proably want to optimize this by telling the
    agents (running on the nodes) what groups they are members of.
    Other News: Added a "mustdelay" slot to the virt_lans table so the
    parser can tell assign_wrapper that a link needs to be delayed, say if
    there are events or if the link is red/gred. Previously,
    assign_wrapper tried to figure this out by looking at the event list,
    etc. I have removed that code; see database-migrate for instructions
    on how to initialize this slot in existing experiments. assign_wrapper
    is free to ignore or insert delays anyway, but having the parser do
    this makes more sense.
    I also made some "rename" changes to the parser wrt queues and lans
    and links. Not really necessary, but I got sidetracked (for several
    hours!) trying to understand that rename stuff a little better, and
    now I do.