1. 01 Jun, 2004 1 commit
  2. 25 May, 2004 1 commit
  3. 11 May, 2004 1 commit
    • Leigh B. Stoller's avatar
      New event agent to control wireless links. At present, this agent is · 6cf05acb
      Leigh B. Stoller authored
      very specific to wireless links in general, and to iwconfig on Redhat
      9.0. It allows you to control the entire lan or an individual member
      of a wireless lan via the event system. For example to change the
      accesspoint of a wireless lan, you could do this:
      
      	tevc -e foo/bar now lan0 modify accesspoint=00:09:5B:93:0B:A4
      
      The agent deciphers the event arguments and calls iwconfig with the
      appropriate as needed. Note that there are many ways to make the lan
      unusable doing this, so you want to be careful. You can get the MAC
      addresses from the experiment info page (tbreport).
      
      New script called link_config, which might be badly named since it
      implies generality) to front end tevc. Operates mostly like
      delay_config in that it will change the physical table settings, and
      optionally (-m) the virtual table entries. So,
      
      	link_config testbed two-wireless lan0 accesspoint=00:09:5B:93:0B:A4
      
      You can change individual members of a lan too:
      
      	link_config -s nodew1 testbed two-wireless lan0 txpower=50
      
      Currently no web interface; too much work. I will add an xmlrpc
      interface though since that is easy to do.
      6cf05acb
  4. 26 Apr, 2004 2 commits
    • Mike Hibler's avatar
      Cleanup Makefiles: · 297019fb
      Mike Hibler authored
      1. "make clean" will just remove stuff built in the process of a regular build
      2. "make distclean" will also clean out configure generated files.
      
      This is how it was always supposed to be, there was just some bitrot.
      297019fb
    • Mike Hibler's avatar
      Added config option DISABLE_EXPORTS_SETUP for sites without proper control · 56acaee5
      Mike Hibler authored
      of their file server (aero)
      
      Extend DISABLE_NAMED_SETUP: when set, we don't set a nodes hostname to
      <name>.<eid>.<pid>.<domain> since that won't resolve.  Just stick with
      pc<XXX>.<domain> in those cases.  The various sethostname* scripts are
      now .in so that they get preprocessed to check for the option.
      56acaee5
  5. 16 Apr, 2004 1 commit
  6. 08 Apr, 2004 1 commit
  7. 06 Apr, 2004 1 commit
  8. 23 Mar, 2004 1 commit
  9. 17 Mar, 2004 1 commit
  10. 10 Mar, 2004 1 commit
  11. 05 Mar, 2004 1 commit
  12. 03 Mar, 2004 1 commit
    • Kirk Webb's avatar
      More plab updates/changes · d4a887e5
      Kirk Webb authored
      * implemented PLC slice renewal
      * restructured daemon code/startup
        - removed getfree daemon (replaced by plabdiscover; run from cron)
        - moved generic daemonizing code into libtestbed (class)
        - created plabrenewd - small script that utilizes daemonizing class
        - removed plabdaemon file.
        - updated bossnode startup scripts
      * changed slice prefix - PLC denies permission w/ anything other than "utah"
      * Minor semantic changes to module API to be more consistent with other parts.
      * Some bug fixes.
      d4a887e5
  13. 25 Feb, 2004 1 commit
    • Kirk Webb's avatar
      Kirk takes the weed whacker to the plab code. This is the first pass result. · ae2eec76
      Kirk Webb authored
      I'll come along for a closer cut in the future.
      
      * Modularized the plab communications 'adaptor' interface and moved the
        dslice- and PLC-specific code into their own modules.
      
      * Wrote an API definition README
      
      * Separated out generic routines from libplab into their own library modules
        (libtestbed.py and libdb.py)
      
      Functionally, not much has changed - this was just a massive re-org with some
      other cleanup.  Should be much easier to code up new PLAB interfaces as the
      plab folks flail around in their attempt to standardize on something.
      
      XXX: may want to re-think where the generic library modules should go.  If
      more python code enters Elab, we'll probably want to move 'em to more standard
      locations.
      
      This isn't the end of the cleanup - I would eventually like to go back and
      rethink the class structures, beef up the comments, and extend the API.
      ae2eec76
  14. 12 Feb, 2004 1 commit
  15. 10 Feb, 2004 1 commit
  16. 29 Jan, 2004 1 commit
    • Robert Ricci's avatar
      New script: assign_prepass · 57c245f5
      Robert Ricci authored
      Acts as a transparent filter for assign - parses the top file given to
      assign, coarsens the graph in it, then feeds that to assign.
      Translates assign's output back into context of the original graph,
      and spits that out for parsing.
      
      Right now, only includes a single coarsening algorithm - conglomerates
      the nodes in leaf lans. Hopefully, it will soon include other
      algorithms, such as running METIS to partition the graph.
      
      Still needs a fair amount of work to be general - only works on
      certain types of topologies right now.
      
      Not called yet, but that will be trivial - just need to change
      assign_wrapper to call assign_prepass instead of assign.
      57c245f5
  17. 15 Jan, 2004 1 commit
  18. 12 Jan, 2004 1 commit
  19. 06 Jan, 2004 2 commits
  20. 23 Dec, 2003 1 commit
  21. 16 Dec, 2003 1 commit
  22. 15 Dec, 2003 1 commit
    • Shashi Guruprasad's avatar
      Distributed NSE changes. In other words, simulation resources are · d266bd71
      Shashi Guruprasad authored
      now mapped to more than one PC if required. The simnode_capacity
      column in the node_types table determines how many sim nodes can
      be packed on one PC. The packing factor can also be controlled via
      tb-set-colocate-factor to be smaller than simnode_capacity.
      
      - No frontend code changes. To summarize:
        $ns make-simulated {
          ...
        }
        is still the easy way to put a whole bunch of Tcl code to be
        in simulation.
        One unrelated fix in the frontend code is to fix the
        xmlencode() function which prior to this would knock off
        newlines from columns in the XML output. This affected
        nseconfigs since it is one of the few columns with embedded
        newlines. Also changed the event type and event object type
        in traffic.tcl from TRAFGEN/MODIFY to NSE/NSEEVENT.
      
      - More Tcl code in a new directory tbsetup/nseparse
        -> Runs on ops similar to the main parser. This is invoked
           from assign_wrapper in the end if there are simnodes
        -> Partitions the Tcl code into multiple Tcl specifications
           and updates the nseconfigs table via xmlconvert
        -> Comes with a lot of caveats. Arbitrary Tcl code such as user
           specified objects or procedures will not be re-generated. For
           example, if a user wanted a procedure to be included in Tcl
           code for all partitions, there is no way for code in nseparse
           to do that. Besides that, it needs to be tested more thoroughly.
      
      - xmlconvert has a new option -s. When invoked with this option,
        the experiments table is not allowed to be modified. Also,
        virtual tables are just updated (as opposed to deleting
        all rows in the first invocation before inserting new rows)
      
      - nse.patch has all the IP address related changes committed in
        iversion 1.11 + 2 other changes. 1) MTU discovery support in
        the ICMP agent 2) "$ns rlink" mechanism for sim node to real
        node links
      
      - nseinput.tcl includes several client side changes to add IP
        routes in NSE and the kernel routing table for packets crossing
        pnodes. Also made the parsing of tmcc command output more robust
        to new changes. Other client side changes in libsetup.pm and other
        scripts to run nse, are also in this commit
      
      - Besides the expected changes in assign_wrapper for simulated nodes,
        the interfaces and veth_interfaces tables are updated with
        routing table identifiers (rtabid). The tmcd changes are already
        committed. This field is used only by sim hosts on the client side.
        Of course, they can be used by jails as well if desired.
      d266bd71
  23. 11 Dec, 2003 1 commit
  24. 09 Dec, 2003 1 commit
    • Kirk Webb's avatar
      · e664ad58
      Kirk Webb authored
      A couple of things:
      
      1) Added PLAB_SLICEPREFIX so that we can separately instantiate plab slices
      from mini, or elsewhere.  On the mainbed, its set to "emulab".  On mini, its
      set to "emulab_mini".  The "emulab" part has to exist first so that the new
      plab node manager doesn't nuke our dslice slivers.
      
      2) Fixed up Plab.getFree() so that it doesn't try to add the same IP twice
      to the DB if a new one is found, and listed more than once.
      e664ad58
  25. 04 Dec, 2003 1 commit
    • Leigh B. Stoller's avatar
      New script. · f06d9a59
      Leigh B. Stoller authored
      Grant permission to use types/class of nodes. If given a specific
      "type", then grant permission to use just that type. If its a class, then
      permission to use all of the types in that class, the class itself, and any
      aux nodetypes for the type/class (node_types_auxtypes table).
      
      For example:
      
      	wap grantnodetype -p testbed pc2000
      	wap grantnodetype -p testbed pcvm
      	wap grantnodetype -p testbed pcplab
      f06d9a59
  26. 02 Dec, 2003 1 commit
  27. 01 Dec, 2003 1 commit
    • Robert Ricci's avatar
      New scripts: tarfiles_setup, fetchtar.proxy, and webtarfiles_setup . · c0c6547c
      Robert Ricci authored
      The idea is to give us hooks for grabbing experimenters' tarballs (and
      RPMs) from locations other than files on ops. Mainly, to remove
      another dependance on users having shells on ops.
      
      tarfiles_setup supports fetching files from http and ftp URLs right
      now, through wget. It places them into the experiment directory, so
      that they'll go away when the experiment is terminated, and the rest
      of the chain (ie. downloading to clients and os_setup's checks)
      remains unchaged.  It is now tarfiles_setup's job to copy tarballs and
      RPMs from the virt_nodes table to the nodes table for allocated nodes.
      This way, it can translate URLs into the local filenames it
      constructs. It get invoked from tbswap.
      
      Does the actual fetching over on ops, running as the user, with
      fetchtar.proxy.
      
      Should be idempotent, so we should be able to give the user a button
      to run webtarfiles_setup (none exists yet) yet to 'freshen' their
      tarballs. (We'd also have to somehow let the experiment's nodes know
      they need to re-fetch their tarballs.)
      
      One funny side effect of this is that the separator in
      virt_nodes.tarfiles is now ';' instead of ':' like nodes.tarballs,
      since we can now put URLs in the former. Making these consistent is a
      project for another day.
      c0c6547c
  28. 26 Nov, 2003 1 commit
  29. 25 Nov, 2003 1 commit
  30. 16 Nov, 2003 1 commit
  31. 24 Oct, 2003 2 commits
    • Robert Ricci's avatar
      Commit the stuff necessary to copy out new plab rootballs, versions of · d12f9b61
      Robert Ricci authored
      which had been hanging around in my home directory for a while.
      
      There are a few new things in plab/etc/netbed_files that set up a
      directory of the same name in @prefix@. This will get rsync'ed with
      netbed_files/ on each planetlab node.
      log/  - just needs to exist for the httpd server
      sbin/ - contains thttpd, and scripts to manipulate it
      www/  - the directory served by thttpd. Contains symlinks to the 'real'
              location of the rootballs (etc/plab)
      
      I've committed a binary of thttpd - this is simply because it'd be a
      PITA to compile a Linux binary for every devel tree, etc.
      
      PLAB_ROOTBALL has now become a configure options. The idea is that we
      will keep the latest version number in configure.in, but you can
      override it in your defs
      file. This way, we don't have to update every defs file when there's a new
      version, but people can still play around with their own version if they want.
      
      The two scripts that interact with the plab nodes skip ones that are
      down. They ssh in as 'utah1', meaning that one of us who has access to
      that account needs to run them, so that they can have access to our
      keys. We can put boss's public key (or something) out there to remove
      this requirement.
      
      plabdist runs an rsync between @prefix@/etc/plab/netbed_files and a
      file of the same name on the planetlab nodes. It's intended to be run
      from the main install tree - the local rsync directory is not normally
      set up in devel trees. It runs in parallel, but is limited to 4 to
      avoid beating up boss too much. Takes about 1:40 with the current set
      of plab nodes (took > 10 minutes doing one at a time).
      
      plabhttpd (re)starts the mini web server on all plab nodes
      d12f9b61
    • Mike Hibler's avatar
      f77e9fc4
  32. 23 Oct, 2003 2 commits
  33. 16 Oct, 2003 1 commit
  34. 15 Oct, 2003 1 commit
    • Mike Hibler's avatar
      Uniform syslog'ing. Change everything I could find to use a syslog facility · cc6d6fa7
      Mike Hibler authored
      as defined in the defs-* file (e.g. "TBLOGFACIL=local2").  The default is
      "local5" which is what we are setup to use so you shouldn't need to mess
      with your defs- file!
      
      perl scripts just get this value configured in when configure is run.
      C programs get the value in two ways.  For programs that are intimate with
      the testbed infrastructure, and include "config.h", they just get it from
      that file.  For programs that we sometimes use outside the Emulab build
      environment (e.g., frisbee, capture) and that don't include config.h,
      the value is set via a "-DLOG_TESTBED=..." in the GNUmakefile build line.
      If the value isn't set, it defaults to what it used to be (usually LOG_USER).
      
      Still to do: healthd, hmcd (whose build doesn't seem to be completely
      integrated) and plabdaemon.in (since its icky python :-)
      cc6d6fa7
  35. 06 Oct, 2003 1 commit
  36. 30 Sep, 2003 1 commit