1. 24 Sep, 2012 1 commit
    • Eric Eide's avatar
      Replace license symbols with {{{ }}}-enclosed license blocks. · 6df609a9
      Eric Eide authored
      This commit is intended to makes the license status of Emulab and
      ProtoGENI source files more clear.  It replaces license symbols like
      "EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited
      blocks that contain actual license statements.
      
      This change was driven by the fact that today, most people acquire and
      track Emulab and ProtoGENI sources via git.
      
      Before the Emulab source code was kept in git, the Flux Research Group
      at the University of Utah would roll distributions by making tar
      files.  As part of that process, the Flux Group would replace the
      license symbols in the source files with actual license statements.
      
      When the Flux Group moved to git, people outside of the group started
      to see the source files with the "unexpanded" symbols.  This meant
      that people acquired source files without actual license statements in
      them.  All the relevant files had Utah *copyright* statements in them,
      but without the expanded *license* statements, the licensing status of
      the source files was unclear.
      
      This commit is intended to clear up that confusion.
      
      Most Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the Affero GNU General Public License, version 3
      (AGPLv3).
      
      Most Utah-copyrighted files related to ProtoGENI are distributed under
      the terms of the GENI Public License, which is a BSD-like open-source
      license.
      
      Some Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the GNU Lesser General Public License, version 2.1
      (LGPL).
      6df609a9
  2. 10 Nov, 2010 2 commits
    • Robert Ricci's avatar
      Fix up copyright dates · bd6f3dbc
      Robert Ricci authored
      bd6f3dbc
    • Robert Ricci's avatar
      Re-think no_connect violations · 26e0a6c6
      Robert Ricci authored
      Re-think a very old idea in assign - that no_connect violations for
      unmapped links should not be assessed against links whose endpoints are
      not mapped. The problem with this is that assign is too hesitant to map
      nodes - if there is more than one link that can't be mapped or whose
      other end isn't mapped yet, then assign thinks it's better to leave the
      node unmapped. This leads to confusing solutions (in which nodes remain
      unmapped when really it's the links that are the problem), and I beleive
      it keeps assign from exploring valuable parts of the solution space.
      
      This patch chanes the behavior, so that no_connect violations get scored
      even when the endpoints of the link are not mapped.
      
      Not well enough tested to run in production.
      26e0a6c6
  3. 20 May, 2009 1 commit
  4. 01 Dec, 2006 1 commit
  5. 25 Jan, 2006 1 commit
    • Robert Ricci's avatar
      Merge in changes from the assign-devel branch. This includes: · ed3cbc13
      Robert Ricci authored
      Ripping out crope and replacing (almost) all cropes, char*s and
      strings with fstring
      
      Beginnings of XML parser support (not built by default yet).
      
      Significant re-org of code.
      
      Should now compile with the latest gcc.
      
      Putting link information in stored solutions.
      
      Support for fixing interfaces.
      ed3cbc13
  6. 19 Jan, 2005 1 commit
    • Robert Ricci's avatar
      Add support for the set-type-limit command in the ptop file. · 8eaec842
      Robert Ricci authored
      It looks like this:
      set-type-limit <type> <count>
      
      This can be placed anywhere in the ptop file.  It limits the number of
      physical nodes of a given type that an experimenter is allowed to use.
      
      For example, we may limit a user to 10 PCs, or 5 pc850s. In the latter
      case, if the experimenter had simply asked for 10 generic PCs, then we
      will try to find them some mapping of nodes that uses types of PCs
      other than pc850s.
      
      Added a precheck to tell the user up-front if they asked for more
      nodes than they are allowed to use of a given type.
      8eaec842
  7. 22 Oct, 2003 1 commit
    • Robert Ricci's avatar
      A few improvements: · b058ef64
      Robert Ricci authored
      Fix a bug with limited trivial link bandwidth. It used to be the case
      that we penalized solutions that over-used the trivial bandwidth based
      on the number of links that were over it. Turns out this was a
      problem, if you had links of differing bandwidths, and were near the
      limit. Certain orderings were possible where you would remove two
      trivial links in a different order than you added them, which might
      result in more (or fewer) violations being scored then when you did
      them originally. The fix for this is to penalize these based on
      bandwidth, which is what assign now does.
      
      Added a '-g' flag, which does greedy link selection - assign normally
      does random link selection until the very end, when it does one pass
      with greedy selection. This flag makes it do this all the time. This
      is useful for debugging, because it cuts out a call to random(). Turns
      out, it doesn't seem to make assign much slower. I might consider
      making it the default.
      
      Better output when the selftest (-T) fails.
      b058ef64
  8. 19 Sep, 2003 1 commit
  9. 18 Sep, 2003 1 commit
    • Robert Ricci's avatar
      Add some new ways to treat features. · 46a52a04
      Robert Ricci authored
      Features that begin with a '*' have some kind of global scope. Since
      that, by itself, doesn't mean much, the second character of the
      feature name must tell us what type of global feature it is. The two
      currently supported are:
      
      '&' - 'one is okay' - don't penalize the first pnode that has this
          feature, but penalize subsequent ones. Will be used to prefer
          not to give people multiple nodes at the sime widearea site.
      '!' - 'more than one is okay' - penalize the first pnode that has
          this feature, but not subsequent ones. This could be used to let
          assign pick experiments to swap out in order to let the current
          experiment map. The idea being that once you've decided that one
          of the experiment's nodes is getting stolen, you might as well
          swap the whole thing.
      
      For now, these global features should not have corresponding desires,
      because it's not clear what the right thing to do would be. But, we may
      decide to add these semantics someday.
      46a52a04
  10. 04 Sep, 2003 2 commits
  11. 20 Jun, 2003 1 commit
  12. 28 May, 2003 1 commit
    • Robert Ricci's avatar
      Added the TRIVIAL_LINK_BW option, which allows, in the ptop file, · 5c67bf1f
      Robert Ricci authored
      specification of how much bandwidth can be used on the node for
      trivial links. Clearly, there will be some limit to loopback
      transfers, and this makes assign aware of it.
      
      While I was in there, cleaned up and commented some of the code I was
      working on.
      
      Also fixed a bug with the type pre-check and emulated links that are
      trivial_ok - we can't add these into the total for a vnode, because
      they could end up being satisified with trivial links.
      5c67bf1f
  13. 10 Mar, 2003 1 commit
  14. 05 Mar, 2003 1 commit
  15. 10 Feb, 2003 1 commit
  16. 05 Feb, 2003 1 commit
  17. 04 Feb, 2003 1 commit
  18. 29 Jan, 2003 1 commit
  19. 03 Jul, 2002 1 commit
  20. 08 Jan, 2002 1 commit
    • Christopher Alfeld's avatar
      All the vclass stuff. Can now do: · 09737efc
      Christopher Alfeld authored
      make-vclass A 0.5 pc600 pc850
      
      in the top file.  And then have nodes of type A.  Assign will try to put
      them all as either pc600 or pc850.
      
      Still need to write all the pre-assign stuff.
      09737efc
  21. 02 Jan, 2002 1 commit
    • Christopher Alfeld's avatar
      · 1eb1e1d9
      Christopher Alfeld authored
      This check-in consists of 7 modifications to assign.
      
      1. Equivalence Classes
      
      Defined an equivalence relation on the physical nodes and applied it
      to the physical topology to get the resulting quotient topology (abuse
      of terminology).  So instead of searching among all possible physical
      nodes to make a map, assign only searches among all possible
      equivalence classes of nodes.  This tremendously reduces the search
      space.  At the time of this writing it reduces the physical topology
      from 252 nodes to 13 nodes.  The equivalence classes are generated
      automatically from the ptop file.
      
      2. Scoring based on equivalence classes.
      
      Each equivalence class used comes with a significant cost.  This
      strongly encourages assign to use equivalence machines when possible.
      The result is that an experiment that does not otherwise specify will
      almost definitely get machines of the same type.  If this needs to be
      reduced in the future it is the SCORE_PCLASS constant.
      
      3. Heuristics
      
      Added a bunch of heuristics for choosing which equivalence class to
      use.  This was less successful than I hoped.  A good solution is now
      found in record time but it still continues searching.  When OPTIMAL
      is turned on these heuristics help a lot.  When off they make little
      difference.  I may turn this into a compile time option in the future
      since the heuristics do take non-trivial CPU cycles.
      
      4. Fixed the very-very-big-and-evil disconnected-switches bug.
      
      Assign wasn't cleaning up after itself in certain cases.  Disconnected
      graphs are now merely a minor, easily ignored, bump rather than the
      towering cliffs they use to be.
      
      5. Fixed the not-yet-noticed not-enough-nodes bug.
      
      Found a bug that probably has never come up before because we have
      checks that avoid those circumstances.
      
      6. Modified constants.
      
      I was tired of waiting so long for results so, I lowered CYCLES and
      reduced the constant for naccepts (Mac, you probably want to add that
      inconspicuous number to your configurable constants; look for
      "naccepts =").  The results is roughly a speedup of 2.  It works great
      currently but we may want to change these numbers up again if we get
      problems with features and desires.
      
      7. General clean up.
      
      Associated with the other changes was a lot of restructuring and some
      cleanup.  Specifically to the assign loop and scoring code.
      1eb1e1d9
  22. 24 Apr, 2001 1 commit
  23. 14 Mar, 2001 1 commit
  24. 25 Aug, 2000 1 commit
  25. 26 May, 2000 1 commit
  26. 23 May, 2000 1 commit
  27. 22 May, 2000 1 commit
  28. 18 May, 2000 2 commits