- 23 Aug, 2017 2 commits
-
-
Leigh Stoller authored
-
Leigh Stoller authored
-
- 24 Sep, 2012 1 commit
-
-
Eric Eide authored
This commit is intended to makes the license status of Emulab and ProtoGENI source files more clear. It replaces license symbols like "EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited blocks that contain actual license statements. This change was driven by the fact that today, most people acquire and track Emulab and ProtoGENI sources via git. Before the Emulab source code was kept in git, the Flux Research Group at the University of Utah would roll distributions by making tar files. As part of that process, the Flux Group would replace the license symbols in the source files with actual license statements. When the Flux Group moved to git, people outside of the group started to see the source files with the "unexpanded" symbols. This meant that people acquired source files without actual license statements in them. All the relevant files had Utah *copyright* statements in them, but without the expanded *license* statements, the licensing status of the source files was unclear. This commit is intended to clear up that confusion. Most Utah-copyrighted files in the Emulab source tree are distributed under the terms of the Affero GNU General Public License, version 3 (AGPLv3). Most Utah-copyrighted files related to ProtoGENI are distributed under the terms of the GENI Public License, which is a BSD-like open-source license. Some Utah-copyrighted files in the Emulab source tree are distributed under the terms of the GNU Lesser General Public License, version 2.1 (LGPL).
-
- 30 Jul, 2012 1 commit
-
-
Leigh Stoller authored
-
- 19 Jun, 2012 1 commit
-
-
Leigh Stoller authored
Also fix the conditional that was causing it to not get printed.
-
- 07 Jun, 2012 1 commit
-
-
Leigh Stoller authored
-
- 30 May, 2012 1 commit
-
-
Leigh Stoller authored
-
- 21 May, 2012 1 commit
-
-
Leigh Stoller authored
so that we do not print blank mac addresses. Also print out encap_style when not the default.
-
- 13 Jan, 2012 1 commit
-
-
Leigh Stoller authored
-
- 01 Apr, 2011 1 commit
-
-
Leigh Stoller authored
will teach me to believe what I read on the web), there is absolutely no support at all inside. So, a little more wrapping of things and some code changes, and presto, dataseek() works. Good that we do not do this very often.
-
- 04 Aug, 2010 1 commit
-
-
Leigh Stoller authored
-
- 14 Apr, 2010 1 commit
-
-
Mike Hibler authored
Boss/ops/fs: reboot them together after setup rather than serially. Nodes: leave them in PXEWAIT throughout the setup, until after boss has been rebooted. At that point we send them the new bootinfo RESTART command telling pxeboot to re-DHCP and use the new info obtained (next-server) to contact a potentially new boss node. This is a quick way to switch a node in PXEWAIT from talking to the outer boss to talking to the inner one. A significant number of rinky-dink changes were needed to do this, primarily adding a new state, PXELIMBO, where nodes can be sent to sit until they are restarted. It turns out, just putting them in an existing state such as PXEWAKEUP or SHUTDOWN wouldn't work, as they tend to timeout or otherwise reboot.
-
- 11 Jun, 2009 1 commit
-
-
Leigh Stoller authored
-
- 14 Apr, 2009 1 commit
-
-
Kevin Atkinson authored
NS commands: tb-set-link-backfill <link> <bw> tb-set-link-simplex-backfill <link> <src node> <bw> tb-set-lan-backfill <lan> <bw> tb-set-node-lan-backfill <node> <lan> <bw> tb-set-lan-simplex-backfill <lan> <node> <tobw> <frombw> for now the tbres/FBSD410-DEL-BACKFILL image needs to be used.
-
- 03 Jun, 2008 1 commit
-
-
Leigh Stoller authored
-
- 11 Sep, 2007 1 commit
-
-
Leigh Stoller authored
-
- 07 Sep, 2007 2 commits
-
-
Robert Ricci authored
This is ridiculously hard to do with CVS.
-
Robert Ricci authored
I haven't removed the sshdport column from the nodes table yet, in case I need to go back quickly.
-
- 25 Oct, 2006 1 commit
-
-
Leigh Stoller authored
-
- 06 Feb, 2006 1 commit
-
-
Leigh Stoller authored
-
- 01 Feb, 2006 1 commit
-
-
Leigh Stoller authored
table.
-
- 06 Jan, 2006 1 commit
-
-
Leigh Stoller authored
bogged down far too long in this (redid a lot of queries to avoid useless and repeated queries). Needs more work; actually needs to be redone from ground up.
-
- 22 Jun, 2005 1 commit
-
-
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.
-
- 12 May, 2005 1 commit
-
-
Leigh Stoller authored
Firewalled experiments (see tbsetup/elabinelab.in for the other stuff). * To support firewalled experiments, needed to add a new virt_firewalls table to split the existing firewalls table up, which included both virtual and physical stuff. There are the usual frontend changes and a few other things scattered around, including tmcd.c. * The firewall code in tbswap got some beefing up to support adding and deleting nodes from the its special control net vlan. Note that I have not made any progress on containment of deleted nodes, just as we do not do anything now for teardown (unless its paniced, in which case the experiment cannot be modified anyway). * ptopgen and assign_wrapper got some interesting modifications: Unlike regular swapmod, we cannot just tear down all the vlans since that would interrupt everything inside the inner elab. Instead, leave the vlans as is. The problem is that when assign runs, it can just as easily pick different interfaces on the same nodes, which would be a royal pain in the ass to deal with! So, ptopgen got a new option (-u) that assign wrapper uses to tell ptopgen that it should prune out unused interfaces from nodes that are already allocated to the experiment. This is, at best, as pathetically gross hack, but it makes sure that all the interfaces stay the same across swapmods. * The unrelated revision of elabinelab has a bunch of new code for adding and deleting nodes from the inner elab. Mostly it deals with dhcpd (inner and outer, waiting for nodes to reboot, etc). It also deals with updating the vlans table in the DB, pruning out any nodes (ports) that are deleted but for which there are still interfaces in existing vlans. Said ports are them moved back to the default vlan with calls to snmpit. Also under another revision a a couple of weeks ago are the web interface changes to support the newnode MFS inside an inner Emulab. * swapexp and endexp got some more checks for firewalled and paniced experiments, which were missing.
-
- 04 Apr, 2005 1 commit
-
-
Timothy Stack authored
Mote and robot related stuff. The main thing is the addition of relay capabilities to capture and related things. * GNUmakefile.in: Add the capture and tip subdirectories to the client and client-install targets. * configure, configure.in, config.h.in: Detect srandomdev() for capture and add "mote/newmote" script. * capture/GNUmakefile.in, capture/capture.c: Add "relay" capabilities to capture. * capture/capquery.c: Query the capserver for the relay receiver's port number. * capture/capserver.c: Small hack to return the port number for a node. * db/libdb.pm.in, db/xmlconvert.in: Add virt_tiptunnels table. * event/program-agent/program-agent.c: Change log file names to something a little more user-friendly. Add a "MODIFY" event handler that lets the user set agent attributes (command, tag, timeout) without having to run a program. * event/sched/GNUmakefile.in, event/sched/console-agent.cc, event/sched/console-agent.h, event/sched/event-sched.c: Add console agents that can be used to snapshot a section of the capture log file. * event/sched/node-agent.cc: Some minor cleanup. * event/sched/simulator-agent.cc, event/sched/simulator-agent.h: Add the config data to the report mail. Add a "RESET" event handler that runs "loghole clean". Save the report mail in a file so it gets archived with the rest of the logs. * lib/libtb/tbdefs.h: Add CONSOLE object type. * mote/GNUmakefile.in, mote/newmote: Add newmote script, just a quick hack to add motes to the DB. * mote/tbuisp.in: Add another backend for loading motes through their relay capture server. * robots/mtp/mtp_dump.c: Dump the min/max values for x and y, handy for figuring out the bounds of the camera. * sql/database-fill.sql: Change the RELOAD-MOTE/SHUTDOWN -> ALWAYSUP/SHUTDOWN mode transition to ALWAYSUP/ISUP since stated doesn't seem to run triggers after a state change by a mode transition. * tbsetup/tbreport.in: Change the ordering of the eventlist so it displays event-sequences appropriately. * tbsetup/ns2ir/GNUmakefile.in, tbsetup/ns2ir/console.tcl, tbsetup/ns2ir/node.tcl, tbsetup/ns2ir/parse.tcl.in, tbsetup/ns2ir/sim.tcl.in: Add a "console" agent that represents the serial console for a node. * tbsetup/ns2ir/sequence.tcl: Add an "append" method so it is easier to build sequences dynamically. * tbsetup/ns2ir/topography.tcl: Make checkdest available to regular users. * tip/GNUmakefile.in, tip/tiptunnel.c: Add support for uploading a file to a relay version of capture and exporting the end connection as a pty. * tmcd/decls.h, tmcd/common/libsetup.pm: Bump version number since the dosubnodelist change is not backwards compatible. * tmcd/tmcd.c: Make dosubnodelist and dosubconfig callable even when a node isn't allocated. Add dotiptunnels command that returns which serial consoles are to be mounted on a node. Add mote version of subconfig that returns information needed to startup the relay version of capture. * tmcd/common/bootsubnodes: For motes, startup the relay version of capture (XXX stargate specific). * tmcd/common/libsetup.pm, tmcd/common/libtmcc.pm, tmcd/common/config/rc.config, tmcd/common/config/rc.tiptunnels: Client side changes for mounting another nodes serial line. * tmcd/common/rc.bootsetup: Always boot the subnodes, even when free. This is used for motes since their capture needs to be up for reloading at the time. * tmcd/linux/ixpboot: Shuffle some code around so the script doesn't fail if the ixp isn't allocated. * utils/loghole.in: Add "digest.out" and "report.mail" as global logs to be saved in archives and display the "report.mail" file when showing a loghole archive. * xmlrpc/emulabserver.py.in: Scrub more of the return values to get rid of "None"s.
-
- 11 Feb, 2005 1 commit
-
-
Mike Hibler authored
-
- 17 Jan, 2005 1 commit
-
-
Timothy Stack authored
More robot integration and some event system updates. * configure, configure.in: Detect rsync for loghole and add utils/loghole to the list of template files. * db/libdb.pm.in, db/xmlconvert.in: Add virt_node_startloc to the list of virtual tables. * event/lib/event.h, event/lib/event.c, event/lib/tbevent.py.tail: Add event_stop_main function to break out of the event_main() loop. Add timeline to the address tuple. * event/sched/GNUmakefile.in, event/sched/error-record.h, event/sched/error-record.c, event/sched/event-sched.8, event/sched/event-sched.h, event/sched/event-sched.c, event/sched/group-agent.h, event/sched/group-agent.c, event/sched/listNode.h, event/sched/listNode.c, event/sched/local-agent.h, event/sched/local-agent.c, event/sched/node-agent.h, event/sched/node-agent.cc, event/sched/queue.c, event/sched/rpc.h, event/sched/rpc.cc, event/sched/simulator-agent.h, event/sched/simulator-agent.c, event/sched/timeline-agent.h, event/sched/timeline-agent.c: Updated event scheduler, not completely finished, but well enough along for the robots. * lib/libtb/GNUmakefile.in, lib/libtb/popenf.h, lib/libtb/popenf.c, lib/libtb/systemf.h, lib/libtb/systemf.c: Add some handy versions of system/popen that take format arguments. * lib/libtb/tbdefs.h, lib/libtb/tbdefs.c: Add some more event and object types. * tbsetup/assign_wrapper.in: Add the virt_node_startloc building to desires string for a node. * tbsetup/ptopgen.in: Add a node's location to the feature list. * tbsetup/tbreport.in: Display the timeline/sequence an event is a part of. * tbsetup/ns2ir/GNUmakefile.in: Add timeline, sequence, and topography files. * tbsetup/ns2ir/node.tcl: Add initial position for nodes and allow them to be attached to "topographys". * tbsetup/ns2ir/parse-ns.in: Make a hwtype_class array with a node_type's class. Make an 'areas' array that holds the buildings where nodes are located. Make an 'obstacles' table with any obstacles in the building. * tbsetup/ns2ir/parse.tcl.in: Move named-args function from tb_compat.tcl to here. Add reltime-to-secs function that converts time given in a format like "10h2m1s" to a seconds value, used in "$ns at" so its easier to write time values. Add "K", "Kb", and "Kbps" as possible units for bandwidth (only the lowercase versions were available before). * tbsetup/ns2ir/program.tcl: Add "dir" and "timeout" attributes, although they don't go anywhere at the moment. * tbsetup/ns2ir/sequence.tcl, tbsetup/ns2ir/timeline.tcl, tbsetup/ns2ir/topography.tcl: Initial versions. * tbsetup/ns2ir/sim.tcl.in: Add support for timelines and sequences. Add 'node-config' method to change the default configuration for nodes produced by the Simulator object. Send an initial MODIFY event to any trafgen objects so their configuration gets through, even when there are no start/stop events. Move event parsing to the 'make_event' method. * utils/loghole.1, utils/loghole.in: Loghole utility, used for retrieving logs from experimental nodes and creating archives of the logs. * xmlrpc/emulabclient.py.in: Escape any strange characters in the output field. * xmlrpc/emulabserver.py.in: Add virt_node_startloc to the list of virtual_tables. Add emulab.vision_config and emulab.obstacle_config methods for getting information pertaining to the robots. Change the OSID listing to include more fields. Add a "physical" aspect to experiment.info to get information about the physical nodes. Add parent field to the events in the array returned by eventlist. Add sshdescription to get extra information needed to log into a vnode. Add node.statewait so you can wait for nodes to come up.
-
- 08 Sep, 2004 1 commit
-
-
Mike Hibler authored
-
- 26 Aug, 2004 1 commit
-
-
Mike Hibler authored
-
- 15 Jul, 2004 1 commit
-
-
Leigh 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 example. 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.
-
- 21 May, 2004 1 commit
-
-
Leigh Stoller authored
get them from veth_interfaces, but not bothering.
-
- 05 May, 2004 1 commit
-
-
Leigh Stoller authored
addresses of the interfaces used so that its easier to set the accesspoint using link_config and tevc. It would be nice if we did the mapping for the user (from lan0-node1 to MAC) but that would require changes to the scheduler to look inside events, and I do not want to got there yet.
-
- 12 Apr, 2004 1 commit
-
-
Leigh Stoller authored
-
- 16 Mar, 2004 1 commit
-
-
Leigh Stoller authored
for a while.
-
- 04 Mar, 2004 2 commits
-
-
Shashi Guruprasad authored
-
Shashi Guruprasad authored
e.g. 50s instead of 50 slots. Expanded the abbreviation coz one of the users was confused and guessed 50s to be 50 seconds * bandwidth.
-
- 21 Jan, 2004 2 commits
-
-
Leigh Stoller authored
-
Leigh Stoller authored
-
- 17 Nov, 2003 1 commit
-
-
Leigh Stoller authored
state machine (state). All of the stuff that was previously handled by using batchstate is now embedded into the one state machine. Of course, these mostly overlapped, so its not that much of a change, except that we also redid the machine, adding more states (for example, modify phases are now explicit. To get a picture of the actual state machine, on boss: stategraph -o newstates EXPTSTATE gv newstates.ps Things to note: * The "batchstate" slot of the experiments table is now used solely to provide a lock for batch daemon. A secondary change will be to change the slot name to something more appropriate, but it can happen anytime after this new stuff is installed. * I have left expt_locked for now, but another later change will be to remove expt_locked, and change it to active_busy or some such new state name in the state machine. I have removed most uses of expt_locked, except those that were necessary until there is a new state to replace it. * These new changes are an implementation of the new state machine, but I have not done anything fancy. Most of the code is the same as it was before. * I suspect that there are races with the batch daemon now, but they are going to be rare, and the end result is probably that a cancelation is delayed a little bit.
-
- 22 Sep, 2003 1 commit
-
-
Robert Ricci authored
2) Print the nodes' site, rather than our pname, in the 'hostnames' section, with a summary of how many unique sites there were at the top.
-