1. 16 Aug, 2012 1 commit
  2. 14 Aug, 2012 1 commit
  3. 13 Aug, 2012 23 commits
  4. 10 Aug, 2012 1 commit
  5. 08 Aug, 2012 1 commit
    • Leigh B Stoller's avatar
      Bug Fix: Fix how we determine the set of ports to tag/untag. · ad8ed130
      Leigh B Stoller authored
      The basic problem is that when snmpit looks to see what ports it
      should trunk (or untrunk) the equation is more complicated then it
      used to be.
      
      Case 1: In the old days, before shared nodes and shared lans, a node
      and its interfaces were always one-to-one with an experiment. So the
      set of trunks was easily derivable from the reserved table joined with
      the interfaces table.
      
      Case 2: But when we added shared nodes (with vlan encap of course),
      the set of trunk ports is no longer associated with the experiments
      using those ports, but only with the underlying experiment. That is we
      do not mess with the trunking when swapping experiments on shared
      nodes, we only want to add and subtract vlans to those trunked
      ports. So, I added a check against the reserved table. Easy. The ports
      are trunked when the underlying "shared nodes" experiment is swapped
      in, and untrunked when it is swapped out.
      
      Case 3: Then we added shared vlans. Well this is almost the exact
      opposite case. The ports belong to nodes in other experiments, but now
      we *do* want to consider them when turning trunking on and off. The
      underlying experiment that owns the lan (emulab-ops,openflow-vlans)
      does not own any of the ports, but we do want to enable/disable the
      trunking as ports come and go.
      
      Case 4: Last but certainly not least, is a potential bad interaction
      between these #2 and #3! The instageni-connect port is a member of the
      1750 shared vlan (and thus trunking is enabled when the openflow lan
      is created or modified). But that same port is also used in the second
      case above when stitching to the rack; The instageni-connect node is a
      shared node, and we allocate fake VMs on it that serve simply as a
      place to associate the vlans that use that port; we just want to add
      and subtract vlans to the port. ÊThe gist of this is that if someone
      were to remove the port from the shared 1750 vlan, its trunk would get
      turned off, and all of the stitched vlans would stop working.
      
      This bug fix deals with the addition of #3, but I do not have anything
      for #4.  But I can commit this fix with the understanding that
      #4 is a real problem that has to be dealt with.
      ad8ed130
  6. 01 Aug, 2012 6 commits
    • Leigh B Stoller's avatar
      When removing a vlan from a tagged port, need to watch for the · 0bb7009c
      Leigh B Stoller authored
      last vlan since on a procurve, a port has to be in *some* vlan.
      So, when down to the last one, add it to the default vlan and
      then do the removal. This comes up in syncVlansFromTables only.
      0bb7009c
    • Leigh B Stoller's avatar
      Change how we determine the set of stale trunked ports, since · 1ada7631
      Leigh B Stoller authored
      with shared vlans, using the reserved table in a join does not
      get the ones we need.
      1ada7631
    • Leigh B Stoller's avatar
      Add debugging print. · 0843a736
      Leigh B Stoller authored
      0843a736
    • Mike Hibler's avatar
      Support 64-bit FreeBSD on the server side. · 9036d314
      Mike Hibler authored
      NOTE: currently only for FreeBSD 7.3 installs because that is the only
      set of boss/ops/fs packages I have built so far!
      
      This mostly involved minor changes to event agents. Too often we were
      passing a pointer to a "long" to *get_int32, which on a 64-bit x86 OS would
      fill the wrong half of a 64-bit variable. There was also one instance of
      TCL code that had to be tweaked to account for 32- vs 64-bit.
      
      These changes also required regeneration of SWIG stubs and an ugly change
      to the SWIG generated code to use va_copy rather than direct assignment in
      a couple of places.
      
      Also related to SWIG is ensuring that the components that go into the
      perl/python stub .so files are built with PIC. The amd64 linker requires
      this.
      
      The meta-ports had to be changed to reflect that linuxthreads and
      ulsshxmlrpcpp don't work on amd64. The former had little effect as we
      had mostly eliminated uses of linuxthreads already. The one thing that
      did change was that we do not build nfstrace on amd64 (and we don't
      currently use this anyway). Removing ulsshxmlrpcpp required switching
      to the new event scheduler (event/new_sched) that Ryan did awhile back.
      Note that it is only "new" in the sense that it uses a standard XMLRPC
      package, there should be no functional differences. However, to be safe
      we only use new_sched as the standard scheduler on 64-bit server installs.
      
      Finally, added support to elabinelab setup to do a 64-bit server install.
      Just specify FBSD73-64-STD as the boss/ops/fs osid and rc.mkelab should
      do the rest.
      
      That is pretty much it other than some random nits here and there.
      9036d314
    • Leigh B Stoller's avatar
      This commit adds some simple support for using the Infiniband on the · 997b21b5
      Leigh B Stoller authored
      Probe Cluster. The problem is that the IFB is a shared network that
      every node attaches to, which can looks like an ethernet device that
      can ifconfig'ed. In other words, one big lan.
      
      But we still want the user to be able to create a lan so that they can
      interact with it in thei NS file like any other network.
      
      The NS syntax is:
      
      	set lan2 [$ns make-lan "node1 node2 node3" * 0ms]
      	tb-set-switch-fabric $lan2 "infiniband"
      
      The switch fabric tells the backend to do IP assignment for the
      specific global network. Yes, I tried to be a little but general
      purpose. Lets see how this actually turns out.
      
      This first commit treats the fabric as a single big lan on the same
      subnet.
      
      NOTE 1: Since the unroutable IP space is kinda small, but the Probe
      Cluster is really big, we can easily run out of bits if we tried to do
      assignment on virtual topos. Instead, fabrics get their IP allocation
      at swapin time, and the allocations are deleted when the experiment is
      swapped out. The rationale is that the number of swapped in
      experiments is much much smaller then the number of possible topos
      that can be loaded into the DB. Still might run out, but less likely.
      
      The primary impact of above is that IP assignments can change from
      one swap to another, but this is easy to deal with if the user is
      scripting their experiment; the IP allocation is available via the
      XMLRPC interface.
      
      NOTE 2: The current code allocates from a single big network, which
      makes it easy for users to mess each other up if they start doing
      things by hand. Ultimately, we want each lan in each experinent to use
      their own subnet, but that is going to take more work, so lets do it
      in the second phase.
      
      The definition of "network fabrics" is in the new network_fabrics
      tables. As an example for probe:
      
      	INSERT INTO `network_fabrics` set
      		idx=NULL,
      		name='ifband',
      		created=now(),
      		ipalloc=1, ipalloc_onenet=1,
      		ipalloc_subnet='192.168.0.0',ipalloc_netmask='255.255.0.0'
      997b21b5
    • Leigh B Stoller's avatar
      Minor path fix. · df358066
      Leigh B Stoller authored
      df358066
  7. 31 Jul, 2012 1 commit
  8. 30 Jul, 2012 4 commits
  9. 27 Jul, 2012 1 commit
  10. 25 Jul, 2012 1 commit