1. 13 Feb, 2014 1 commit
  2. 21 Jun, 2013 1 commit
  3. 05 Jun, 2013 1 commit
  4. 04 Jun, 2013 2 commits
    • Mike Hibler's avatar
      More fixups based on first try in frisbee MFS. · 5ada29d7
      Mike Hibler authored
      More removal of hardwired paths in favor of paths.sh vars.
      Included script getfromtb.sh does not exist.
      touch and env do not exist in MFS.
      Use tmcc, not tmcc.bin.
      Create /etc/emulab/ismfs as frisbee MFS doesn't have it.
    • Mike Hibler's avatar
      Mike's first pass; minor changes. · 6de18726
      Mike Hibler authored
      Merge rc.config changes into the real script.
      Reduce rc.nodecheck varients to a single shell script and get rid of rc subdir.
      Add copyrights.
      Add GNUmakefile install target (but not used yet).
      Replace some hardwired paths with vars from paths.sh.
  5. 22 May, 2013 1 commit
  6. 25 Mar, 2013 3 commits
    • Mike Hibler's avatar
      Support for two new "loadinfo" options BIOSDISK and CONSOLE. · 94a298ea
      Mike Hibler authored
      BIOSDISK is passed through from the DB bootdisk_bios_id and is used to
      set the GRUB root device (in situations where grub disagrees with freebsd
      or linux about the primary boot device).
      CONSOLE is used to set the console device for an image's boot loader and
      kernel. Choices are "null", "vga", "sio", (the historic choices) along
      with "vid" (same as vga), "sio1" (same as sio), "sio2", "sio3", and "sio4".
      The FreeBSD slicefix script works for FreeBSD 9.x and above as well as
      Fedora, Ubuntu and CentOS. It will work with FreeBSD 8.x and earlier if
      the in-image /boot/loader is fixed to avoid hanging while polling a UART.
      This should be used in conjuction with one of the new
      pxeboot.emu-{null,vga,sio1,sio2,sio3,sio4} versions of pxeboot which
      will customize the FreeBSD kernel in the frisbee and admin MFSes.
      The console can be set via the "console_type" node_ or node_type_attribute
      tables in the DB. The "pxe_boot_path" attribute should also be set to
      reflect the appropriate /tftpboot/pxeboot.emu-* version for the console type
      Note that by default (no console_type or pxe_boot_path), nodes will continue
      to use the default /tftpboot/pxeboot.emu which can either be linked to one
      of the above new version, or could just be the current pxeboot which will
      not mess with the console settings.
      Finally, note that I made the changes to linux/slicefix, but they are only
      for FreeBSD images and are untested. The Linux grub-based pxeboot as well
      as linux_slicefix would still need to be changed for this to work under the
      "Linux MFS". Task for another day as I already spent waaaaay to long on this.
    • Mike Hibler's avatar
      Print out a time/date stamp with messages. · 18eed50a
      Mike Hibler authored
      Helps enormously with debugging.
    • Mike Hibler's avatar
      If there is a /etc/hosts entry for "ntp1" use that for ntpdate call. · bbb0a751
      Mike Hibler authored
      Used to always use boss, which isn't necessarily right.
      If host entry isn't present, fall back on boss. The plan is that
      localize_mfs will create the /etc/hosts entry in the frisbee MFS.
      I didn't want to have the MFS just use "ntp1" since the rest of the
      script doesn't depend on a functioning name server.
  7. 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
      Most Utah-copyrighted files related to ProtoGENI are distributed under
      the terms of the GENI Public License, which is a BSD-like open-source
      Some Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the GNU Lesser General Public License, version 2.1
  8. 07 Sep, 2012 1 commit
  9. 22 Jun, 2012 1 commit
  10. 19 Jun, 2012 1 commit
    • Mike Hibler's avatar
      Make frisbee more directly IGMP (v2) aware. · 66e07584
      Mike Hibler authored
      Add "-Q <interval>" option to the master server to allow it to act as an
      IGMP V2 querier in environment where there is otherwise not one. It does
      essentially what the perl-based querier (code.google.com/p/perl-igmp-querier/)
      does, sending out a v2 membership query at the specified interval.
      This eliminates the need to run mrouted in some environments (e.g., elabinelab)
      just to issue IGMP queries. As a result, all the boss-install and elabinelab
      setup related to using mrouted to perform this function has been removed.
      The elabinelab CONFIG_MROUTED option has been changed to CONFIG_QUERIER
      (the former is still recognized and mapped to the latter). The undocumented
      defs-* variable NEEDMROUTED has been changed to NEEDMCQUERIER (the former
      still exists in install/installvars.pm.in but is always set to 0) to more
      accurately reflect the variable's purpose. If NEEDMCQUERIER is set, then
      the mfrisbeed startup script is modified to add the "-Q 30" option.
      The implementation of the client and server "-K <interval>" keep-alive option
      has been changed to directly send IGMP v2 membership reports containing the
      associated MC address.
      Note that the -K options have always been a hack to work-around assorted
      IGMP-related misconfigurations and incompatibilities, and really should
      only be used as a last resort. As implemented, they could cause the host
      machine to be pruned out of other MC groups at the nearest switch since
      they only report membership in the frisbee MC group. With the master server
      acting as an IGMP querier, instances of the frisbee server on that host
      should no longer need to do keep alives. We still have one case where it
      is needed on the client-side: a FreeBSD 8.x or later host connected to an
      IGMPv2-only switch. It appears that the IGMPv3 implementation added in
      FreeBSD 8.x always sends v3 reports, even when the default is configured
      (via sysctl or even recompiling the kernel) as v2.
  11. 26 Apr, 2012 1 commit
    • Mike Hibler's avatar
      Make broadcast mode work with master server. · 270bcda4
      Mike Hibler authored
      I had never completed this. Two things to note:
      1. Distribution via broadcast is still disabled by default in the master
         server. To enable it, see the comment added in 3.mfrisbeed.sh.in.
         To use broadcast by default in the client, see the comment in rc.frisbee.
      2. If you specify broadcast (-b) in either the client or server, then you
         should use "-m". However, this will broadcast to ALL
         interfaces on the client/server. To limit to a specific interface, also
         include "-i <interface-IP>". This will tell the client/server to look up
         that interface and use the subnet broadcast address in place of Since the master server always starts up frisbeed
         instances with -i, broadcast will always be directed on the server.
         Since our rc.frisbee script also fires up the client with -i, it will
         likewise be directed.
  12. 15 Mar, 2012 1 commit
  13. 01 Feb, 2012 1 commit
    • Mike Hibler's avatar
      Add a VGAONLY attribute to the post-frisbee customization. · 53d43153
      Mike Hibler authored
      This is for BSD, so that we can tweak the default /boot/loader.conf file
      to turn off "comconsole" on machines that don't have a UART.
      In my experience, trying to probe the UART on newer machines that don't
      have one causes a kernel crash.
      Currently this attribute is just signalled by the existance of the
      /etc/testbed/isvgaonly file in the diskloader MFS. But this will be
      eventually sent over via "tmcc loadinfo" so that we can set the attribute
      on a per-node-type or per-node basis.
  14. 04 Oct, 2011 1 commit
    • Mike Hibler's avatar
      Add node/node_type attribute "no_clflush". · fdfce71d
      Mike Hibler authored
      This is for FreeBSD to turn off use of the CLFLUSH instruction via the
      hw.clflush_disable loader var. We have encountered some opteron machines
      on which this causes problems.
      The attribute can be set for the node_type (via the web page for editing
      node types) or the node (via brute-force SQL hackary) to override whatever
      FreeBSD would do by default. This attribute is passed via tmcd to the
      diskloader MFS which will fixup the loader.conf file post-frisbee.
  15. 21 Jul, 2011 1 commit
  16. 02 Feb, 2011 2 commits
  17. 01 Feb, 2011 1 commit
    • Mike Hibler's avatar
      Implement limited backward compatibility with the old frisbee setup. · 1017ccce
      Mike Hibler authored
      The big backward compatibility issue is that we no longer store running
      frisbeed info in the DB.  This means that loadinfo could not return
      address:port info to clients and thus old frisbee MFSes could no longer
      work.  While not a show stopper to require people to update their MFS first,
      I made a token effort to implement backward compat as follows.
      When an old frisbee MFS does "tmcc loadinfo" (as identified by a tmcd
      version < 33), tmcd will invoke "frisbeehelper" to startup a daemon.
      Sound like frisbeelauncher?  Well sorta, but vastly simplified and I only
      want this to be temporary.  The helper just uses the frisbee client to make
      a "proxy" request to the localhost master server.  The Emulab configuration
      of the master server now allows requests from localhost to proxy for another
      frisbeehelper is also used by webfrisbeekiller to kill a running daemon
      (yes, just like frisbeelauncher).  It makes a proxy status request on
      localhost and uses the returned info to identify the particular instance
      and kill it.
  18. 24 Jan, 2011 1 commit
  19. 11 Jan, 2011 1 commit
    • Mike Hibler's avatar
      More work toward getting this working on subboss. · 8d80301e
      Mike Hibler authored
      More work on the hierarchical configuration for subboss. When doing host-based
      authentication, allow client to pass an explicit host (IP) to the mserver.
      If the mserver is configured to allow it, that IP is used for authenticating
      the request instead of the caller's IP. Add a default ("null") configuration
      so the mserver can operate out-of-the-box with no config file. The goal of
      these two changes is for an mserver instance with the default config and a
      proxy option to serve the needs of a subboss node (i.e., so no explicit
      configuration will be needed).
  20. 28 Jun, 2010 1 commit
    • Mike Hibler's avatar
      Fix an argument parsing error. · 122b6fe8
      Mike Hibler authored
      In our sed 's///' commands applied to loadinfo we were assuming that if a
      variable pattern didn't match, we would get back an empty string.  But what
      we really get back is the entire loadinfo string.  Now sure how this ever
      worked (if it ever did!)
      Also did the piss-on-it thing.
  21. 23 Jun, 2010 1 commit
  22. 13 Nov, 2009 1 commit
  23. 05 Aug, 2009 1 commit
  24. 04 Aug, 2009 2 commits
  25. 24 Mar, 2009 1 commit
  26. 07 Nov, 2008 1 commit
  27. 31 Aug, 2007 1 commit
  28. 30 Aug, 2007 1 commit
  29. 29 Aug, 2007 1 commit
  30. 28 Aug, 2007 1 commit
  31. 23 Aug, 2007 1 commit
  32. 21 Aug, 2007 1 commit
    • Leigh B. Stoller's avatar
      Another round of widearea node hacking for CMU. These changes add · 99346dc0
      Leigh B. Stoller authored
      widearea reloading support.
      * New slot in the images table to store an access key which remote
        sites must provide in order to download an image (via https).
      * tmcd returns a different kind of ADDRESS field from doloadinfo.
        Instead of the multicast stuff, return a URL that points to boss'
        web server. The URL is of the form:
        which as you can see is fully specified; the client does not need
        to know anything else.
      * New webpage and backend scripts appropriately called "spewimage"
        which also includes support for the http HEAD request (from wget) to
        avoid downloading images that are already on the node. I just
        learned about this HEAD request stuff today ... but otherwise these
        operate as expected, spewing the image if the access key is provided.
      * Changes to rc.frisbee to deal with remote loading. In addition to
        URL support, I also added support for simple paths, the intent being
        that we will probably distribute images offline (say, at night) so
        that when a node reboots it doesn't actually have to wait 60 minutes
        for an image to download. I have not added any server side support
        for this yet though. Maybe later this week.
      * Other bits and pieces and fixes to make this work.
  33. 25 Jun, 2007 1 commit
  34. 01 May, 2007 1 commit
    • Mike Hibler's avatar
      First step is allowing a different "standard" disk layout: · b0e86d9b
      Mike Hibler authored
       * Somewhere in the DB, probably images, we will store the MBR "version"
         required by a partition (non-whole-disk) image.  This info will be
         passed to the client (us).
       * We use this info to install the correct MBR on the disk before starting
         frisbee.  The various MBRs (all two of them) will be stored in the
         frisbee MFS since they are only 512 bytes each.
      This checkin handles the client-side of things and is backward compatible
      (i.e., assumes MBR version 1 if nothing is passed).
      One immediate benefit is that this will allow us to install a partition
      image on a new (or otherwise MBR-free) disk, as it detects the case of no
      MBR and installs one.
  35. 09 Jan, 2007 1 commit
    • Mike Hibler's avatar
      Frisbee MFS changes: · 346c0562
      Mike Hibler authored
       * support FreeBSD 6
       * client-side changes to support enable/disable of ACPI via slicefix
       * use dynamically linked Emulab binaries in frisbee MFS (for size)