1. 08 Jan, 2009 3 commits
  2. 07 Jan, 2009 14 commits
    • Leigh Stoller's avatar
      I had such ambitious goals when I started this project! My intent was · cccc74eb
      Leigh Stoller authored
      to allow elabinelab vlan firewalls. Alas, I never got there, fell into
      a pit of hell and never made it back out. However, I did do a few
      things.
      
      I did make some changes to deal with stacks, mostly making sure that
      stacks are processed properly inside the elabinelab, and passed
      through to the outer emulab, which currently ignores the stack. See
      the new version of the proxy.
      
      The big change was to -m and -o. These now require a pid/eid argument
      so that we can create (and delete) vlan objects in the DB, for both
      the control and experimental stacks. Most notably, when creating a
      firewalled experiment, we get a Lan(VLan) object for the control
      network fwvlan, and an entry in the softstate vlans table (that
      mirrors what is on the switches). This is intended to make things
      easier to cleanup after a swap error, and to catch inconsitencies
      before we release nodes. Note that -m and -o take -f to override the
      pid/eid requirement, in which case they operate as before.
      
      Trunk enable/disable and Port enable/disable now record that state in
      the new interface_state table.
      
      We now proxy doPortControl().
      
      A second -l option overrides Keiths change that prints only vlans
      associated witl experiments; print *all* vlans.
      cccc74eb
    • Jonathon Duerig's avatar
    • Leigh Stoller's avatar
      Do not return control net vlans from tmcd. We determine this by · 1ebb5ea6
      Leigh Stoller authored
      looking at the stack attribute in the lans_attributes table, which
      must not say 'Experimental' or not be set at all (legacy).
      1ebb5ea6
    • Leigh Stoller's avatar
      Library functions to set/clr the enabled/tagged bits in the new · 71812015
      Leigh Stoller authored
      interface_state table.
      71812015
    • Leigh Stoller's avatar
      Change the way that elabinelab communicates with the outer emulab. · 0a004176
      Leigh Stoller authored
      Instead of passing along a set of arguments that needs to be turned
      into command line arguments to the proxy, pass along an xmldoc
      representing the arguments. This xmldoc is passed through the rpc
      server to the snmpit proxy, where it reconstructs the arguments. This
      avoids all that cruftiness in the rpc server (also error prone) and
      make it easier to add new remote methods, say for supporting eventual
      elabibelab firewalls. Note that there are currently two versions of
      the proxy and two methods in the rpc server, so that existing emulabs
      will work.
      
      I also added support for port enable/disable/etc from the inner elab.
      There is also the beginning of firewall support. I pass the stack
      module argument along, but currently not actually doing control stack
      operations from the proxy. Needs more work.
      
      Oh, I copied the cvs repo file for the original proxy so that we do
      not lose the cvs history.
      
      See corresponding commitlog for snmpit for description of other
      changes.
      0a004176
    • Leigh Stoller's avatar
    • Leigh Stoller's avatar
      f9f867b2
    • Leigh Stoller's avatar
      Minor bug fix. · 417722a3
      Leigh Stoller authored
      417722a3
    • Leigh Stoller's avatar
      Do not allow a node that is still in a vlan (experimental or control) · 3a8a3435
      Leigh Stoller authored
      to be free'ed. Ditto for interfaces on those nodes that are disabled
      or trunked (tagged). This all indicates something went screwy
      someplace else and something needs to be fixed/cleaned.
      3a8a3435
    • Leigh Stoller's avatar
      Various changes to support changes to snmpit that record manually · 13c58c2e
      Leigh Stoller authored
      created vlans (-m option to snmpit) in the DB, both for the
      experimental and control stacks.
      13c58c2e
    • Leigh Stoller's avatar
      Add methods and lookup for new interfce_state table. Given an · 3da9ec35
      Leigh Stoller authored
      interface object, you can ask it ->tagged() and ->enabled().
      3da9ec35
    • Leigh Stoller's avatar
      Change name of the new snmpit.proxy module. Need to maintain both · c86ba33e
      Leigh Stoller authored
      old and new versions for a while so as not to break existing
      elabinelabs.
      c86ba33e
    • Leigh Stoller's avatar
      Initialize new interface_state table when entries new nodes · 1040f711
      Leigh Stoller authored
      (interfaces) are added to the DB.
      1040f711
    • Leigh Stoller's avatar
      Various changes to support storing control network vlans in · f55e466c
      Leigh Stoller authored
      the DB, and eventually elabinelab firewalls.
      
             # Allow arbitrary the names for the ids. Forgot who wanted this.
             alter table elabinelab_vlans change `inner_id`
                      `inner_id` varchar(32) NOT NULL default '';
             alter table elabinelab_vlans change `outer_id`
                      `outer_id` varchar(32) NOT NULL default '';
      
             # Tag elabinelab created vlans with the stack module.
             alter table elabinelab_vlans add `stack`
                 enum('Control','Experimental') NOT NULL default 'Experimental';
      
             # Tag vlans softstate table with the stack module.
             alter table vlans add `stack`
                 enum('Control','Experimental') NOT NULL default 'Experimental';
      
             # A new table, to store softstate on interfaces. snmpit will
             # modify this table whenever a port is enabled/trunked(tagged)
             # on the command line. Eventually speed/duplex should go here.
             CREATE TABLE `interface_state` (
      	  `node_id` varchar(32) NOT NULL default '',
      	  `card` tinyint(3) unsigned NOT NULL default '0',
      	  `port` tinyint(3) unsigned NOT NULL default '0',
      	  `iface` varchar(32) NOT NULL,
      	  `enabled` tinyint(1) default '1',
      	  `tagged` tinyint(1) default '0',
      	  PRIMARY KEY  (`node_id`,`card`,`port`),
      	  KEY `nodeiface` (`node_id`,`iface`)
      	) ENGINE=MyISAM DEFAULT CHARSET=latin1;
      
      	# Initialize the above table.
      	insert into interface_state (node_id,card,port,iface)
      	   select node_id,card,port,iface from interfaces;
      
      	# Cleanup the vlans table which was filling with cruft
      	# cause of a bug in the swapout code. Finally figured
      	# out how to combine delete and join!
      	delete v FROM vlans v LEFT JOIN lans l on l.lanid=v.id
      	       WHERE l.lanid IS NULL;
      
              # Fix an unrelated bug; slot overflow.
              alter table nodelog change `log_id`
                      `log_id` int(10) unsigned NOT NULL auto_increment;
      f55e466c
  3. 06 Jan, 2009 1 commit
  4. 04 Jan, 2009 1 commit
  5. 02 Jan, 2009 1 commit
  6. 30 Dec, 2008 2 commits
    • Ryan Jackson's avatar
      Lots of changes. Here are some of the significant ones: · c08e7725
      Ryan Jackson authored
      - Cleanup of filesystem layout
      - Some patches to make busybox's adduser and addgroup commands a bit more
        compatible with the standard useradd and groupadd commands
      - Wrappers for ((user|group)(add|del))
      - Getopt perl module added
      - Working sudo setup
      - Portmap added to support NFS mounts with locking.
      - Syslog added, but not currently configured. Primarily intended for
        troubleshooting strange problems.
      - Fixes to permissions
      - rc.mounts, rc.localize, and rc.accounts work now.
      c08e7725
    • David Johnson's avatar
      Add support for adding interfaces, outlets, tiplines, and for doing the · 7e860d79
      David Johnson authored
      full node create, not just inserting widearea_nodeinfo.
      7e860d79
  7. 23 Dec, 2008 4 commits
  8. 22 Dec, 2008 3 commits
  9. 18 Dec, 2008 3 commits
  10. 17 Dec, 2008 4 commits
  11. 16 Dec, 2008 4 commits