1. 13 Aug, 2004 1 commit
  2. 11 Aug, 2004 1 commit
  3. 09 Aug, 2004 4 commits
    • Leigh B. Stoller's avatar
      Fix another silly typo. · 03a543bd
      Leigh B. Stoller authored
      03a543bd
    • Leigh B. Stoller's avatar
      Forgot to add new file. · ef0a0886
      Leigh B. Stoller authored
      ef0a0886
    • Leigh B. Stoller's avatar
      Fix silly spelling mistake. · 4062690b
      Leigh B. Stoller authored
      4062690b
    • Leigh B. Stoller's avatar
      Major rework of the script interface to Emulab. Up to now we have been · 5ef8f70a
      Leigh B. Stoller authored
      supporting both a shell script driven interface, plus the newer XMLRPC
      interface. This change removes the script driven interface from boss,
      replacing it with just the XMLRPC interface. Since we like to maintain
      backwards compatability with interfaces we have advertised to users (and
      which we know are being used), I have implemented a script wrapper that
      exports the same interface, but which converts the operations into XMLRPC
      requests to the server. This wrapper is written in python and uses our
      locally grown xmlrpc-over-ssh library. Like the current "demonstation"
      client, you can take this wrapper to your machine that has python and ssh
      installed, and use it there; you do not need to use these services from
      just users.emulab.net. Other things to note:
      
      * The wrapper is a single python script that has a "class" for each wrapped
        script. Running the wrapper without any arguments will list all of the
        operations it supports. You can invoke the wrapper with the operation as
        its argument:
      
          {987} stoller$ script_wrapper.py swapexp --help
          swapexp -e pid,eid in|out
          swapexp pid eid in|out
          where:
               -w   - Wait for experiment to finish swapping
               -e   - Project and Experiment ID
               in   - Swap experiment in  (must currently be swapped out)
              out   - Swap experiment out (must currently be swapped in)
      
          Wrapper Options:
              --help      Display this help message
              --server    Set the server hostname
              --login     Set the login id (defaults to $USER)
              --debug     Turn on semi-useful debugging
      
         But more convenient is to create a set of symlinks so that you can just
         invoke the operation by its familiar scriptname. This is what I have
         done on users.emulab.net.
      
          {987} stoller$ /usr/tesbed/bin/swapexp --help
          swapexp -e pid,eid in|out
          swapexp pid eid in|out
      
      
      * For those of you talking directly to the RPC server from python, I have
        added a wrapper class so that you can issue requests to any of the
        modules from a single connection. Instead using /xmlrpc/modulename, you
        can use just /xmlrpc, and use method names of the form experiment.swapexp,
        node.reboot, etc.
      
        Tim this should be useful for the netlab client which I think opens up
        multiple ssh connections?
      
      * I have replaced the paperbag shell with a stripped down xmlrpcbag shell
        that is quite a bit simpler since we no longer allow access to anything
        but the RPC server. No interactive mode, no argument processing, no
        directory changing, etc. My main reason for reworking the bag is to make
        it easier to understand, maintain, and verify that it is secure. The new
        bag also logs all connections to syslog (something we should have done in
        the orginal). I also added some setrlimit calls (core, maxcpu). I also
        thought about niceing the server down, but that would put RPC users at a
        disadvantage relative to web interface users. When we switch the web
        interface to use the XMLRPC backend, we can add this (reniceing from the
        web server would be a pain cause of its scattered implementation).
      5ef8f70a
  4. 05 Aug, 2004 1 commit
  5. 28 Jul, 2004 1 commit
  6. 14 Jul, 2004 2 commits
  7. 12 Jul, 2004 1 commit
  8. 08 Jul, 2004 1 commit
  9. 24 Jun, 2004 1 commit
    • Mike Hibler's avatar
      Improve the client-side install. With these changes, it should now be · 976133e4
      Mike Hibler authored
      possible to:
      
      	gmake client
      	sudo gmake client-install
      
      on a FBSD4, FBSD5, RHL7.3, and RHL9.0 client node.
      
      There are still some dependencies that are not explicit and which would
      prevent a build/install from working on a "clean" OS.  Two that I know of are:
      you must install our version of the elvin libraries and you must install boost.
      976133e4
  10. 21 Jun, 2004 1 commit
  11. 01 Jun, 2004 1 commit
  12. 25 May, 2004 1 commit
  13. 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
  14. 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
  15. 16 Apr, 2004 1 commit
  16. 08 Apr, 2004 1 commit
  17. 06 Apr, 2004 1 commit
  18. 23 Mar, 2004 1 commit
  19. 17 Mar, 2004 1 commit
  20. 10 Mar, 2004 1 commit
  21. 05 Mar, 2004 1 commit
  22. 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
  23. 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
  24. 12 Feb, 2004 1 commit
  25. 10 Feb, 2004 1 commit
  26. 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
  27. 15 Jan, 2004 1 commit
  28. 12 Jan, 2004 1 commit
  29. 06 Jan, 2004 2 commits
  30. 23 Dec, 2003 1 commit
  31. 16 Dec, 2003 1 commit
  32. 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
  33. 11 Dec, 2003 1 commit
  34. 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