1. 27 Aug, 2003 4 commits
  2. 22 Aug, 2003 1 commit
  3. 20 Aug, 2003 1 commit
  4. 19 Aug, 2003 1 commit
  5. 15 Aug, 2003 1 commit
  6. 12 Aug, 2003 1 commit
    • Austin Clements's avatar
      Plab node setup now basically works. There are just a few bugs to · f3beec6e
      Austin Clements authored
      iron out.  TMCD/libsetup now has a plabconfig commands that parallels
      the jailconfig command.  The Plab boot process has been added to
      libsetup and a -p option has been added to vnodesetup to parallel the
      -j option.  Parts of the code that were Jail-specific, but labeled
      just as vnode stuff have been renamed.  $vnodedir in vnodesetup has
      been removed, since it was redunant with libsetup's CONFDIR, and
      CONFDIR is much more intelligent.
      f3beec6e
  7. 05 Aug, 2003 1 commit
    • Leigh B. Stoller's avatar
      The rest of the sync server additions: · 212cc781
      Leigh B. Stoller authored
      * Parser: Added new tb command to set the name of the sync server:
      
      	tb-set-sync-server <node>
      
        This initializes the sync_server slot of the experiment entry to the
        *vname* of the node that should run the sync server for that
        experiment. In other words, the sync server is per-experiment, runs
        on a node in the experiment, and the user gets to chose which node
        it runs on.
      
      * tmcd and client side setup. Added new syncserver command which
        returns the name of the syncserver and whether the requesting node
        is the lucky one to run the daemon:
      
          SYNCSERVER SERVER='nodeG.syncserver.testbed.emulab.net' ISSERVER=1
      
        The name of the syncserver is written to /var/emulab/boot/syncserver
        on the nodes so that clients can easily figure out where the server
        is.
      
        Aside: The ready bits are now ignored (no DB accesses are made) for
        virtual nodes; they are forced to use the new sync server.
      
      * New os/syncd directory containing the daemon and the client. The
        daemon is pretty simple. It waits for TCP (and UDP, although that
        path is not complete yet) connections, and reads in a little
        structure that gives the name of the "barrier" to wait for, and an
        optional count of clients in the group (this would be used by the
        "master" who initializes barriers for clients). The socket is saved
        (no reply is made, so the client is blocked) until the count reaches
        zero. Then all clients are released by writting back to the
        sockets, and the sockets are closed. Obviously, the number of
        clients is limited by the numbed of FDs (open sockets), hence the
        need for a UDP variant, but that will take more work.
      
        The client has a simple command line interface:
      
          usage: emulab-sync [options]
          -n <name>         Optional barrier name; must be less than 64 bytes long
          -d                Turn on debugging
          -s server         Specify a sync server to connect to
          -p portnum        Specify a port number to connect to
          -i count          Initialize named barrier to count waiters
          -u                Use UDP instead of TCP
      
          The client figures out the server by looking for the file created
          above by libsetup (/var/emulab/boot/syncserver). If you do not
          specify a barrier "name", it uses an internal default. Yes, the
          server can handle multiple barriers (differently named of course)
          at once (non-overlapping clients obviously).
      
          Clients can wait before a barrier in "initialized." The count on
          the barrier just goes negative until someone initializes the
          barrier using the -i option, which increments the count by the
          count. Therefore, the master does not have to arrange to get there
          "first." As an example, consider a master and one client:
      
      	nodeA> /usr/local/etc/emulab/emulab-sync -n mybarrier
      	nodeB> /usr/local/etc/emulab/emulab-sync -n mybarrier -i 1
      
          Node A waits until Node B initializes the barrier (gives it a
          count).  The count is the number of *waiters*, not including the
          master. The master is also blocked until all of the waiters have
          checked in.
      
          I have not made an provision for timeouts or crashed clients. Lets
          see how it goes.
      212cc781
  8. 31 Jul, 2003 1 commit
    • Leigh B. Stoller's avatar
      Add Mike's NFS/NULL mount changes to mkjail.pl · 5b16105a
      Leigh B. Stoller authored
      Also a couple perf hacks:
      
      * Local vnodes can start with the password/group file from the
        physnode, since locally they will be the same anyway. This avoids a
        blizzard of accounts requests at startup, which is by far the
        biggest chunk of data returned (well, except for host tables).
      
      * To help serialize boot startup, vnodesetup now waits for the jail to
        finish starting up before it exits. It does this via a "goofy"
        mechanism I will not bother to describe.
      5b16105a
  9. 24 Jul, 2003 1 commit
  10. 24 Jun, 2003 1 commit
  11. 12 Jun, 2003 1 commit
  12. 06 Jun, 2003 1 commit
    • Leigh B. Stoller's avatar
      Add crufty libsetup_setvnodeid, libsetup_getvnodeid so scripts can set · a9c08632
      Leigh B. Stoller authored
      the vnode on whose behalf they are operating. The library passes this
      through to tmcd.
      
      Move definition of the delay_mapping file in from liblocsetup so that
      it is easily exportable withou another hoop.
      
      Add configuration support for veth devices.
      
      Change route and ifconfig generated script to do enable/disable
      segments in the generated scripts so that per-jail configurations can
      be added/removed easily by mkjail.
      
      Add program agents configuration, with corresponding tmcd command to
      return the list of program objects for a node (or jail).
      
      Trafgens inside jails talk to the local elvind, not boss.
      
      dotunnels, doroute, doiconfig all take an optional rtabid and pass
      that through to libloc routines.
      
      Add trivial support for getting the user shell from tmcd.
      a9c08632
  13. 18 Apr, 2003 1 commit
    • Leigh B. Stoller's avatar
      A small set of changes to allow setting the hostname of the jail just · a8d81694
      Leigh B. Stoller authored
      like we set hostnames of local nodes (v0.wa-jail-link.testbed.emulab.net).
      Also build a proper /etc/hosts file just like local nodes inside the
      jail. Minor change to dohostnames(); do not munge /etc/hosts in place!
      Generate a new copy and then atomically move into place. Phew, this
      was a close one! Mike has me really worried about race conditions now
      that I screwed the pooch in the frisbee client.
      a8d81694
  14. 17 Apr, 2003 1 commit
  15. 03 Apr, 2003 1 commit
  16. 02 Apr, 2003 1 commit
  17. 01 Apr, 2003 1 commit
    • Leigh B. Stoller's avatar
      Two unrelated changes. 1) Return the email address to version 9 · 4fa870b7
      Leigh B. Stoller authored
      clients so they can create a proper .forward file. 2) Add some
      test code for seeing how feasible it is to do accounts on ops/tips
      using tmcd instead of direct ssh. Initial results are not good; too
      many accounts; does not scale well. Going to need a smarter protocol
      for doing hundreds of accounts, but I will leave this code in place
      for now. Note, unlike testbed nodes, control nodes must connect with
      ssl.
      4fa870b7
  18. 24 Mar, 2003 1 commit
    • Leigh B. Stoller's avatar
      Bumb remote tmcc timeout to 30 seconds. · 42757a0c
      Leigh B. Stoller authored
      Add better timeout handling code to tmcc, which watches for progress
      instead of just dumping after the timeout. This lets really slow
      connections proceed okay, but still timeout out if nothing happens at
      all.
      
      This new tmcc has been installed into the sup trees for WIDE and RON.
      42757a0c
  19. 14 Mar, 2003 2 commits
  20. 03 Feb, 2003 1 commit
  21. 06 Jan, 2003 1 commit
  22. 19 Dec, 2002 1 commit
    • Leigh B. Stoller's avatar
      Path changes (as discussed in other commit messages). All of the files · f389da45
      Leigh B. Stoller authored
      created by libsetup are now created in /var/emulab/boot; nothing is
      written into /etc/emulab or /usr/local/etc/emulab anymore. This was
      a requirement for jails, but is also a good thing to do anyway.
      There are a number of jail config changes to support the old vnodes
      and the new style jail vnodes; specifically, a setup routine to called
      from inside the jail when it first boots up to the get the usual
      assortmant of config info from tmcd. Also Merge local and remote
      update routines into one. Other various little changes for SFS and the
      MFS.
      f389da45
  23. 05 Dec, 2002 1 commit
  24. 11 Nov, 2002 1 commit
  25. 06 Nov, 2002 1 commit
    • Shashi Guruprasad's avatar
      NSE related changes: · 05bc3bd4
      Shashi Guruprasad authored
        - Fixes the routing problem
        - A new type "sim" has been created but not in the DB. node_types and
          nodes remain unchanged. This will change after we figure out how
          to represent in the DB the local multiple virtnodes in one phynode case
          The frontend tb_compat.tcl adds the sim type and ptopgen associates
          a huge number of sim nodes to all local PCs.
        - All simulated nodes go into one pc untill I finish coding the distributed
          nse case. Also, sim nodes go through assign but with an explicit
          "fix-node" directive in the top file. A random free pc is chosen using
          the avail script in assign_wrapper. If we don't fix node it, assign
          maps sim nodes to multiple phy nodes even when a valid all to one
          mapping is possible.
        - Syntax for nse:
      
         $ns make-simulated {
      
             set simnode1 [$ns node]
             set simnode2 [$ns node]
      
         }
         ...
      
         The old syntax
      
         set nsenode [$ns nsenode]
         $nsenode make-simulated {
         }
      
         is deprecated
      
        - All 38 frontend tests in the testsuite pass
      
        - A new table v2pmap has been added to handle multiple virt nodes to
          one phy node mapping. This is used in "tmcc hostnames" currently.
      
        - The phy node that is picked to run nse is loaded with a custom image
          FBSD45-NSE . This can use the default FBSD kernel if there is a mechanism
          to run at 1000HZ, have options IPFIREWALL_FORWARD and PERFMON turned on.
          The image is in the 'testbed' group. Do not delete this image.
      
        - Static routes now adds routes for the case dst == nexthop. The routing
          graph would be disconnected otherwise and I need to traverse this in
          assign_wrapper for nse. On the client side, such a route is filtered out in
          libsetup.pm
      
        - sim nodes are also correctly visualized
      05bc3bd4
  26. 20 Sep, 2002 1 commit
  27. 11 Sep, 2002 1 commit
  28. 10 Sep, 2002 1 commit
  29. 27 Aug, 2002 1 commit
  30. 21 Aug, 2002 1 commit
  31. 20 Aug, 2002 3 commits
  32. 19 Aug, 2002 2 commits
  33. 16 Aug, 2002 1 commit