1. 16 May, 2014 1 commit
  2. 07 May, 2014 1 commit
    • Mike Hibler's avatar
      Introducing TMCD version 38! Returns additional "loadinfo" info. · 4a8604b1
      Mike Hibler authored
      New loadinfo returns:
      
      IMAGELOW, IMAGEHIGH: range of sectors covered by the image.
          This is NOT the same as what imageinfo or imagedump will show.
          For partition images, these low and high values are adjusted
          for the MBR offset of the partition in question. So when loading
          a Linux image, expect values like 6G and 12G. The intent here
          (not yet realized) is that these values will be used to construct
          an MBR/GPT on the fly, rather than using hardcode magic MBR versions.
          You can get the uncompressed size of the image with (high - low + 1).
      
      IMAGESSIZE: the units of the low/high values.
          Always 512 right now, may be 4096 someday.
      
      IMAGERELOC: non-zero if the image can be placed at an offset other
          than IMAGELOW (i.e., it can be relocated). This may or may not
          prove useful for dynamic MBR construction...we will see.
      
      Probably didn't need to bump the version here, but I am playing it safe.
      4a8604b1
  3. 20 Feb, 2014 1 commit
  4. 12 Oct, 2013 2 commits
  5. 09 Sep, 2013 1 commit
    • Mike Hibler's avatar
      Build libtb and tmcd lib for frisbee-mfs. · bd9cc69b
      Mike Hibler authored
      Side-effect of change that added full tmcc build (aka, with SSL) to client.
      Even though we currently don't install full tmcc in frisbee MFS (due to
      other missing libraries) we at least make sure it builds.
      bd9cc69b
  6. 22 Jul, 2013 1 commit
  7. 18 Jun, 2013 1 commit
  8. 16 May, 2013 2 commits
  9. 07 May, 2013 1 commit
  10. 30 Apr, 2013 1 commit
    • Kirk Webb's avatar
      Add complete local node storage support from parser down to tcmd. · dab52801
      Kirk Webb authored
      Doing this required adding columns to the virt and physical blockstores
      tables to mark the attributes that will be considered for mapping.
      Unmarked entries just flow through to the client-side.
      
      This commit also introduces filesystem support in the form of passing
      through a mount point to the client-side.  It is left to the client to
      decide what filesystem and fs options to use to setup the space, including
      any logical volume aggregation required to support the request.
      dab52801
  11. 15 Apr, 2013 1 commit
  12. 27 Feb, 2013 2 commits
    • Kirk Webb's avatar
      Fixes to the DB queries for storage config. · 11350134
      Kirk Webb authored
      I had it looking in the wrong tables given that I wanted to find the
      set of lans a node is connected to which contain blockstores (physical
      instead of virtual).
      
      Also squash a couple of bugs.
      11350134
    • Kirk Webb's avatar
      Initial "storageconfig" support added to tmcd. · 9c6e2ba5
      Kirk Webb authored
      Add the command and code to return information to storage infrastructure
      hosts when they query tmcd about their pseudo-VMs.  Corresponding slice and
      export information is returned.
      9c6e2ba5
  13. 28 Dec, 2012 1 commit
  14. 30 Nov, 2012 1 commit
    • Mike Hibler's avatar
      Plumb through an fs-install makefile target and fixes to ops-install. · 3cd66d51
      Mike Hibler authored
      This officially drops the pretense that fs nodes can operate with minimal
      Emulab software. If you have a seperate fs node, it had better be dedicated
      to Emulab!
      
      However, it still doesn't do everything. In particular, accounts are not
      installed. This has never been needed for serving NFS, but is needed for
      the samba stuff to work correctly.
      
      Also, you cannot do an fs node software install from boss yet as we do not
      mount fs filesystems on boss. You really cannot do a full ops install from
      boss either since we don't mount ops' /usr/local/etc/emulab directory.
      3cd66d51
  15. 14 Nov, 2012 1 commit
    • Mike Hibler's avatar
      Client half of the fetch-tarballs-via-the-web change. · 763c6aca
      Mike Hibler authored
      For every tarball and rpm, tmcd will now pass a SERVER= string as well
      telling the client where the file should be downloaded from (if using
      the web rather than NFS). Right now this value is the same for all
      tarballs and rpms, and is hardwired in tmcd as either "www" (if
      SPEWFROMOPS=0) or "users" (if 1). Note: BUMPED THE TMCC VERSION NUMBER
      for this.
      
      Made a common routine for doing an error-check-and-retry copy of a file
      across "racy" NFS. This is used by install-{tarfile,rpm} and rc.topomap.
      763c6aca
  16. 30 Oct, 2012 1 commit
  17. 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
  18. 22 Sep, 2012 1 commit
  19. 13 Sep, 2012 1 commit
  20. 01 Aug, 2012 1 commit
    • Mike Hibler's avatar
      Support 64-bit FreeBSD on the server side. · 9036d314
      Mike Hibler authored
      NOTE: currently only for FreeBSD 7.3 installs because that is the only
      set of boss/ops/fs packages I have built so far!
      
      This mostly involved minor changes to event agents. Too often we were
      passing a pointer to a "long" to *get_int32, which on a 64-bit x86 OS would
      fill the wrong half of a 64-bit variable. There was also one instance of
      TCL code that had to be tweaked to account for 32- vs 64-bit.
      
      These changes also required regeneration of SWIG stubs and an ugly change
      to the SWIG generated code to use va_copy rather than direct assignment in
      a couple of places.
      
      Also related to SWIG is ensuring that the components that go into the
      perl/python stub .so files are built with PIC. The amd64 linker requires
      this.
      
      The meta-ports had to be changed to reflect that linuxthreads and
      ulsshxmlrpcpp don't work on amd64. The former had little effect as we
      had mostly eliminated uses of linuxthreads already. The one thing that
      did change was that we do not build nfstrace on amd64 (and we don't
      currently use this anyway). Removing ulsshxmlrpcpp required switching
      to the new event scheduler (event/new_sched) that Ryan did awhile back.
      Note that it is only "new" in the sense that it uses a standard XMLRPC
      package, there should be no functional differences. However, to be safe
      we only use new_sched as the standard scheduler on 64-bit server installs.
      
      Finally, added support to elabinelab setup to do a 64-bit server install.
      Just specify FBSD73-64-STD as the boss/ops/fs osid and rc.mkelab should
      do the rest.
      
      That is pretty much it other than some random nits here and there.
      9036d314
  21. 27 Jun, 2012 2 commits
  22. 25 Jun, 2012 1 commit
  23. 29 Mar, 2012 1 commit
    • Mike Hibler's avatar
      Fix nonce calculation. · c1ff2263
      Mike Hibler authored
      Well, isn't that special. We had the arguments to memcpy backward (probably
      dating from the time when we use bcopy instead). So instead of copying bytes
      of goodness into the zeroed nonce buffer, we were copying bytes out.
      Net result: a nonce of zeros.
      c1ff2263
  24. 15 Mar, 2012 2 commits
    • Ryan Jackson's avatar
      Linux MFS: more bzero() issues · 9096a504
      Ryan Jackson authored
      9096a504
    • Ryan Jackson's avatar
      Linux MFS: Change bcopy() to memcpy() · 8c0e5d2c
      Ryan Jackson authored
      uClibc doesn't support bcopy() or bzero() by default, and for some
      reason the current configuration doesn't have the appropriate option
      enabled like it should.  I will fix it, but to avoid future issues
      should the configuration become borked again we should use memcpy()
      and memset() instead.
      8c0e5d2c
  25. 14 Mar, 2012 1 commit
    • Mike Hibler's avatar
      Pass through bootinfo flags on tmcc "bootwhat" command. · 3ca3abf6
      Mike Hibler authored
      bootwhat will now return a FLAGS=%d value corresponding to the flags
      field in the boot_what struct.
      
      NOTE: THIS REQUIRED A TMCD VERSION BUMP. We are now at version 35.
      The issue was backward compatibility with existing CD/dongle boot images
      which are overly strict in their parsing of the returned bootwhat values.
      
      Added a new boot_what flag (the whole point of this) to signify if the
      entity being returned is part of the "secure boot" path. This is used
      by the gPXE dongle to determine whether it needs to do a trusted boot
      path "sign-off" for the MFS it downloads. We used to use the name of
      the MFS as our heuristic for this.
      
      bootinfo uses the new tbdb.os_info osfeature "ontrustedboot" to determine
      whether to set the flag.
      3ca3abf6
  26. 09 Mar, 2012 1 commit
  27. 21 Feb, 2012 1 commit
    • Mike Hibler's avatar
      The "stated corruption" bug is dead! · 17528b83
      Mike Hibler authored
      Finally tracked this down to a piece of code I have looked at a thousand
      times. We were allocating space for a pointer to a struct instead of for
      the struct itself, so when we wrote to the second word of the struct, we
      were off in the weeds somewhere.
      17528b83
  28. 02 Feb, 2012 1 commit
  29. 30 Jan, 2012 1 commit
  30. 19 Jan, 2012 1 commit
    • Leigh B Stoller's avatar
      Deprecate the use of jailip in the nodes table, for local dynamic · 1a52760a
      Leigh B Stoller authored
      virtual nodes. We now create an interfaces table entry so that we do
      not special code to find the control network interface. This entry is
      delated along with the node entries when the experiment is swapped
      out.
      
      Of course, we still have existing nodes with jailip entries, so not
      much code was removed, but this saves me from having to add more
      special cases for XEN elabinelab, and at some point we can remove the
      deprecated code.
      1a52760a
  31. 13 Dec, 2011 1 commit
  32. 15 Nov, 2011 1 commit
    • Mike Hibler's avatar
      Further overhaul of firewall code. NOTE: required bump of tmcd version to 34. · 6a26b246
      Mike Hibler authored
      Firewalls now work with nodes which require a subboss. Had to introduce new
      firewall rules which skipped around the checks that no packets to/from
      node control net IPs should pass through the firewall, if the IP in question
      belongs to a subboss (since subboss is on the node control network). It
      actually checks for all Emulab servers (boss, ops, fs or any subboss),
      so the code should work for an Emulab install which has a non-segmented
      control network in which all servers were in the same subnet as the nodes.
      
      In addition to the new rules, we also had to pass in additional information
      via "tmcc firewallinfo" giving the IP/MAC of those server nodes that are on
      the node control network. We use this to establish ARP entries on the
      inside network so that nodes can find the servers. Since the existing
      client-side firewall code in libsetup.pm would blow up if it got a line
      that it didn't recognize, I had to bump the tmcd version number and add
      some conditional code to tmcd.c:dofwinfo() to not return the extra info for
      old versions.
      
      Added a couple of new firewall variables EMULAB_BOSSES and EMULAB_SERVERS
      that are used in the new rules. Fixed the support scripts in firewall/
      to properly initialize these variables.
      
      IMPORTANT: tmcd looks up boss, ops, fs, and subbosses in the interfaces
      table to find their IPs and MAC addresses. By default, we do not create
      such interface table entries for boss/ops/fs. We have them at Utah for
      other reasons. These entries are only needed if you have a non-segmented
      control network (or a subboss) and you want to firewall such nodes.
      The script to initialize the firewall variables (initfwvars.pl) will
      print out a warning for configurations that are affected and don't have
      the entries.
      6a26b246
  33. 30 Aug, 2011 1 commit
  34. 16 Aug, 2011 1 commit
  35. 10 Aug, 2011 1 commit