1. 25 Sep, 2018 1 commit
  2. 11 Sep, 2018 1 commit
  3. 05 Sep, 2018 1 commit
  4. 17 May, 2018 1 commit
  5. 02 Nov, 2017 1 commit
  6. 10 Nov, 2016 1 commit
    • David Johnson's avatar
      Fix two bugs in skb processing in Linux ipod module. · 0e3d8b99
      David Johnson authored
      One was minor (not rolling the ip optional field length into
      pskb_may_pull check).  The second was not minor; we weren't
      appropriately calling pskb_may_pull to check if the iph + icmph + ipod secret
      was in a linear buf... and then we finally ran across a driver for which
      the ipod secret did not fully fit in the first skb buffer chunk... so
      linearization was actually necessary.
      
      Another way that has been suggested to fix the potential bugs that arise
      from linearization, the use of skb_header_pointer, isn't the most
      desireable option in this case, since it costs more stack memory *for
      each* input ICMP packet (and nearly 100% of the time, it's not an ipod
      and we don't care).
      0e3d8b99
  7. 12 Jul, 2016 1 commit
    • David Johnson's avatar
      Update the Linux ipod module to compat with at least kernel 4.4.x . · f214a3ec
      David Johnson authored
      There were changes to the netfilter hook API in 4.1 and 4.4 to account
      for, but those were simple.  No hook params we rely on changed.
      
      There was a minor change to the proc handler table conventions back in
      2.6.33, but that wasn't a deal-breaker.  Anyway, "fixed".
      
      Much more bizarre was an apparent proc_dointvec change.  Since some
      kernel between Ubuntu 3.13 and Ubuntu 4.2, proc_dointvec's behavior
      changed (well, *something* changed!).  Some of our ipod sysctls
      ("icmp_ipod_host" and "icmp_ipod_mask") are uint32ts, but we have been
      using proc_dointvec to parse the values sent in from sysctl, probably
      forever.  So of course we regularly have to send in large negative
      values (i.e. 155.98.32.70, aka 0x9b622046, aka -1688068026).  At 3.13,
      proc_dointvec was happy to parse the hex version of that.  At 4.2, it is
      not happy to parse the hex, but it will parse decimal.  Well, we don't
      supply decimal in rc.ipod, just hex, and I don't want to fix it there.
      So I switched those two sysctl's proc handlers to proc_dointvec_minmax,
      specify INT_MIN and INT_MAX as my min/max values, and that works like a
      charm.  Very odd that this would change.  Of course these should just
      use an unsigned proc handler, like proc_doulongvec, but I don't want to
      break the fact that you used to be able to send in negative decimal
      integers and have things work (an oft-used feature, no doubt, in some
      parallel universe!).
      
      This is tested and working back to UBUNTU12-64-STD.  It should be fine
      going further back, as far back as 2.4.x, but I can't easily test there.
      f214a3ec
  8. 12 May, 2015 1 commit
  9. 17 Sep, 2014 1 commit
  10. 09 Apr, 2013 1 commit
    • David Johnson's avatar
      Add a Linux kernel module for ipod. · 9436dfb0
      David Johnson authored
      Rather than have to patch the kernel's network stack at build time
      to catch ipod ICMP packets in the normal processing path, make it
      a loadable module that dynamically registers a netfilter hook to
      check ICMP packets for ipod info.  This way, we don't require
      custom-built kernels anymore to get ipod support.
      
      The only drawback to making it a module is that we now have to
      call emergency_restart() instead of machine_restart().  For x86
      kernels, this basically means that we don't do *any* niceties on
      shutdown.  For instance, even machine_restart() shuts down lapics
      and the iommu and deals with processors.  We can't call
      machine_restart because it's not exported as a symbol that modules
      can be linked with at load time.  kernel_restart() does way too
      much stuff that could block the reboot if things are in a bad state.
      
      Frankly, after looking at the difference between machine_restart
      and emergency_restart for the x86, we don't care.
      
      To build this module, all you should have to do, say, on Fedora, is
      
        $ yum install kernel-devel kernel-headers
        $ cd <moduledir>
        $ make && sudo make install
          (as long as you're running the kernel you're building for)
      9436dfb0
  11. 27 Feb, 2013 1 commit
  12. 25 Feb, 2013 1 commit
    • Mike Hibler's avatar
      Add SendApod() method to Node object, change apod command to use it. · 6d8c7463
      Mike Hibler authored
      This will enable stated to call it directly and avoid a level of fork/exec.
      Also, add "-h <hash>" command line option to ipod command to avoid perl
      needing to invoke a shell during system(). And clean up ipod/apod makefile,
      don't need to install apod setuid since ipod is already.
      6d8c7463
  13. 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
  14. 30 Apr, 2012 1 commit
    • Mike Hibler's avatar
      First cut at FreeBSD 9.0 support. · 1f83c9c6
      Mike Hibler authored
      Upgrade to perl 5.12 means no more "suidperl" (setuid perl scripts).
      So we now have yet another little wrapper (security/runsuid.c) which
      runs suid and whose sole function is to exec the perl script of the
      same name in the /usr/testbed/suidbin directory. So a formerly setuid
      perl script install now goes like:
        create /usr/testbed/sbin/mkproj as a symlink to /usr/testbed/libexec/runsuid
        install real mkproj perl script in /usr/testbed/suidbin/mkproj
      When the setuid-wrapper is invoked under the name "mkproj" it execs
      /usr/testbed/suidbin/mkproj. We could almost use sudo for this purpose
      instead (see security/sudoers.in) but sudo loses one of the groups in
      the group list.
      
      /usr/include/utmp.h is gone in FreeBSD 9.0. In most places we nevered
      needed it, but in the one case that did (tg source), it just used a
      couple of the constants exposed (UT_*) and not the struct, so I just
      hardwired values for the constants.
      
      The usual tweakage to the install stuff to reflect yet another set of
      packages!
      1f83c9c6
  15. 15 Aug, 2011 1 commit
  16. 02 Dec, 2010 1 commit
  17. 26 Nov, 2010 1 commit
  18. 05 Oct, 2010 1 commit
  19. 13 Feb, 2009 1 commit
  20. 29 Aug, 2008 1 commit
  21. 13 Jun, 2008 1 commit
  22. 16 Feb, 2008 1 commit
  23. 16 May, 2007 3 commits
  24. 19 Apr, 2007 1 commit
  25. 25 Oct, 2006 1 commit
    • Leigh Stoller's avatar
      Makefile Whacking! Try to deal with the problem caused by the delay · 7590f9c5
      Leigh Stoller authored
      between when something is installed and when post-install runs. Short
      of a global lock (which we probably need anyway someday), my solution
      is this. In your makefiles, add these variables before the line that
      has the include of $(TESTBED_SRCDIR)/GNUmakerules:
      
      	SETUID_BIN_SCRIPTS   =
      	SETUID_SBIN_SCRIPTS  =
      
      I have added three new rules to GNUmakerules that look like this:
      
      	$(addprefix $(SBINDIR)/, $(SETUID_SBIN_SCRIPTS)): $(SBINDIR)/%: %
      		echo "Installing (setuid) $<"
      		-mkdir -p $(INSTALL_SBINDIR)
      		$(SUDO) $(INSTALL) -o root -m 4755 $< $@
      
      Yep, your eyes ain't lying to you; use sudo to run the target so that
      install does the right thing (which is that the old file is not
      replaced until the new one has the proper attributes on it).
      
      Note that post-install is still needed for the initial install, but
      should no longer be needed for day to day installs since all that other
      stuff post-install does is mkdir/chmod on directories.
      7590f9c5
  26. 11 Nov, 2005 3 commits
  27. 12 Jul, 2005 1 commit
  28. 22 Jun, 2005 1 commit
    • Kevin Atkinson's avatar
      · 3eac2df6
      Kevin Atkinson authored
      Added ipod patch for Linux 2.6
      3eac2df6
  29. 15 Nov, 2004 1 commit
  30. 20 Jul, 2004 1 commit
  31. 19 Dec, 2002 3 commits
  32. 14 Aug, 2002 2 commits
  33. 04 Jul, 2002 1 commit