1. 24 Aug, 2012 1 commit
  2. 14 Aug, 2012 1 commit
  3. 13 Aug, 2012 1 commit
  4. 10 Aug, 2012 2 commits
  5. 08 Aug, 2012 5 commits
    • Leigh Stoller's avatar
      Bug Fix: Fix how we determine the set of ports to tag/untag. · ad8ed130
      Leigh 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
    • Mike Hibler's avatar
      Bug Fix: syntax error. · f16a29de
      Mike Hibler authored
      f16a29de
    • Mike Hibler's avatar
      Bug Fix: fix a race that Kirk discovered. · 2f592758
      Mike Hibler authored
      Due to improper plumbing of the NOSHAREDFS attribute, all nodes were trying
      to create the shared logging dir. The race was between checking for the
      existence of the directory and trying to create it.
      2f592758
    • Mike Hibler's avatar
      9cbfa126
    • Mike Hibler's avatar
      Bug Fix: fix incorrect usage of "sizeof(blockhdr_t)". · 9f5bed29
      Mike Hibler authored
      The size of the block header differs depending on the version of the image.
      sizeof(blockhdr_t) gives the size of the current version of the header when
      the binary was built (V4 currently). This only mattered in two places:
      
      In imagezip, it would have prevented us from creating a backward compatible
      V1 image. Probably nobody has done this in 10 years.
      
      In imageunzip, it could prevent relocations from being processed. This only
      affected recent builds (V4 format) when attempting to unzip an older
      single-partition FreeBSD image (FBSD5 or before). This is unlikely to occur
      outside of Utah and only very rarely here.
      9f5bed29
  6. 07 Aug, 2012 4 commits
  7. 06 Aug, 2012 2 commits
  8. 03 Aug, 2012 4 commits
  9. 02 Aug, 2012 3 commits
  10. 01 Aug, 2012 14 commits
    • Leigh Stoller's avatar
      When using a shared vlan, must set the default encap style to vlan · dc9b652c
      Leigh Stoller authored
      (just like we do when using shared nodes).
      dc9b652c
    • Leigh Stoller's avatar
      When removing a vlan from a tagged port, need to watch for the · 0bb7009c
      Leigh 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 Stoller's avatar
      Change how we determine the set of stale trunked ports, since · 1ada7631
      Leigh Stoller authored
      with shared vlans, using the reserved table in a join does not
      get the ones we need.
      1ada7631
    • Leigh Stoller's avatar
      Add debugging print. · 0843a736
      Leigh Stoller authored
      0843a736
    • Mike Hibler's avatar
      46162abb
    • Jonathon Duerig's avatar
      Revert last commit. · a6a59533
      Jonathon Duerig authored
      a6a59533
    • Jonathon Duerig's avatar
      Don't print 'Debugging is on.' on every call. · b562c6f9
      Jonathon Duerig authored
      If debugging is on, this will be evident based on the debugging messages...
      b562c6f9
    • Leigh Stoller's avatar
      Minor bug fix. · 905543d0
      Leigh Stoller authored
      905543d0
    • 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 Stoller's avatar
      This commit adds some simple support for using the Infiniband on the · 997b21b5
      Leigh 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 Stoller's avatar
      92137d2b
    • Leigh Stoller's avatar
      Minor path fix. · df358066
      Leigh Stoller authored
      df358066
    • Leigh Stoller's avatar
      9155e015
    • Leigh Stoller's avatar
      9f997617
  11. 31 Jul, 2012 3 commits