1. 30 Sep, 2003 2 commits
    • Leigh B. Stoller's avatar
      Remove tiny bit of debugging code. · f3c381da
      Leigh B. Stoller authored
      f3c381da
    • Leigh B. Stoller's avatar
      Up to now we have had two state variables associated with an experiment, · 4269dad1
      Leigh B. Stoller authored
      plus a lock field. The lock field was a simple "experiment locked, go away"
      slot that is easy to use when you do not care about the actual state that
      an experiment is in, just that it is in "transition" and should not be
      messed with.
      
      The other two state variables are "state" and "batchstate". The former
      (state) is the original variable that Chris added, and was used by the tb*
      scripts to make sure that the experiment was in the state each particular
      script wanted them to be in. But over time (and with the addition of so
      much wrapper goo around them), "state" has leaked out all over the place to
      determine what operations on an experiment are allowed, and if/when it
      should be displayed in various web pages. There are a set of transition
      states in addition to the usual "active", "swapped", etc like "swapping"
      that make testing state a pain in the butt.
      
      I added the other state variable ("batchstate") when I did the batch
      system, obvious...
      4269dad1
  2. 26 Sep, 2003 1 commit
  3. 18 Sep, 2003 1 commit
  4. 17 Sep, 2003 2 commits
  5. 16 Sep, 2003 1 commit
  6. 13 Sep, 2003 1 commit
  7. 12 Sep, 2003 1 commit
  8. 11 Sep, 2003 1 commit
    • Leigh B. Stoller's avatar
      Widearea changes, mostly started for plab but affects all widearea · a5e1e2ee
      Leigh B. Stoller authored
      nodes. The intent is to better support last mile types, which right
      now are a total mess cause the types are associated with the virtual
      nodes, and a node can have just a single type. This info has now been
      moved in the node_types_auxtypes table and the node_types table.
      
      Anyway, we no longer use wanassign on unconnected widearea nodes, but
      use assign directly, much like we use assign to allocate virtual nodes
      on local physical nodes. ptopgen inserts the physical widearea nodes
      (even though they are allocated), and the proper counts for the types
      that are available on them. assign will pick the nodes, and
      assign_wrapper will allocate the necessary vnodes on the pnodes (but
      in the case of wideare nodes, the underlying physical node does not
      need to be allocated).
      
      Also added some fixes for dealing with vtypes when used in conjunction
      with widearea nodes. Rather then generating an error like it used to,
      you can create a vtype in your NS file:
      
      	tb-make-soft-vtype mytype {pcvroninet pcvwainet}
      	tb-set-hardware $v0 mytype
      
      and assign_wrapper now looks at the underlying types to figure out
      what it needs. Note: No consistency checking yet; mixing a remote/virt
      and a local/real type will break.
      a5e1e2ee
  9. 09 Sep, 2003 1 commit
  10. 02 Sep, 2003 1 commit
  11. 29 Aug, 2003 1 commit
    • Leigh B. Stoller's avatar
      Temporary patch to solve the non-connected veth interface problems, · 5f214b74
      Leigh B. Stoller authored
      which happens on lans of vnodes that are split between pnodes. assign
      spits out trivial links for the nodes collocated on the pnodes, but if
      there are two groups of vnodes on different pnodes, the connection is
      not explicit in the link statements that assign gives (techinically,
      they should not be trivial links, but Rob is still thinking that
      over). Fortunately, I have enough info from assign to extend the vlan
      and to patch the veth interfaces afterwards. Its god-awful stuff, and
      I hope I can strip it out soon.
      5f214b74
  12. 27 Aug, 2003 1 commit
    • Leigh B. Stoller's avatar
      Added "subnode" support, primarily for the IXPs. The main feature of · 4088258c
      Leigh B. Stoller authored
      subnodes is dealing with the hosting node, and the "fakelink" that
      we have to insert until assign is taught how to deal with hosting
      nodes. The fakelink causes assign to grab both nodes together.
      
      Also: * Minor cleanup.
            * Change control_net to control_iface.
            * Set the routertype to "manual" for jail hosts, and "none" for
              delay nodes. This is done in InitPnode.
            * Get rid of more shark code.
      4088258c
  13. 06 Aug, 2003 1 commit
  14. 05 Aug, 2003 1 commit
  15. 28 Jul, 2003 1 commit
  16. 15 Jul, 2003 1 commit
    • Leigh B. Stoller's avatar
      A set of changes to make swapmod work on jailed nodes (note, swapmod · 92ff875a
      Leigh B. Stoller authored
      does not yet work with remove virtual nodes; that will take even more
      work).
      
      Added a new allocstate called RES_TEARDOWN. assign_wrapper no longer
      deallocates unused nodes, but rather moves them into the new state for
      the wrapper (tbswap) to deal with. Thats cause deleted vnodes need to
      be torn down, since its possible that the node on which they were
      living will not be deallocated (say, if there are other vnodes on
      it). We do not want to be doing that from assign_wrapper, so tbswap
      looks for those nodes.
      
      Made vnode_setup allocstate aware in the same way that os_setup is;
      do not reboot vnodes or try to set up vnodes when they are already in
      the RES_READY state, as they will be when doing a swapmod. In
      addition, if os_setup is going to reboot the underlying physnode, move
      the vnodes on that node into RES_READY too, since there they will
      setup automatically. Might need an interim state here, for correctness.
      92ff875a
  17. 10 Jul, 2003 2 commits
    • Robert Ricci's avatar
      05c81c06
    • Leigh B. Stoller's avatar
      Split the -e option to ptopgen into -p/-e. Assign will always pass in · f5e2a9d3
      Leigh B. Stoller authored
      the pid so that ptopgen can do permission checks on the node types and
      classes before it sticks them into the ptop file. -e now takes just eid,
      but operates as before.
      
      Change the -v option slightly; assign passes -v option when it sees
      that the topology requires virtual nodes. Without -v, virtual nodes
      are not placed into the the ptop file, saving about 6000 lines of node
      entries!
      
      Get rid of the pcvm and pc601 hacks, and replace with a permission
      check, as determined by the nodetypeXpid_permissions. I've updated
      that table to reflect current types/classes.
      
      Change Rob's last change, which was doing a DB query on each node,
      which when used with -v, was issuing a lot of queries. I was puzzled
      why ptopgen was taking 4 seconds to run!
      
      Kill more sharks.
      Cleanup some terrible indenting.
      f5e2a9d3
  18. 08 Jul, 2003 2 commits
  19. 03 Jul, 2003 1 commit
  20. 01 Jul, 2003 2 commits
  21. 26 Jun, 2003 2 commits
    • Leigh B. Stoller's avatar
      Turn on lans for virtual nodes in assign_wrapper, now that Rob has · af86b3ba
      Leigh B. Stoller authored
      fixed the trivial_link problem for Lans.
      Add an option to ptopgen that says to include the various virtnode
      related things, so as not to slow down assign in the general case
      that virtnodes are not being used.
      af86b3ba
    • Robert Ricci's avatar
      Major changes to the way assign handles LAN nodes. · 83cfa8ec
      Robert Ricci authored
      LAN nodes are no longer treated specially. Instead, I've introduced
      the idea of 'static' types (old-style types retroactively become
      'dynamic' types). While a pnode can only satisfy one dynamic type at a
      time, it can always satisfy its static types (assuming it has enough
      capacity left.) Static types are flagged by prepending them with a '*'
      in the ptop file. So, for example, you may give switches the
      '*lan:10000' type so that they can satisfy virtual LAN nodes. Of
      course, other pnodes can have this type too, so that we can get
      'trivial LANs'.
      
      Actually, removing special treatment for LANs cleans up a lot of code.
      However, it may have some negative impacts on solutions, since we're
      not as smart about where to place LAN nodes as we used to be (they get
      annealed along with everything else, and not migrated.) I haven't seen
      any evidence of this yet, however.
      
      This leaves us with a single type of special pnode, a switch.
      
      Also added a new bit of syntax in ptop files - when '*' is given as a
      the maxiumum load for a type, the node is allowed to take on an
      infinite (well, actually, just a really big number of) vnodes of that
      type.
      
      ptopgen was modified to always report switches as being capable of
      hosting LANs, and assign_wrapper now understands direct links to LANs,
      which is what we get when the LAN is hosted directly on a switch.
      
      Fixed a bug in scoring direct links, in which the penatly was being
      added once when a direct link was mapped, but subtracted only once
      when it was freed.
      
      Added a '-T' option for doing simple self-testing. When adding a node
      to the solution, assign records the score, adds the node, removes it
      again, and checks to make sure that the resulting score is the same as
      the original score. The usefulness of this feature in debugging
      scoring problems cannot be understated...
      83cfa8ec
  22. 25 Jun, 2003 1 commit
  23. 24 Jun, 2003 1 commit
  24. 23 Jun, 2003 1 commit
  25. 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
  26. 23 May, 2003 1 commit
  27. 19 May, 2003 1 commit
  28. 15 May, 2003 1 commit
  29. 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
  30. 12 May, 2003 1 commit
  31. 09 May, 2003 1 commit
  32. 02 May, 2003 1 commit
  33. 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
  34. 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