1. 19 Jul, 2004 2 commits
    • Kirk Webb's avatar
      · 03921d0e
      Kirk Webb authored
      A bunch of plab interface updates that I've worked on over the last while.
      Most significant is the revamped renewal code that tries to push the leases
      out to the policy defined maximum of two months during each iteration through
      the plabrenewd daemon loop.
      
      - added python lib code to get SiteVars
      - Fixed up comments to reflect current code operation
      - revamped renewal code (again)
        - changed all times to UTC for consistency
        - removed node-level renew invocation in favor of slice-level
          - if backend module requires node-level renewals, it must handle them
            itself in the slice-level function
          - better reporting
      - set admin bit if creating svc slice
        - other updates to ensure admin bit is preserved
      - update rootball handling function naming
      - updated tryXmlRpcCmd() to accept two new sets of strings, and a callback
        function.  The strings represent Faults that either 1) indicate success,
        or 2) indicate failure.  The callback is another optional error handling
        method, allowing the caller to decide how to treat individual faults as
        they see fit.
      - updated the backend module code to take advantage of the new string
        match status identifiers in tryXmlRpcCmd()
      - completely revamped slice renewal code in mod_PLC backend
        - compare against real lease expiration data gathered direct from PLC
        We used to just infer from our originally requested lease length
        - warn when our notion of expiration doesn't match PLC's
      - added agent caching and lease expiration info caching to mod_PLC
        backend.
      03921d0e
    • Robert Ricci's avatar
      Explicitly make the feedback logfile group-writable so that others in · c7f382e7
      Robert Ricci authored
      the project can swap/modify experiments.
      c7f382e7
  2. 15 Jul, 2004 2 commits
    • Leigh Stoller's avatar
      Couple of minor tweaks to make sure that experiment state events · d1a35ea9
      Leigh Stoller authored
      get sent properly; need to call TBdbfork(), and add a couple more
      event sends in libdb.
      d1a35ea9
    • Leigh Stoller's avatar
      Overview: Add Event Groups: · ed964507
      Leigh Stoller authored
      	set g1 [new EventGroup $ns]
      	$g1 add  $link0 $link1
      	$ns at 60.0 "$g1 down"
      
      See the new advanced tutorial section on event groups for a better
      example.
      
      Changed tbreport to dump the event groups table when in summary mode.
      At the same time, I changed tbreport to use the recently added
      virt_lans:vnode and ip slots, decprecating virt_nodes:ips in one more
      place. I also changed the web interface to always dump the event and
      event group summaries.
      
      The parser gets a new file (event.tcl), and the "at" method deals with
      event group events by expanding them inline into individual events
      sent to each member. For some agents, this is unavoidable; traffic
      generators get the initial params in the event, so it is not possible
      to send a single event to all members of the group. Same goes for
      program objects, although program objects do default to the initial
      command now, at least on new images.
      
      Changed the event scheduler to load the event groups table. The
      current operation is that the scheduler expands events sent to a
      group, into a set of distinct events sent to each member of the
      group. At some point we proably want to optimize this by telling the
      agents (running on the nodes) what groups they are members of.
      
      Other News: Added a "mustdelay" slot to the virt_lans table so the
      parser can tell assign_wrapper that a link needs to be delayed, say if
      there are events or if the link is red/gred. Previously,
      assign_wrapper tried to figure this out by looking at the event list,
      etc. I have removed that code; see database-migrate for instructions
      on how to initialize this slot in existing experiments. assign_wrapper
      is free to ignore or insert delays anyway, but having the parser do
      this makes more sense.
      
      I also made some "rename" changes to the parser wrt queues and lans
      and links. Not really necessary, but I got sidetracked (for several
      hours!) trying to understand that rename stuff a little better, and
      now I do.
      ed964507
  3. 13 Jul, 2004 4 commits
  4. 12 Jul, 2004 2 commits
  5. 09 Jul, 2004 2 commits
  6. 07 Jul, 2004 1 commit
  7. 29 Jun, 2004 1 commit
  8. 27 Jun, 2004 2 commits
    • Shashi Guruprasad's avatar
      If the bandwidth unit is missing a 'b', we still consider it to be in bits. · c2fe8581
      Shashi Guruprasad authored
      For example, a 56kbps == 56kb == 56k. Missing a 'b' caused it to make
      the links 100Mb whereas ns2 supports not specifying the 'b'.
      c2fe8581
    • Leigh Stoller's avatar
      Two unrelated changes: · 8ad1c1a1
      Leigh Stoller authored
      * Fix for dynamic vnodes (previous revision); I forgot to make
        equivalent changea to the code for widearea virtual nodes.
      
      * Add modelnet support; [-m c,v] option to use from assign_wrapper
        specifies the number of modelnet-core and modelnet-edge nodes to
        place into the ptop file for local nodes. Assign will end up doing
        modelnet assignment based on the number of physical core/edge nodes
        the user specifies in the NS file.
      8ad1c1a1
  9. 23 Jun, 2004 2 commits
    • Leigh Stoller's avatar
      Oops, turn off verbose mode! · 731a3463
      Leigh Stoller authored
      731a3463
    • Leigh Stoller's avatar
      Switch to "dynamic" creation of certain virtual nodes (jail/pcvm and · 4d5620c2
      Leigh Stoller authored
      vserver/pcplab). Rather then 10000s of fixed node entries in the DB,
      create node entries on the fly as needed (assign_wrapper), and then
      delete them when they are no longer used (nfree). When new nodes check
      in, no longer create all those nodes table entries (utils/newnode.in
      and tbsetup/plab/libplab.py.in).
      
      I've added a new library: db/Node.pm which is something I started a
      while back, and decided to commit, along with the support for creating
      and deleting virtual nodes. CreateVnodes() creates a new set of nodes,
      choosing non-conflicting names in the DB, and then immediately
      reserves them to the pid/eid specified. DeleteVnodes takes a list of
      vnodes and deletes them from nodes,reserved,etc. This library does a
      few other things which I am going to be playing with, so you might
      want to go read the comment at the top of the file. Feel free to speak
      up. CreateVnodes() is from called assign_wrapper when a node type has
      the "isdynamic" property. Otherwise does the existing avail/nalloc
      stuff. DeleteVnodes() is called from nfree when the node type has the
      isdynamic property.
      
      I've added a script (sql/delvnodes.pl) to run after updating the DB
      and software. All free pcvm and pcplab virtual nodes are deleted from
      the DB; reserved ones will get deleted whenever their experiment ends.
      I've noted all of this in doc/UPDATING, including setting the
      isdynamic property on pcvm in the node_types table.
      
      I've left tbsetup/plab/libplab.py.in to create a single pcplab node
      for the management sliver (still called -20). We can worry about this
      later.
      
      All this for modelnet?
      4d5620c2
  10. 21 Jun, 2004 1 commit
  11. 18 Jun, 2004 2 commits
  12. 17 Jun, 2004 1 commit
  13. 16 Jun, 2004 5 commits
  14. 10 Jun, 2004 1 commit
  15. 09 Jun, 2004 1 commit
  16. 08 Jun, 2004 1 commit
    • Leigh Stoller's avatar
      Add slots to virt_lans to rationalize the relationship between · 43a804e9
      Leigh Stoller authored
      virt_lans and virt_nodes. The intent is to migrate away from
      the convention we use in virt_nodes:ips and virt_lans:member
      to a more acceptable representation (one that does not rely
      on textual conventions like space separated lists of colon
      seperated entities. Instead:
      
      	virt_nodes
      		vname:	nodeA
              virt_lans
      		vname:  link0
      		vport:  0
      		ip:     1.1.1.2
      
      		vname:  link1
      		vport:  1
      		ip:     1.1.2.2
      
      	alter table virt_lans add vnode varchar(32) NOT NULL default '' \
      		after vname;
      	alter table virt_lans add vport tinyint(3) NOT NULL default '0' \
      		after vnode;
              alter table virt_lans add ip varchar(15) NOT NULL default '' \
      		after vport;
      
      Then run this script to update these new fields from the
      existing ips,member slots. This must be run after installing
      the parser changes, or you can just run it again.
      
      	./ipmember.pl
      
      This is a transitional phase; the old slots will be left in place
      until they are no longer used, at which time we will also add a
      unique key to the table (pid,eid,vname,vnode,vport). assign_wrapper
      will be the hardest to change, but other scripts should be easy.
      
      Whats vport about? Rather then rely on IP addresses to form a
      unique key, we use vport (a small integer) so that we can delay the
      IP assignment until later (after initial DB insertion).
      43a804e9
  17. 04 Jun, 2004 1 commit
    • Robert Ricci's avatar
      A couple related improvements: · 5e5bea87
      Robert Ricci authored
      Parse the ptop file to get information like colocation factors, CPU
      speeds, trivial bandwidth, and the like, instead of hard coding them.
      
      Keep features and trivial bandwidth by type (ie. pcvm, pcvm850),
      instead of making them the same for all types. This should make
      much better conglomeration choices.
      5e5bea87
  18. 03 Jun, 2004 4 commits
  19. 02 Jun, 2004 2 commits
  20. 01 Jun, 2004 3 commits