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. 27 Sep, 2011 1 commit
  3. 02 Jun, 2011 1 commit
  4. 01 Apr, 2011 1 commit
  5. 06 Mar, 2007 1 commit
  6. 19 Dec, 2005 1 commit
    • Kevin Atkinson's avatar
      · 45f997fd
      Kevin Atkinson authored
      Updates to to Error Logging API Code.
      
      You should start seeing much better error messages coming from my
      system.  Errors coming from parse.proxy and assign (the two most
      frequent sources of errors) should now be concise and to the point.
      Errors coming from libosload/libreboot (the next most frequent source
      of errors) should now also be much better, but not perfect.  Getting
      perfect errors will likely a rework of how errors are handled in
      libosload/libreboot, just adding tberror/tbwarn/tbnotice calls is not
      enough.  I can do this at a latter date if necessary.
      
      A few minor database changes.
      
      Some changes to the API.  A few bug fixes. Lots of tberror/tbwarn/tbnotice
      added to scripts.
      
      Since assign is a C program, and at this time my API is perl only, I wrote a
      second wrapper around assign, assign_wrapper2.  When assign fails errors are
      now parsed in assign_wrapper2, sent to stderr and logged.  This means that
      RunAssign() just returns when assign fails rather than echoing some of
      assign.log output and then quiting.  The output to the activity log remains
      unchanged.
      
      Since "parse.proxy" is run from ops I couldn't use my API in it, even though
      it is a perl program.  Instead I parse the errors coming form it in
      parse-ns.
      45f997fd
  7. 04 Nov, 2005 1 commit
    • Kevin Atkinson's avatar
      · a2aba279
      Kevin Atkinson authored
      Added error logging API.  See tbsetup/libtblog.pm.in and tbsetup/libtblog.sql.
      a2aba279
  8. 13 Jul, 2004 2 commits
    • Robert Ricci's avatar
      Nit police · 7d15a681
      Robert Ricci authored
      7d15a681
    • Leigh Stoller's avatar
      Back out previous revision (-j); linkmap is now generated on · c0818bff
      Leigh Stoller authored
      experimental nodes from the topomap.
      
      "static" routing now implies ddijk routing, but since old images won't
      have any of that support, we still have to generate routes and store
      them in the DB. However, only doing this when the number of nodes in
      the experiment is less than 250; otherwise print a warning and refuse
      to generate the routes.
      
      Also add "static-old" so that people can request/force old static
      routing no matter how big the experiment.
      c0818bff
  9. 25 May, 2004 1 commit
    • Leigh Stoller's avatar
      Add new usage for doing route calculation on nodes instead of boss: · 39a8533d
      Leigh Stoller authored
      	staticroutes -j [-n] [-f] [-d] <pid> <eid>
      
      Use -j option to generate a "linkmap" file in the current directory.
      The linkmap is of the current format (say, for a lan of three members):
      
              3 3
      	nodea 10.0.1.1 nodeb 10.0.1.2 2
      	nodea 10.0.1.1 nodec 10.0.1.3 2
      	nodeb 10.0.1.2 nodec 10.0.1.3 2
      
      The last column is the cost metric.
      
      Use -n option to print the linkmap to stdout instead of creating the
      file. -f is the usual force option (ignores routertype) and -d prints
      some debugging goo to stderr.
      
      For Shashi's 2440 vnode example (2610 edges):
      
      	{26} boss$ time perl ./staticroutes -f -j testbed 2440
      	real    0m1.431s
      	user    0m0.830s
      	sys     0m0.147s
      39a8533d
  10. 03 Sep, 2003 1 commit
    • Leigh Stoller's avatar
      Variable netmask changes (replace NETMASK constant with netmask field · b3d0140d
      Leigh Stoller authored
      from the virt_routes table for each lan). I had to add a hash to store
      that for each lan, as well as another has to map a node:port back to
      the lan so I could find the mask (this is needed in the code that adds
      host routes for all the interfaces of a dst, which requires knowing
      the mask. The mask has to carried along in the "packed" structures
      that Shashi is using to save space.
      
      Note, I have not changed the edgenode optimization code, which has a
      255.255.0.0 netmask wired in. The edgenode stuff is turned off, so I
      will wait until I hear from Shashi (and the new images are installed,
      which is required to make that work anyway).
      b3d0140d
  11. 02 Sep, 2003 1 commit
  12. 27 Aug, 2003 1 commit
  13. 26 Aug, 2003 1 commit
  14. 18 Aug, 2003 1 commit
  15. 17 Aug, 2003 1 commit
    • Shashi Guruprasad's avatar
      > > >An optimization that would be nice, and perhaps this was intended to do this, · cd473380
      Shashi Guruprasad authored
      > > >is to collapse stuff like:
      > > >
      > > >         192.168.3          192.168.2.2        UGSc        0       12  veth6
      > > >         192.168.3.2        192.168.2.2        UGHS        0        9  veth6
      > > >         192.168.3.4        192.168.2.2        UGHS        0       12  veth6
      > > >
      > > >into the single net route.
      
      Found the problem. My code took care of the case where the net route was
      calculated first and if a host route came up for the same subnet with the
      same hop, it would skip adding the host route. However, if the host route
      were added first before the net route, it was a problem. To illustrate the
      problem, the host route to 3.2 is added on FG1 when the net route was
      calculated for node 'A' at 7.0 . At this point however, the net route for
      3.0 hasn't been defined yet coz that'll come later in the route to dst
      'AS1'. Experiment testbed/vroutetest.
      
      The solution is to consider adding host routes only after all net routes
      have been added to the DB. Changes to the code weren't trivial this time.
      Also, when adding host routes, I add the first one as a net route. If
      subsequent host routes have the same hop, they'll get skipped. Otherwise,
      a host route with a longer prefix will take precedence. With all these
      changes, the number of routes in testbed/vroutetest experiment came down
      from 361 (> NxN) to 162 (< NxN) where NxN is 289 . Mike, let me know if
      things are alright after rebooting vnodes in your experiment.
      cd473380
  16. 15 Aug, 2003 1 commit
    • Shashi Guruprasad's avatar
      I found the bug. In one path, the host route calculation was being · 93971eef
      Shashi Guruprasad authored
      skipped.
      
      ----------------
          if ($optimize) {
      	my $newip = inet_ntoa(inet_aton($dstip) & inet_aton($NETMASK));
      
      	if (defined($netroutes{"$src:$newip"})) {
      	    if ($netroutes{"$src:$newip"} ne $hop) {
      		die("*** $0:\n".
      		    "    network route mismatch: $src:$dst:$hop!\n");
      	    }
      	    next;
      ^^^^^^^^^^^^^^^^^^^^^^^^^^
      	}
      
      	$netroutes{"$src:$newip"} = $hop;
      	$type  = "net";
      	$dstip = $newip;
          }
      
      HOSTROUTES:
      ----------------
      
      If a NET route is already defined for a subnet because of a previous route
      (to a different dst on the same LAN), it would skip doing the HOSTROUTES.
      This problem wouldn't occur with links alone in the topology. Looks like
      it was never caught because no one probably tried pinging IPs of all
      interfaces while using LANs. Note that this problem wouldn't occur for
      directly connected neighbors (even if they are on a LAN). The latter is
      the reason why maryland folks didn't encounter this problem.
      
      The bottomline: We need Dave (West)'s automated testing tool!
      
      Fixed, committed and installed.
      
      Mike, I have fixed the routes in your experiment. Just reboot your
      nodes/vnodes.
      
      -Shashi
      
      On Fri, 15 Aug 2003, Mike Hibler wrote:
      
      > I've know we have been round and round this one, but it appears that
      > rtproto Static is not producing routes to all IP addrs listed in the
      > hosts file.  Again, it is nodes with multiple interfaces and we don't
      > have routes to the nodes on all of those interfaces.  I thought we came
      > up with some solution (or at least hack) for this?
      >
      > You can see this in the testbed/vroutetest experiment by logging into
      > say EGG1.vroutetest.testbed.emulab.net and trying to ping "F-3".
      > Note that this is a vnode so you'll have to slogin from ops or, better,
      > use the fine ssh-mime.pl thingee of Leigh's from the web page.
      >
      > Honestly, I tried going back to the mail archive to find last time this
      > came up, but I didn't find anything useful!
      >
      93971eef
  17. 03 Feb, 2003 1 commit
    • Shashi Guruprasad's avatar
      Didn't have routes to other interfaces of directly connected nodes. For e.g. · 3ec9f111
      Shashi Guruprasad authored
                          1.1    1.2
                         A---------B
                      3.1\        /2.1
                          \      /
                        3.2\   /2.2
                             C
      
      In the above topology, there were no routes on C to ip addresses 1.1 and 1.2
      because the code skipped adding routes to directly connected nodes.
      
      This fixes the problem. We still don't add routes to the ip address on the
      directly connected interface. For e.g., On C, we don't add a route for 3.1
      We just add host routes for 1.1 and 1.2
      
      C add-route -host 1.1 3.1
      C add-route -host 1.2 2.1
      
      Now, we should have every experimental interface pingable and reachable via
      the shortest path.
      3ec9f111
  18. 31 Jan, 2003 1 commit
  19. 30 Jan, 2003 1 commit
  20. 10 Nov, 2002 1 commit
  21. 06 Nov, 2002 1 commit
    • Shashi Guruprasad's avatar
      NSE related changes: · 05bc3bd4
      Shashi Guruprasad authored
        - Fixes the routing problem
        - A new type "sim" has been created but not in the DB. node_types and
          nodes remain unchanged. This will change after we figure out how
          to represent in the DB the local multiple virtnodes in one phynode case
          The frontend tb_compat.tcl adds the sim type and ptopgen associates
          a huge number of sim nodes to all local PCs.
        - All simulated nodes go into one pc untill I finish coding the distributed
          nse case. Also, sim nodes go through assign but with an explicit
          "fix-node" directive in the top file. A random free pc is chosen using
          the avail script in assign_wrapper. If we don't fix node it, assign
          maps sim nodes to multiple phy nodes even when a valid all to one
          mapping is possible.
        - Syntax for nse:
      
         $ns make-simulated {
      
             set simnode1 [$ns node]
             set simnode2 [$ns node]
      
         }
         ...
      
         The old syntax
      
         set nsenode [$ns nsenode]
         $nsenode make-simulated {
         }
      
         is deprecated
      
        - All 38 frontend tests in the testsuite pass
      
        - A new table v2pmap has been added to handle multiple virt nodes to
          one phy node mapping. This is used in "tmcc hostnames" currently.
      
        - The phy node that is picked to run nse is loaded with a custom image
          FBSD45-NSE . This can use the default FBSD kernel if there is a mechanism
          to run at 1000HZ, have options IPFIREWALL_FORWARD and PERFMON turned on.
          The image is in the 'testbed' group. Do not delete this image.
      
        - Static routes now adds routes for the case dst == nexthop. The routing
          graph would be disconnected otherwise and I need to traverse this in
          assign_wrapper for nse. On the client side, such a route is filtered out in
          libsetup.pm
      
        - sim nodes are also correctly visualized
      05bc3bd4
  22. 09 Oct, 2002 1 commit
  23. 28 Sep, 2002 1 commit
  24. 07 Jul, 2002 1 commit
  25. 10 May, 2002 2 commits
  26. 09 May, 2002 2 commits