1. 03 May, 2016 1 commit
  2. 02 Feb, 2016 1 commit
    • Mike Hibler's avatar
      Changes for FreeBSD 10.2 delay node. · 5286f0a5
      Mike Hibler authored
      Minor tweaks so that ipfw/dummynet sets up properly. Allow dynamic
      config (delay_setup) to accept a BW value up to 1Gb (was 100Mb).
      Somewhat dubious: if the incoming interface speed matches the desired
      shaping BW, set the BW to unlimited on the pipe (since the interface
      is already throttling for us).
      BEWARE! The fidelity of shaping at over 1Gb (e.g., adding delay to a
      10Gb link) is awful. Even a 10Gb pipe with no delay or loss only achieved
      about 7Gb/sec max. The delay node code needs serious work!
  3. 02 Nov, 2012 1 commit
  4. 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* state...
  5. 23 Jul, 2012 1 commit
  6. 06 Mar, 2012 1 commit
  7. 21 Jul, 2011 1 commit
  8. 25 Apr, 2011 1 commit
    • Mike Hibler's avatar
      Remove the hardwired configuration of physical interfaces used for linkdelays. · 5fdc31a3
      Mike Hibler authored
      I believe this is left over from a bygone era and should not be needed
      (in addition to being wrong, since it always sets the link to 100Mb).
      rc.ifconfig (via the generated rc.ifc) will properly configure physical
      interfaces that underly multiplexed links.
      Note also that the Linux version of the delaysetup script never did this.
  9. 04 Jan, 2011 1 commit
  10. 15 Dec, 2009 1 commit
  11. 26 Oct, 2009 1 commit
  12. 08 Sep, 2009 1 commit
  13. 06 Jul, 2009 1 commit
  14. 11 Dec, 2008 1 commit
  15. 10 Sep, 2008 1 commit
  16. 14 Sep, 2007 1 commit
    • Mike Hibler's avatar
      Fix some nits: · 84ef9202
      Mike Hibler authored
       * remove extra newline in bootwhat data
       * check command line for custom kernel in FBSD6 delay code
       * de-utahize a hostname lookup in ixpboot
  17. 17 Jul, 2007 1 commit
  18. 23 Apr, 2007 1 commit
    • Mike Hibler's avatar
      Major overhaul. The goal was to have One Kernel To Rule Them All, · 26fd19af
      Mike Hibler authored
      at least under FreeBSD 6.2.  That is, a single kernel for regular, delay
      and linkdelay usage.  I got close, still have a second kernel for delay
      since it uses DEVICE_POLLING and I haven't had a chance to determine the
      impact of the DEVICE_POLLING option when polling is disabled.
      [Aside: polling + 10000HZ may be a bad idea.  In 6.2, there seems to be
       a lot more overhead associated with polling, they don't recommend you
       go over 1000HZ with polling turned on.]
      Note that the script now checks the running kernel's HZ value, tweaks
      /boot/loader.conf, and reboots if it is not correct.  However, this should
      not be needed when combined with the latest, spiffy emuboot which can take
      a HZ=NNNN command line option and change the kernel setting before loading
      the kernel.
      These changes should not affect the old 4.x kernels.
  19. 25 Oct, 2006 1 commit
  20. 04 Oct, 2006 1 commit
  21. 14 Sep, 2006 1 commit
    • Mike Hibler's avatar
      Tweaks for pelab: · f4ca1827
      Mike Hibler authored
      * sync the are-we-running-the-right-kernel? code with rc.<whateveritis>
        so that it behaves with a 5.x delay kernel
      * modify to support a -r "restart" option so we don't have to invoke twice
  22. 23 Jan, 2006 2 commits
  23. 09 Nov, 2005 1 commit
  24. 22 Jun, 2005 1 commit
    • Leigh B. Stoller's avatar
      Added my simplistic link tracing and monitoring. Example usage and · 7942119e
      Leigh B. Stoller authored
      some details can be found in the advanced tutorial that I wrote up.
      See this link:
      The basic idea is that each virt_lan entry gets a couple of new slots
      describing the type of tracing that is desired.
        traced tinyint(1) default '0',
        trace_type enum('header','packet','monitor') NOT NULL default 'header',
        trace_expr tinytext,
        trace_snaplen int(11) NOT NULL default '0',
        trace_endnode tinyint(1) NOT NULL default '0',
      There is a new physical table called "traces" that is a little bit
      like the current delays table. A new tmcd command returns the trace
      configuration to the client nodes (tmcd/common/config/rc.trace).
      The delays table got a new boolean called "noshaping" that tells the
      delay node to bridge, but not set up any pipes. This allows us to
      capture traffic at the delay node, but without much less overhead on
      the packets.
      The pcapper got bloated up to do packet capture and more event stuff.
      I also had to add some mutex locking around calls into the pcap
      library and around malloc, since the current setup used linuxthreads,
      which is not compatable with the standard libc_r library. I was
      getting all kinds of memory corruption, and I am sure that if someone
      breathes on the pcapper again, it will break in some new way.
  25. 11 Sep, 2004 1 commit
  26. 30 Jun, 2004 1 commit
  27. 28 Jun, 2004 1 commit
  28. 21 Jun, 2004 1 commit
  29. 17 Feb, 2004 1 commit
    • Leigh B. Stoller's avatar
      Medium size cleanup of the client side code. The main impetus behind · 069dc7d3
      Leigh B. Stoller authored
      this was to add soft reconfig support so that nodes could be
      reconfigured without having to reboot them. This appears to work, and
      has been tested with jails getting moved around. I've also tested the
      new code on the MFS, but still no testing has been done on PLAB nodes.
      The main change is that most of the code moved out of libsetup.pm, and
      was split into constituent rc scripts, each of which does its own
      thing, including cleaning up and preparing for making an image. Most
      of that central knowledge has been moved out into the scripts. Still more
      to do but this was a good start.
  30. 27 Oct, 2003 1 commit
  31. 16 Oct, 2003 1 commit
    • Leigh B. Stoller's avatar
      Brave new world of tmcc client side caching. The goal is to reduce the · 2b72f2c9
      Leigh B. Stoller authored
      number of connections to tmcd, and the resulting number of DB queries.
      Currently thats about 24 per node when it boots. Each vnode adds
      another 24 or so. The new approach is to use the "fullconfig" command,
      which dumps the entire config in one shot, saving about 20 of those
      connections. We still need to do the status/state commands for real of
      course. When a node boots, it requests the fullconfig; the client side
      takes this fullconfig, and dumps the individual sections to
      /var/emulab/boot/tmcc/section_name. Subsequent requests first look for
      it locally in the above named files, falling back to real tmcc if none
      exists. The update command also refreshes the cache.
      Tested for jails and plab node vservers as well.
  32. 06 Oct, 2003 1 commit
    • Leigh B. Stoller's avatar
      * New libtmcc.pm module that encapsulates the tmcc interface. Most of the · 434a472a
      Leigh B. Stoller authored
        code that was in libsetup has moved into this library, and underwent a
        giant cleaning and pumping up. The interface from your typical perl
        script now looks like this:
        use libtmcc;
        if (tmcc(TMCCCMD_STATUS, "optional arguments", \@tmccresults) < 0) {
            warn("*** WARNING: Could not get status from server!\n");
            return -1;
        foreach my $me (@tmccresults) {
      	print "bite $me";
        The arguments and results are optional values. There is a fourth optional
        value that is a hash of config options (basically converted to command
        line switches passed to tmcc). For example, to set the timeout on an
        individual call, pass a fourth argument like:
      	("timeout" => 5)
        There is also a way to set global options so that all subsequent tmcc
        calls are affected:
      	configtmcc("timeout", 5);
        I'll probably clean this up a bit to avoid the direct strings.
        The result list is a list of strings. Since we are trending away from
        using tmcc to transfer large amounts of data, I think this is okay.
      * A new tmcc.pl which does little more than load libtmcc and use it.
        This will become the new tmcc, with the existing C version becoming a
        backend binary for it.
      * All of the perl scripts in tmcd have been changed to use the new
        library. I left the few uses of tmcc in shell scripts alone since they
        were of the simple variety (mostly "state" command).
      * And again, if you have read this far, you will learn why I bothered with
        all this. Well, the existing code was really bad and it was getting out
        of control. Sort of like a squid that was getting harder to control as
        its rotting tenticles slithered into more and more scripts. Anyway ...
        More important, my goal is to use the libtmcc library to add caching.  I
        have not worked out the details yet, but I am envisioning a configuration
        file, perhaps generated initially by tmcd, of all of the config
        values. If the library finds that file, it sucks the info out of the file
        instead of going to tmcd. Eventually, this config file would be generated
        as part of experiment swapping and stored in the DB, but thats a longer
        term project, and perhaps orthogonal (how we fill the cache is not as
        important as adding the ability to use a cache, right?).
        Note that certain operations (like "state" and "ready") are flagged by
        the library to always bypass the "cache".
  33. 24 Jun, 2003 1 commit
  34. 09 Jun, 2003 1 commit
    • Leigh B. Stoller's avatar
      Add new script ifsetup, which resets the rc files for initializing · 3a093261
      Leigh B. Stoller authored
      tunnels, interfaces, routes, and delay links. Currently in the freebsd
      subtree, it will move to the common directory at some point. When used
      with either -i or -u, it will also run the rc files, either to install
      (-i) or to uninstall (-u). I suppose a logical option would be a -r
      option to reinit (uninstall, followed by install), and that would be
      easy to add. Also takes a -j option to specify a vnodeid (jail), which
      does all the same stuff, but just for the specified jail node (tmcd
      changed to return vnode specific data). So, this script can be used to
      set up the phys node, or any single virtual node on that phys node.
      Changed delaysetup to take the same options (-i, -u, -j), and I call
      delaysetup from ifsetup, passing the options along.
  35. 14 May, 2003 2 commits
  36. 08 Apr, 2003 1 commit
  37. 02 Apr, 2003 2 commits