- 15 Jul, 2004 1 commit
-
-
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 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.
-
- 12 Jul, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 06 Jul, 2004 1 commit
-
-
Shashi Guruprasad authored
in table_regex.
-
- 23 Jun, 2004 1 commit
-
-
Leigh B. Stoller authored
of the database).
-
- 18 Jun, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 08 Jun, 2004 1 commit
-
-
Leigh B. Stoller authored
virt_lans and virt_nodes. The intent is to migrate away from the convention we use in virt_nodes:ips and virt_lans:member to a more acceptable representation (one that does not rely on textual conventions like space separated lists of colon seperated entities. Instead: virt_nodes vname: nodeA virt_lans vname: link0 vport: 0 ip: 1.1.1.2 vname: link1 vport: 1 ip: 1.1.2.2 alter table virt_lans add vnode varchar(32) NOT NULL default '' \ after vname; alter table virt_lans add vport tinyint(3) NOT NULL default '0' \ after vnode; alter table virt_lans add ip varchar(15) NOT NULL default '' \ after vport; Then run this script to update these new fields from the existing ips,member slots. This must be run after installing the parser changes, or you can just run it again. ./ipmember.pl This is a transitional phase; the old slots will be left in place until they are no longer used, at which time we will also add a unique key to the table (pid,eid,vname,vnode,vport). assign_wrapper will be the hardest to change, but other scripts should be easy. Whats vport about? Rather then rely on IP addresses to form a unique key, we use vport (a small integer) so that we can delay the IP assignment until later (after initial DB insertion).
-
- 07 Jun, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 01 Jun, 2004 1 commit
-
-
Kirk Webb authored
plab nodes.
-
- 31 May, 2004 1 commit
-
-
Leigh B. Stoller authored
found this regex on a web page someplace.
-
- 26 May, 2004 1 commit
-
-
Kirk Webb authored
-
- 25 May, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 07 May, 2004 1 commit
-
-
Robert Ricci authored
-
- 03 May, 2004 1 commit
-
-
Leigh B. Stoller authored
see (or remember) any reason for this slot to be 20 chars, when the name of every other vname slot is 32. I looked in the event scheduler and there do not appear to be any problems there with bumping it. Note that I choose 64 cause we tend to construct agent names that might be longer then 32 since they are based on real vnames (lan0, node0, etc).
-
- 12 Apr, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 09 Apr, 2004 1 commit
-
-
Leigh B. Stoller authored
arbitrary interface settings associated with the virtual part of the topology.
-
- 07 Apr, 2004 2 commits
-
-
Leigh B. Stoller authored
not to run linktest.
-
Leigh B. Stoller authored
an "is_accesspoint" boolean to virt_lans. The former defaults to "ethernet" but can be set to anything (80211a, 80211b, etc) in the NS file. The is_accesspoint is temporary, and simply allows you to set which node is the accesspoint in the NS file. This slot will probably move to another table at some point. Added interface_capabilities table, which is intended to list the capabilities and the default values, for interfaces listed in the interface_types table. This allows a more flexible description of interfaces, expecially wireless devices. Initially, I have seeded the table with just the default protocol (ethernet) and the speed. For example, the fxp: fxp | protocols | ethernet | fxp | ethernet_defspeed | 100000 | As you can see, protocols is plural, and is intended to be a comma separated list. So, for the atheros wireless card: ath | protocols | 80211a,80211b,80211g | ath | 80211a_defspeed | 54000 | ath | 80211b_defspeed | 11000 | ath | 80211g_defspeed | 54000 | I gave up on using the entire row as a primary key; this is just too painful from perl/php/python where hashes are the most popular data structure, and duplicate columns get overwritten.
-
- 31 Mar, 2004 1 commit
-
-
Mac Newbold authored
-
- 20 Mar, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 19 Mar, 2004 1 commit
-
-
Kirk Webb authored
-
- 16 Mar, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 15 Mar, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 09 Mar, 2004 1 commit
-
-
Leigh B. Stoller authored
* Add proper check_slot() calls to all of the user input that is going into the DB (already had taint checking), since batchexp is now available for interactive use from ops. * Remove separate DB insertions of noswap/noidleswap reasons from web script, and pass on the command line from web to batchexp. Now inserted in the backend script so that they can be provided on the command line when batchexp is used interactively. * Change defaults in backend script; experiments now default to swappable and idleswap; previously defaulted to not swappable and no idleswap. * Remove [-s] (swappable) and add [-S <reason>] option. -S sets experiment to not swappable, with supplied reason (text string). * Add [-L <reason>] option. -L sets experiment to no idleswap, with supplied reason (text string). * Add several missing table_regex entries for experiments table.
-
- 27 Feb, 2004 1 commit
-
-
Robert Ricci authored
since some people really do have very short names.
-
- 17 Feb, 2004 1 commit
-
-
Leigh B. Stoller authored
chars) to text (65K chars) to avoid too-short problems with program agent command lines. Note that the maximum size allowed by table_regex checking will be set to 1024 for now.
-
- 13 Feb, 2004 1 commit
-
-
Leigh B. Stoller authored
we can check the data given by the user for all slots being modified.
-
- 11 Feb, 2004 1 commit
-
-
Robert Ricci authored
-
- 09 Feb, 2004 1 commit
-
-
Mac Newbold authored
Snapshot changes - mine to state_transitions (for nodealloc), and some by others, and someone's table_regex changes.
-
- 02 Feb, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 28 Jan, 2004 3 commits
-
-
Shashi Guruprasad authored
into table_regex.
-
Leigh B. Stoller authored
-
Leigh B. Stoller authored
Disallow _ in pid and eid since its illegal for DNS. Note, still allowing it node names though.
-
- 23 Jan, 2004 3 commits
-
-
Shashi Guruprasad authored
the same min/max as default:int. The day someone goes over these bounds, we'll worry about it!
-
Leigh B. Stoller authored
-
Shashi Guruprasad authored
This is needed to support assign's new 'local' features.
-
- 15 Jan, 2004 1 commit
-
-
Mac Newbold authored
- add functions to recursively dump hashes and arrays into a string suitable for printing as debugging output (great for data structures) - add three new trigger strings - add 'use strict', do corresponding cleanup stated changes: - move special-cased stuff in handleEvent for PXEBOOTING and BOOTING into triggers (PXEBOOTING, BOOTING, and CHECKGENISUP) - clarify (via comments) the existing kinds of triggers and which ones run when, and add a new kind (global "any-mode" triggers). We already had per-node mode-specific, per-node any-mode, and global mode-specific triggers. Now you can have a trigger that is good for any mode in a given state, that can be overridden on a mode-specific basis. This is great for PXEBOOTING, BOOTING, and ISUP, since they each have a trigger list that should be run regardless of what mode you're in. Now they only require 3 entries instead of 3*N that have to be maintained per mode. # A note about triggers: # # "per-node" triggers only affect their specific node in a # particular mode/state, and are run first of all. "global" # triggers are triggers for a given mode/state that affect all # nodes, and are run after any per-node triggers. "Any-mode" # triggers are tied to a state, and occur in that state in any # mode. The any-mode triggers are over-ridden by global triggers, # and if an "Any-mode" trigger for state XYZ exists as well as a # global trigger for mode FOOBAR state XYZ, then when I arrive in # XYZ any per-node triggers will be run. Then, if I'm in mode # FOOBAR, only the global trigger will run. If I'm in any other # mode, only the any-mode trigger will run. # (our "*" is stored as $TBANYMODE) # Per-node triggers have a specific node_id # Global triggers have "*" as the node_id # Any-mode triggers have "*" as the mode, and can be global or per-node The updated table looks like this in the accompanying change to database-fill.sql: +---------+----------+------------+-----------------------+ | node_id | op_mode | state | trigger | +---------+----------+------------+-----------------------+ | * | * | BOOTING | BOOTING, CHECKGENISUP | | * | * | ISUP | RESET | | * | * | PXEBOOTING | PXEBOOT | | * | RELOAD | RELOADDONE | RESET, RELOADDONE | | * | ALWAYSUP | SHUTDOWN | ISUP | +---------+----------+------------+-----------------------+ - I also cleaned up the functions that add, get, and delete triggers. Before, the get function didn't include global triggers. Now it does, and has an option to just get the per-node triggers. Add and delete are still just per-node, of course. - Also found and fixed some little bugs while I was in there. (global triggers not taking a list, These changes are me getting ready to re-add all the changes I made months ago in order to do a before-and-after experiment for my thesis. Between now and the end of next week I'll be working on taking before numbers, patching stated with the changes, and getting after numbers. The problems I'm trying to replicate are the problems and slowdowns we used to get when os_{load,setup} would reboot a node, thinking it had timed out, when it really didn't know whether it was making progress or not. The fix includes making os_{load,setup} depend on stated to watch for progress and timeouts, and do any appropriate retries. Part of that is the StateWait stuff, that lets programs watch for events easily, and the node_reboot-with-events stuff that puts stated in control of nodes as they reboot.
-
- 14 Jan, 2004 1 commit
-
-
Leigh B. Stoller authored
-
- 12 Jan, 2004 2 commits
-
-
Leigh B. Stoller authored
of the free nodes at once (113 nodes) three nodes lost bootinfo reply packets (one time each) causing them to retry, which was an invalid state (PXEWAIT to PXEBOOTING).
-
Leigh B. Stoller authored
-
- 08 Jan, 2004 1 commit
-
-
Mac Newbold authored
committed last, but this dump came out in a very different order, so the diff looks huge, even though it is only about 8 lines.
-