1. 23 Jun, 2003 1 commit
  2. 19 Jun, 2003 1 commit
    • Leigh B. Stoller's avatar
      Add several controls from NS file. · 445edc6d
      Leigh B. Stoller authored
       * usewatunnels - Allow users to turn off widearea tunnels.
       * multiplex_factor - Allow user to specify vnode multiplex factor.
       * trivial_ok - Allow user to specify collocation okay for link.
      
      More work on the veth interface support and trivial link stuff.
      Appears to be operational and passes the test suite.
      445edc6d
  3. 23 May, 2003 1 commit
  4. 19 May, 2003 1 commit
  5. 15 May, 2003 1 commit
  6. 13 May, 2003 1 commit
    • Leigh B. Stoller's avatar
      Support for veth devices as first, I mean second, okay third class · 06f1f128
      Leigh B. Stoller authored
      entities. All that means is that you can use them independent of
      jails by doing something like this in your NS file:
      
      	set link0 [$ns duplex-link $node6 $node9 40Mb 0ms DropTail]
      
      	tb-set-multiplexed $link0 1
      	tb-set-useveth     $link0 1
      
      For now, must use OSID FBSD47-JAIL, but that will change when I create
      new images. The fallback without useveth is IP aliases like before,
      which is nice cause that will work on Linux too.
      
      There are some other minor cleanups included.
      06f1f128
  7. 12 May, 2003 1 commit
  8. 09 May, 2003 1 commit
  9. 02 May, 2003 1 commit
  10. 29 Apr, 2003 1 commit
    • Chad Barb's avatar
      Robust Experiment Modify -and- · 7308f458
      Chad Barb authored
      Various Other changes to get Expt Modify ready for prime time.
      
       - If assign fails on a modify, experiment will
         be restored to old state, *not* swapped out.
      
       - Reboot option has been improved to reboot all
         nodes as part of os_setup, not in separate
         step.
      
       - Different assign error codes result in different
         retry behavior for assign_wrapper
         (Follow's Rob's change to assign to make it
          pass back special code for non-retriable faults)
      
       - '64' bit in assign_wrapper exit code indicates to tbswap
         that db/phys state hadn't been mucked with before
         the exit occurred
         (ergo, '65' and '1' are the common return codes,
          though the old 4,8,16,32 are still there for assign failing.)
      
       - (tbswap still returns codes from assign wrapper)
      
       - Added 5 sec pause between assign attempts.
      
       - Cleaned up tbswap code.
      
       - Physical state backup/restore removed from tbprerun,
         put into swapexp.
      
       - Interfaces table now getting cleaned up correctly
         (Mike noticed problem)
      
       - Changed menu display in showexp to show
         the "modify" menu option for swapped out experiments
         (like it used to.)
      
       - A couple other changes.
      
      Note:
       Still admin-only, but I plan to change that soon.
      
      To do:
       - Erase expt backups in /tmp after using them.
       - Re-viz failed experiments.
      7308f458
  11. 28 Apr, 2003 1 commit
    • Leigh B. Stoller's avatar
      Add support for new {user,group,project,experiment}_stats tables. · 5e5508bf
      Leigh B. Stoller authored
      The first three are aggregate tables, while the experiment stats table
      gets a record for each new experiment, and is updated when an
      experiment is swapped in/out/modify or terminated. Look at the table
      to see what is tracked. Once the experiment_stats record is updated,
      the aggregate tables are updated as necessary. There are a bunch of
      ugly changes to assign_wrapper to get the stats. Note that pnodes is
      not incremented until an experiment sucessfully swaps in. This is in
      leu of getting status codes; I'm not tracking failed operations yet,
      nor creating the log file that Jay wants. I'll do that in the next
      round of changes when we see how useful these numbers are.
      
      Most of the changes are to create/delete table entries where
      appropriate, and to display the records. Display is only under admin
      mode, and the display is raw; just a dump of the assoc tables in php.
      The last 100 experiment stats records are available via the Experiment
      List page, using the "Stats" show option at the top. Bad place, but
      will do for now.
      5e5508bf
  12. 23 Apr, 2003 1 commit
  13. 17 Apr, 2003 1 commit
  14. 16 Apr, 2003 1 commit
  15. 07 Apr, 2003 1 commit
  16. 27 Mar, 2003 1 commit
    • Chad Barb's avatar
      · a495bcfb
      Chad Barb authored
      New tbswap mode 'update'. (a.k.a. 'reswap')
      Re-assigns experiment, fixing already assigned nodes in place;
      tries not to reboot nodes. Doesn't clear port counters,
      restart event system, etc.
      
      A few more things remain to be considered for 'general' use
      adding new nodes to experiments and modifying topologies,
      but for replacing failed nodes in experiments
      or removing virt_nodes from experiments, should work fine.
      a495bcfb
  17. 23 Mar, 2003 1 commit
  18. 22 Mar, 2003 1 commit
    • Leigh B. Stoller's avatar
      Add three new control mechanisms to the front end to control the use · 62b4edc9
      Leigh B. Stoller authored
      of emulated and linkdelays on a per-link/lan basis (although you
      cannot make a lan emulated at this time).
      
      	tb-set-link-uselinkdelay $link0 1
      	tb-set-lan-uselinkdelay $lan0 1
      	tb-set-link-emulated $link0 1
      
      Added slots to the virt_lans table, used in assign_wrapper to control
      these features on a per link/lan basis. Note, the global options are
      still available to prefer/force linkdelays for an entire experiment.
      When setting uselinkdelays on a per link/basis, if the link would not
      otherwise be shaped, you are requesting that a linkdelay be inserted
      anyway (in otherwords, its the equiv of tb-set-forcelinkdelays on an
      individual basis).
      62b4edc9
  19. 21 Mar, 2003 1 commit
  20. 20 Mar, 2003 1 commit
    • Chad Barb's avatar
      · 6a449d22
      Chad Barb authored
      tbswap: re-enabled retry (Undid leigh's last change)
      
      assign_wrapper.in:
         was left-joining reserved to nodes to get reserved list;
         This didn't get delays.
      
         now am doing separate query on reserved, and putting those
         into the %fixed and %alreadyAllocated hashes.
      6a449d22
  21. 19 Mar, 2003 1 commit
  22. 18 Mar, 2003 1 commit
    • Chad Barb's avatar
      · e928fbe9
      Chad Barb authored
      Here it is; reswap.
      
      nfree
         - modified to put node in FREE_DIRTY when it is freed
      
      assign_wrapper
         - '-u' update switch added.
      
      os_setup
         - doesn't reboot node which is already in RES_READY
      
      tbswap
         - calls all this stuff appropriately
      e928fbe9
  23. 14 Mar, 2003 2 commits
  24. 11 Mar, 2003 1 commit
  25. 06 Mar, 2003 5 commits
  26. 05 Mar, 2003 1 commit
  27. 10 Feb, 2003 1 commit
  28. 04 Feb, 2003 1 commit
  29. 15 Jan, 2003 2 commits
    • Leigh B. Stoller's avatar
    • Leigh B. Stoller's avatar
      Fixes to how port configuration is done (for trafgens and tunnels, · 76396510
      Leigh B. Stoller authored
      and now sshdport). First off, take the DB out of the loop. There is no
      reason to do DB locking since local nodes are not shared, and even if
      they were, we now allocate port ranges to each experiment when it uses
      virtual nodes (which is the only way to share a node anyway), so there
      is never a case that port allocation between experiments has to be
      coordinated. The only locking that is done is when the range is
      allocated to the experiment, buts that done only once, and only if the
      experiment uses virtual nodes (local or remote).
      
      Also, now that its easy to create lots of jails on a single node, its
      a good idea to give each one their own ssh port. This is recorded in
      the DB nodes table (sshdport) and returned in the jail config from
      tmcd.
      76396510
  30. 13 Jan, 2003 1 commit
  31. 07 Jan, 2003 1 commit
  32. 19 Dec, 2002 1 commit
    • Leigh B. Stoller's avatar
      Two real changes: · 04c20246
      Leigh B. Stoller authored
      1) Add support for local jailed nodes. This support overlaps in a nasty way
         with remote jailed nodes, but I added this for testing purposes, and as
         it turns out its pretty handy. A second pass is needed to unify remote
         and local jails, but for now this is how it goes:
      
        	tb-set-hardware $node3  pc600
        	tb-set-hardware $nodev1 pcvm600
        	tb-fix-node $nodev1 $node3
      
        So, "fix" $nodev1 to $node3. The intent is that once $node3 is
        allocated by assign to a real testbed node, we can then allocate a
        virtual node on pcXX to $nodev1. I did this primarily to allow for
        easy testing of jails via my NS file, without having to hack assign
        wrapper too deeply. So, after assign runs, I use avail to get the
        available vnodes on the assigned pcXX, allocate those for the virtual
        nodes. At present, we still depend on pre-exsiting pcvm nodes for each
        real node.
      
      2) Add code to assign non-overlapping port ranges to each experiment. This
         could be moved to an external script, but is fine right here. There is
         an ipport_ranges table for determining a testbed wide range (currently
         256 ports). This is of course only meaningful when using jailed nodes,
         so do not bother to set a range (and use up the port space) if no jailed
         (virtual) nodes.
      04c20246
  33. 21 Nov, 2002 1 commit
  34. 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