1. 10 Sep, 2008 1 commit
  2. 15 Apr, 2008 1 commit
    • Mike Hibler's avatar
      Another step along the Linux vserver path. It is now to the point that · 25a29bbb
      Mike Hibler authored
      vservers can be configured with experimental interfaces.  Think duct tape
      and baling wire here...
      
       * commmon/bootvnodes: did some code refactoring in anticipation of
         something that was never needed.  Oh well, it looks purdy anyway!
      
       * common/libsetup.pm: LINUXJAILED() predicate to indentify local Linux
         vserver setups.  getlocalevserver() to return the IP/hostname of the
         "local" event server.
      
       * common/rc.{linktest,linkagent,progagent,trace,trafgen}: use the
         getlocalevserver() function for use with -s options (Linux vserver
         based vnodes cannot bind to localhost to talk to the pnode pubsubd)
      
       * common/config/rc.ifconfig: run this for Linux vservers, put out iface
         map for veths as well as physical interfaces
      
       * common/delaysetup: add -j vnodeid option, will need this at some point
      
       * linux/liblocsetup.pm: veth (actually etun) setup for Linux vserver vnodes
      
       * linux/mkvserver.pl: first cut at getting interfaces configured in
         vservers, do all the necessary etun/br plumbing (NOT a pretty sight...)
      
       * linux/vserver/rc.invserver (moved here from linux/rc.invserver):
         run linktest in local vservers (though it won't run yet due to NFS
         problems in vservers)
      
       * linux/vserver/vserver-cnet.sh: statically configure the control net
         in a vserver, no DHCP here!
      
       * linux/vserver/vserver-{init,rc}.sh: two parts of the Funky Interface
         Setup Dance that run inside the vserver
      25a29bbb
  3. 21 Aug, 2007 1 commit
  4. 14 Aug, 2007 1 commit
  5. 09 Aug, 2007 1 commit
  6. 29 Jan, 2007 1 commit
  7. 25 Oct, 2006 1 commit
  8. 22 Oct, 2006 1 commit
    • Kirk Webb's avatar
      · 4df8b160
      Kirk Webb authored
      Sigh...
      
      Revert max queue mod to delay qdisc and modify delaysetup to make the delay
      qdisc the parent of the HTB.  This correctly shapes the traffic.  The max queue depth on the delay qdisc made the HTB redundant.
      4df8b160
  9. 21 Oct, 2006 1 commit
    • Kirk Webb's avatar
      · 90b88ab8
      Kirk Webb authored
      Fix linux linkdelays to honor queue size properly.
      
      This removes the problem where the delay queuing discipline would
      collect packets indefinitely.  It now maintains a maximum queue
      length, and drops packets when this fills (droptail).  The linux
      delaysetup script has been altered to use this new queue size
      mechanism.  Also, I'm committing the updated patch for the tc utility
      that allows modification of this queue size parameter from user space.
      90b88ab8
  10. 03 Jul, 2006 1 commit
    • Mike Hibler's avatar
      Framework for supporting 802.1q tagged VLANs as a form of multiplexed link. · 3f1c15e2
      Mike Hibler authored
      Actually, most of the changes here were just to generalize the "virtual
      interface" state in the DB.  Other than the client-side scripts, there
      is very little specific here specific to tagged VLANs.
      
      In fact, you cannot specify "vlan" as a type yet as we haven't done the
      snmpit support for setting up the switches.
      
      For more info see bas:~mike/flux/doc/testbed-virtinterfaces.txt, which I
      will integrate into the knowledge base and the Emulab doc at some point.
      3f1c15e2
  11. 15 Apr, 2006 1 commit
  12. 28 Sep, 2005 1 commit
  13. 11 Sep, 2004 1 commit
  14. 21 Jun, 2004 1 commit
  15. 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.
      069dc7d3
  16. 30 Oct, 2003 1 commit
  17. 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".
      434a472a
  18. 22 Jul, 2003 1 commit
    • Kirk Webb's avatar
      · d356ef16
      Kirk Webb authored
      Here we have the Linux delaysetup startup script - first revision.  This
      uses iproute2+tc, modprobe, and iptables to setup traffic shaping.
      A few notes are warranted:
      
      1) [g]red is not yet supported
         - need to make these modules classful in the kernel first
      
      2) sysctls are used here to up the amount of buffer space available for
         sk_bufs (socket buffers).  Couldn't see a place to do this in the kernel
         config.
      
      3) Only linkdelay support is implemented
         - probably could add normal delay-node support without too much trouble.
      
      4) reverse pipe numbers are (currently) ignored
         - not needed since the IMQ device used to shape incoming traffic
           is distinct from the actual interface - no namespace collision.
      
      5) Kernel selection is similar to FBSD: check running kernel, and reboot
         if the kernel version isn't what we expect (have to rerun lilo too)
      d356ef16