- 17 May, 2005 2 commits
-
-
Mike Hibler authored
-
Mike Hibler authored
into the admin MFS.
-
- 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...
-
- 07 Mar, 2005 1 commit
-
-
Timothy Stack authored
Checkin some changes related to experiment automation and vnode feedback: * configure, configure.in: Add sensors/canaryd/feedbacklogs template. * db/libdb.pm.in, db/xmlconvert.in: Add "virt_user_environment" table that holds environment variable names and values. * event/lib/event.c: Allocate memory of the right size for event_notifications. * event/program-agent/GNUmakefile.in: Add version.c file and add install targets for the man page. * event/program-agent/program-agent.8: Man page describing the program-agent daemon. * event/program-agent/program-agent.c: Add a bunch of convenience features: let the user specify the working directory for commands; save output to separate files on every invocation of an agent; let the user specify a timeout for a command; make the set of environment variables sane and add vars given in the NS file in the opt array; a "status" file containing process information is written out when children are collected. Internal changes: child processes are collected immediately, instead of waiting for the next START event, so we can send back COMPLETE events; the daemon now runs with a real-time priority, to increase the chances of receiving events. * event/proxy/evproxy.c: Made it bidirectional so the program-agent's COMPLETE events make it back to the scheduler. * event/sched/error-record.c: Change the default log directory. * event/sched/event-sched.h, event/sched/event-sched.c: Setup an environment similar to a program-agent to run the user's log digester. * event/sched/node-agent.cc: Add a handler for the SNAPSHOT event that runs create_image for the node. * event/sched/simulator-agent.h, event/sched/simulator-agent.cc: Let the user specify a "DIGESTER" script that digests the log files into a summary of the results. Add event handler for remapping a vnode experiment. * event/sched/timeline-agent.c: Accept the RUN event as well as the START event. * os/GNUmakefile.in: Install the install-tarfile.1 man page. * os/install-tarfile: Automatically chown/chgrp any files that do not have valid user or group IDs, the new owner will be the user that swapped in the experiment. Include the install directory in the DB file. Add a "list" mode that just dumps what files have been installed and where. Add a "force" option so the user can forcefully install the file, even though the DB says its already there. * os/install-tarfile.1: Man page describing the install-tarfile tool. * os/syncd/GNUmakefile.in: Install man pages on ops. * sensors/canaryd/GNUmakefile.in: Link canaryd statically and install "feedbacklogs" tool. * sensors/canaryd/canaryd.c: Dump dummynet pipe data. * sensors/canaryd/canarydEvents.c: Log errors. * sensors/canaryd/feedbacklogs.in: Tool used to generate feedback data from canaryd log files. * sensors/slothd/GNUmakefile.in: Install digest-slothd on ops. * sensors/slothd/digest-slothd: Fix some bugs and write out an "alert" file with all the nodes/links that were overloaded. * tbsetup/os_load.in, tbsetup/libosload.pm.in: Add "waitmode" argument that lets you specify that you want to wait for the disk to finish loading and/or wait for the node to come back up in the new OS. * tbsetup/power.in: Remove debugging printf. * tbsetup/ns2ir/node.tcl, tbsetup/ns2ir/program.tcl, tbsetup/ns2ir/sequence.tcl, tbsetup/ns2ir/sim.tcl.in: Fix some quoting problems with event-sequences. Add -expected-exit-code and -tag options to the "$program run" event. Add -digester to the "$ns report" event that lets the user specify a program to run to digest the log files. * tbsetup/ns2ir/tb_compat.tcl.in: Change the initial scaling factor for feedback nodes to 1%, instead of 100%. * tmcd/tmcd.c, tmcd/common/libtmcc.pm: Add "userenv" command that returns the values in "virt_user_environment". Return new program agent fields: dir, timeout, and expected_exit_code. * tmcd/common/GNUmakefile.in: Install rc.canaryd. * tmcd/common/bootvnodes: Add hack to boost the program-agents to a real-time priority, they can't do it from inside the jail. * tmcd/common/rc.canaryd: Rc script for canaryd. * tmcd/common/watchdog: Don't fail outright if there is a bad line in the battery.log * tmcd/common/rc.progagent: Append "userenv" data to the program-agent config file. * utils/GNUmakefile.in: Install loghole and its man page on ops. * utils/loghole.1: Document "clean" command and the change in loghole directories. * utils/loghole.in: Add "clean" command and parallelization. * xmlrpc/emulabserver.py.in: Add "virt_user_environment" table. Order the eventlist by "idx" and time, needed for sequences. And removed unnecessary nologin checks.
-
- 11 Feb, 2005 1 commit
-
-
Timothy Stack authored
or not, otherwise the proper regmon module isn't installed and mote loading won't work.
-
- 02 Feb, 2005 1 commit
-
-
Kirk Webb authored
oops - hook in rc.stargate.
-
- 07 Jan, 2005 2 commits
-
-
Leigh B. Stoller authored
when the node reboots.
-
Leigh B. Stoller authored
* Do not exit from the cdboot, just return!
-
- 06 Jan, 2005 1 commit
-
-
Leigh B. Stoller authored
* Add boot_errno to the nodes table so that nodes can report in a subcode to indicate what went wrong. At present, we do not report any real error codes; that is going to take some time to work out since it will reqiure a bunch of changes to the boot scripts. * Add new table node_bootlogs to store logs provided by the nodes. Not a full console log, but a log of the tmcd client side part. We can make it a full log if we want though; just means mucking about with the boot phase a bit. * Add new state transition to NORMALv2 and PCVM state machines. "TBFAILED" is a new state that is sent (after TBSETUP) if a node fails somewhere in the tmcd client side. * Change TBNodeStateWait() to take a list of states (instead of single state) and an optional pass by reference parameter to return the actual state that the node landed in. Change all calls to TBNodeStateWait() of course. * Change os_setup (and libreboot in wait mode) to look for both TBFAILED...
-
- 07 Dec, 2004 1 commit
-
-
Russ Fish authored
-
- 22 Nov, 2004 1 commit
-
-
Russ Fish authored
autologin of the swap-in user, and a user sshd on port 2222.
-
- 30 Aug, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 25 Aug, 2004 1 commit
-
-
Mike Hibler authored
Overview of simply firewall setup. Experimentor specifies in their ns file: set fw [new Firewall $ns] $fw style <open|closed|basic> to set up an "open" ("allow any"), "closed" ("deny any"), or "basic" (allow ICMP and ssh) firewall. "basic is the default. Additional rules can be added with: $fw add-rule <IPFW format rule> $fw add-numbered-rule <1-50000> <IPFW format rule> where the former implicitly numbers rules such that the firewall processes them in the order given in the NS file. The latter allows explicit specification of the numbering. Currently the rules are fixed strings, there is no variable substitution. There is also no syntax checking done on the rules at parse time. We allocate an extra node to the experiment to serve as a firewall. Currently that node runs FreeBSD and uses IPFW. In the initial configuration, all other nodes in the experiment will just be setup with a default route that points to the firewall node. So all outbound traffic will pass through it. Inbound traffic will still travel straight to the node. This should prevent nodes from accidentally initiating attacks on the outside world. Long term we will of course enforce the firewall on all traffic, that should not have any effect on the NS syntax above. When a node boots, there will be an rc.firewall script that checks to see if there is a firewall for the experiment and if so, which node it is. This is done with the TMCD "firewallinfo" command which returns: TYPE=none TYPE=remote FWIP=N.N.N.N TYPE=<fwtype> STYLE=<fwstyle> IN_IF=<macaddr> OUT_IF=<macaddr> RULENO=<num> RULE="<ipfw command string>" RULENO=... ... In the case of no firewall we get back TYPE=none, and we continue as normal. Otherwise, there are two types of replies, one for a node that is being firewalled (TYPE=remote) and one for a node that is a firewall (TYPE=<fwtype> + RULES). In the TYPE=remote case, the firewall node indicated by FWIP. This is the address we use for the default route. For TYPE=<fwtype>, we are the firewall, and we get STYLE and IN_IF/OUT_IF info. Here TYPE indicates whether we should use ipfw or whatever. For now it is always ipfw. IN_IF and OUT_IF may someday indicate the interfaces to use for the internal and external connections, right now both will indicate the control net interface. So, after ensuring that the ipfw modules is loaded, we grab the provided RULE info, which includes both per-experiment and default rules, and setup ipfw. Issues to resolve: - synchronization: how to ensure firewall comes up first - how to better implement the firewalling (i.e., without the cooperation of the nodes) - support the equiv of linkdelays (on-node firewalling)? - allow firewalls within experiments? (ie., on experimental interfaces) - dynamic changing of firewall rules via events? - how to show firewall state in various web pages
-
- 30 Jun, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 28 Jun, 2004 1 commit
-
-
Leigh B. Stoller authored
from libsetup (ISDELAYNODE()).
-
- 20 Feb, 2004 1 commit
-
-
Leigh B. Stoller authored
passable manner. Mostly this change overwrites Mike's changes for dealing with the pump race. Rather than setting ONBOOT="yes" for all interfaces (which is what triggers the pump race), only set the control interface to ONBOOT="yes", all the others get ONBOOT="no" so that ifup will not be called on them. Also remove the hostname set from the ifcfg scripts since that totally messes up dhclient-script, which is what is used in Redhat 9.0 (instead of pump). The problem with ONBOOT="no" is that the interfaces will not get probed if ifup is not called. This messes up testbed ifconfig later. So, added an rc.linux script that does just the probe for all interfaces. This script is called from rc.bootsetup, if rc."osname" exists.
-
- 17 Feb, 2004 1 commit
-
-
Leigh B. Stoller authored
this was to add soft reconfig support so that nodes could be reconfigured without having to reboot them. This appears to work, and has been tested with jails getting moved around. I've also tested the new code on the MFS, but still no testing has been done on PLAB nodes. The main change is that most of the code moved out of libsetup.pm, and was split into constituent rc scripts, each of which does its own thing, including cleaning up and preparing for making an image. Most of that central knowledge has been moved out into the scripts. Still more to do but this was a good start.
-