1. 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
  2. 23 Mar, 2003 1 commit
  3. 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
  4. 21 Mar, 2003 1 commit
  5. 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
  6. 19 Mar, 2003 1 commit
  7. 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
  8. 14 Mar, 2003 2 commits
  9. 11 Mar, 2003 1 commit
  10. 06 Mar, 2003 5 commits
  11. 05 Mar, 2003 1 commit
  12. 10 Feb, 2003 1 commit
  13. 04 Feb, 2003 1 commit
  14. 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
  15. 13 Jan, 2003 1 commit
  16. 07 Jan, 2003 1 commit
  17. 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
  18. 21 Nov, 2002 1 commit
  19. 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
  20. 18 Oct, 2002 1 commit
    • Mac Newbold's avatar
      Merge the newstated branch with the main tree. · 5c961517
      Mac Newbold authored
      Changes to watch out for:
      
      - db calls that change boot info in nodes table are now calls to os_select
      
      - whenever you want to change a node's pxe boot info, or def or next boot
      osids or paths, use os_select.
      
      - when you need to wait for a node to reach some point in the boot process
      (like ISUP), check the state in the database using the lib calls
      
      - Proxydhcp now sends a BOOTING state for each node that it talks to.
      
      - OSs that don't send ISUP will have one generated for them by stated
      either when they ping (if they support ping) or immediately after they get
      to BOOTING.
      
      - States now have timeouts. Actions aren't currently carried out, but they
      will be soon. If you notice problems here, let me know... we're still
      tuning it. (Before all timeouts were set to "none" in the db)
      
      One temporary change:
      
      - While I make our new free node manager daemon (freed), all nodes are
      forced into reloading when they're nfreed and the calls to reset the os
      are disabled (that will move into freed).
      5c961517
  21. 16 Jul, 2002 1 commit
  22. 07 Jul, 2002 1 commit
  23. 30 May, 2002 1 commit
  24. 29 May, 2002 1 commit
  25. 21 May, 2002 1 commit
    • Leigh B. Stoller's avatar
      Rework the previous hack stuff for virtual (multiplex nodes). Now its · 8c08c280
      Leigh B. Stoller authored
      a new hack for remote nodes! All remote node solving is done in the
      new wanassign script. That script deals with both phys (ron) and
      virtual (vrons), as well as fixed nodes of either type. The solution
      is returned to assign_wrapper, which still does the tunnel stuff.
      At some point it would be nice to get general purpose virtual nodes
      (multiplex) working on either local or remote nodes, but thats a ways
      off cause it means too many changes in assign_wrapper, which really
      needs a total rewrite.
      8c08c280
  26. 10 May, 2002 1 commit
  27. 09 May, 2002 4 commits
  28. 08 May, 2002 1 commit
    • Leigh B. Stoller's avatar
      Checkpoint assign_wrapper changes (for virtual nodes). Add new code to · cc0a8796
      Leigh B. Stoller authored
      drop out virt_lans than include virtual nodes, until I get Chad's
      stuff integrated. Drop any pretense of supporting virtual nodes in a
      LAN; just die. Add tunnels table DB upload; tunnels are created
      in place of a vlan when the link includes a virtual node. The tunnel
      info is based on the virt_lans info of course, so that the user gets
      virtual devices with the appropriate IP address. There is some goo for
      determining who is the server and who is the client, and making sure
      that we start just a single server (in case a node has multiple
      tunnels). Also add post pass over virt_trafgens table to make sure
      that port assignments are unique (using new DB table). Oop, need to
      add something to make sure that IP addresses are unique too!
      
      Oh, clear out some obsolete code.
      cc0a8796
  29. 29 Apr, 2002 1 commit
  30. 22 Apr, 2002 1 commit
    • Leigh B. Stoller's avatar
      virtnode hack: Some terribly ugly ones! Do a prepass on the virt_nodes · e002fbeb
      Leigh B. Stoller authored
      and virt_lans to determine which links/lans need to be dropped out of
      the list given to assign (.top file). Basically, if a simple link has
      virtual node in it, get rid of the link (both sides). If a lan has a
      virtual node in it, then get rid of just that member of the lan (the
      other regular members need to be allocated as usual). There is a minor
      problem of a lan with just one physical member left after dropping the
      virtual members; not sure what to do about that so I punted on it for
      now.
      
      Note that I *do* send the virt_nodes into assign for allocation as
      unconnected nodes. Its up to the user to create the routes properly,
      although maybe we have to do that automatically?
      e002fbeb
  31. 11 Apr, 2002 1 commit