1. 11 Dec, 2018 1 commit
    • Leigh B Stoller's avatar
      Changes for building/installing capture/console on control nodes: · fabd07a7
      Leigh B Stoller authored
      * Makefile changes to build and install nossl versions of capture and
        console on a rack control node (or more generally, a physical node
        hosting boss/ops VMs that are not built on our XEN49 image).
      
      * Add -I (insecure) option to capture, that listens on localhost only.
      
      * Add systemd startup files for capture on ops and boss, I tested these
        on Ubuntu18.
      
      Basic instructions:
      
      * Clone the emulab-devel repo to the control node.
      
        git clone https://gitlab.flux.utah.edu/emulab/emulab-devel.git
      
      * On the control node, install the libssl devel code:
      
        sudo apt-get update
        sudo apt-get install libssl-dev
      
      * configure and build capture. Note that the obj-clientside directory might
        already exist, you can just rm -rf the directory.
      
        control> cd ~elabman
        control> mkdir obj-clientside
        control> cd obj-clientside
        control> /path/to/emulab-devel/clientside/configure
        control> make rack-control
        control> sudo make rack-control-install
        control> (cd os/capture; sudo make rack-control-startup-install)
      
      * start capture.
      
        control> sudo systemctl daemon-reload
        control> sudo systemctl start capture-boss
        control> sudo systemctl start capture-ops
      fabd07a7
  2. 30 Mar, 2018 1 commit
    • Mike Hibler's avatar
      Support for frisbee direct image upload to fs node. · 99943a19
      Mike Hibler authored
      We have had issues with uploading images to boss where they are then written
      across NFS to ops. That seems to be a network hop too far on CloudLab Utah
      where we have a 10Gb control network. We get occasional transcient timeouts
      from somewhere in the TCP code. With the convoluted path through real and
      virtual NICs, some with offloading, some without, packets wind up getting
      out of order and someone gets far enough behind to cause problems.
      
      So we work around it.
      
      If IMAGEUPLOADTOFS is defined in the defs-* file, we will run a frisbee
      master server on the fs (ops) node and the image creation path directs the
      nodes to use that server. There is a new hack configuration for the master
      server "upload-only" which is extremely specific to ops: it validates the
      upload with the boss master server and, if allowed, fires up an upload
      server for the client to talk to. The image will thus be directly uploaded
      to the local (ZFS) /proj or /groups filesystems on ops. This seems to be
      enough to get around the problem.
      
      Note that we could allow this master server to serve downloads as well to
      avoid the analogous problem in that direction, but this to date has not
      been a problem.
      
      NOTE: the ops node must be in the nodes table in the DB or else boss will
      not validate proxied requests from it. The standard install procedure is
      supposed to add ops, but we have a couple of clusters where it is not in
      the table!
      99943a19
  3. 21 May, 2015 1 commit
  4. 07 Aug, 2014 1 commit
  5. 31 Jul, 2014 2 commits
  6. 11 Jul, 2014 1 commit
  7. 29 May, 2014 1 commit
    • Mike Hibler's avatar
      Tweaks to "program mode" (aka, IPMI mode). · 94194030
      Mike Hibler authored
      Add code to avoid the respawn loops that Leigh so presciently predicted.
      Change the logging path to /usr/testbed/log/tiplogs so we don't have to
      keep putting in the /var/log/tiplogs symlink.
      94194030
  8. 03 Jan, 2014 1 commit
  9. 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
  10. 23 May, 2012 1 commit
    • Mike Hibler's avatar
      Add support for remote telnet-based console servers. · 32c159b3
      Mike Hibler authored
      We already supported "remote mode" (-m) which told capture that the
      device command line argument was of the form "host:port". Extended that
      to "host:port,protocol" where protocol can be "raw" (aka, the current
      remote mode) or "telnet". Telnet support is provided through the libtelnet
      library (http://github.com/elanthis/libtelnet) which I created a FreeBSD
      port for in install/ports. Most of the work was just breaking out some
      code in the monster select loop.
      
      Only tested on the Linux Networx "icebox" and only very lightly. The set
      of telnet want/won't/do/don't options may not be correct, but it seems to
      work.
      
      Also cleaned up some lint.
      32c159b3
  11. 27 Jul, 2011 1 commit
  12. 07 Mar, 2008 1 commit
  13. 25 May, 2007 1 commit
  14. 08 May, 2007 1 commit
  15. 06 Dec, 2006 1 commit
  16. 20 Jun, 2006 1 commit
  17. 27 Apr, 2006 1 commit
  18. 27 Dec, 2005 1 commit
  19. 09 May, 2005 1 commit
  20. 04 Apr, 2005 1 commit
    • Timothy Stack's avatar
      · 463ee6b1
      Timothy Stack authored
      Mote and robot related stuff.  The main thing is the addition of relay
      capabilities to capture and related things.
      
      	* GNUmakefile.in: Add the capture and tip subdirectories to the
      	client and client-install targets.
      
      	* configure, configure.in, config.h.in: Detect srandomdev() for
      	capture and add "mote/newmote" script.
      
      	* capture/GNUmakefile.in, capture/capture.c: Add "relay"
      	capabilities to capture.
      
      	* capture/capquery.c: Query the capserver for the relay receiver's
      	port number.
      
      	* capture/capserver.c: Small hack to return the port number
              for a node.
      
      	* db/libdb.pm.in, db/xmlconvert.in: Add virt_tiptunnels table.
      
      	* event/program-agent/program-agent.c: Change log file names to
      	something a little more user-friendly.  Add a "MODIFY" event
      	handler that lets the user set agent attributes (command, tag,
      	timeout) without having to run a program.
      
      	* event/sched/GNUmakefile.in, event/sched/console-agent.cc,
      	event/sched/console-agent.h, event/sched/event-sched.c: Add
      	console agents that can be used to snapshot a section of the
      	capture log file.
      
      	* event/sched/node-agent.cc: Some minor cleanup.
      
      	* event/sched/simulator-agent.cc, event/sched/simulator-agent.h:
      	Add the config data to the report mail.  Add a "RESET" event
      	handler that runs "loghole clean".  Save the report mail in a file
      	so it gets archived with the rest of the logs.
      
      	* lib/libtb/tbdefs.h: Add CONSOLE object type.
      
      	* mote/GNUmakefile.in, mote/newmote: Add newmote script, just a
      	quick hack to add motes to the DB.
      
      	* mote/tbuisp.in: Add another backend for loading motes through
      	their relay capture server.
      
      	* robots/mtp/mtp_dump.c: Dump the min/max values for x and y,
      	handy for figuring out the bounds of the camera.
      
      	* sql/database-fill.sql: Change the RELOAD-MOTE/SHUTDOWN ->
      	ALWAYSUP/SHUTDOWN mode transition to ALWAYSUP/ISUP since stated
      	doesn't seem to run triggers after a state change by a mode
      	transition.
      
      	* tbsetup/tbreport.in: Change the ordering of the eventlist so it
      	displays event-sequences appropriately.
      
      	* tbsetup/ns2ir/GNUmakefile.in, tbsetup/ns2ir/console.tcl,
      	tbsetup/ns2ir/node.tcl, tbsetup/ns2ir/parse.tcl.in,
      	tbsetup/ns2ir/sim.tcl.in: Add a "console" agent that represents
      	the serial console for a node.
      
      	* tbsetup/ns2ir/sequence.tcl: Add an "append" method so it is
      	easier to build sequences dynamically.
      
      	* tbsetup/ns2ir/topography.tcl: Make checkdest available to
      	regular users.
      
      	* tip/GNUmakefile.in, tip/tiptunnel.c: Add support for uploading a
      	file to a relay version of capture and exporting the end
      	connection as a pty.
      
      	* tmcd/decls.h, tmcd/common/libsetup.pm: Bump version number since
      	the dosubnodelist change is not backwards compatible.
      
      	* tmcd/tmcd.c: Make dosubnodelist and dosubconfig callable even
      	when a node isn't allocated.  Add dotiptunnels command that
      	returns which serial consoles are to be mounted on a node.  Add
      	mote version of subconfig that returns information needed to
      	startup the relay version of capture.
      
      	* tmcd/common/bootsubnodes: For motes, startup the relay version
      	of capture (XXX stargate specific).
      
      	* tmcd/common/libsetup.pm, tmcd/common/libtmcc.pm,
      	tmcd/common/config/rc.config, tmcd/common/config/rc.tiptunnels:
      	Client side changes for mounting another nodes serial line.
      
      	* tmcd/common/rc.bootsetup: Always boot the subnodes, even when
      	free.  This is used for motes since their capture needs to be up
      	for reloading at the time.
      
      	* tmcd/linux/ixpboot: Shuffle some code around so the script
      	doesn't fail if the ixp isn't allocated.
      
      	* utils/loghole.in: Add "digest.out" and "report.mail" as global
      	logs to be saved in archives and display the "report.mail" file
      	when showing a loghole archive.
      
      	* xmlrpc/emulabserver.py.in: Scrub more of the return values to
      	get rid of "None"s.
      463ee6b1
  21. 29 Nov, 2004 1 commit
  22. 15 Oct, 2003 1 commit
    • Mike Hibler's avatar
      Uniform syslog'ing. Change everything I could find to use a syslog facility · cc6d6fa7
      Mike Hibler authored
      as defined in the defs-* file (e.g. "TBLOGFACIL=local2").  The default is
      "local5" which is what we are setup to use so you shouldn't need to mess
      with your defs- file!
      
      perl scripts just get this value configured in when configure is run.
      C programs get the value in two ways.  For programs that are intimate with
      the testbed infrastructure, and include "config.h", they just get it from
      that file.  For programs that we sometimes use outside the Emulab build
      environment (e.g., frisbee, capture) and that don't include config.h,
      the value is set via a "-DLOG_TESTBED=..." in the GNUmakefile build line.
      If the value isn't set, it defaults to what it used to be (usually LOG_USER).
      
      Still to do: healthd, hmcd (whose build doesn't seem to be completely
      integrated) and plabdaemon.in (since its icky python :-)
      cc6d6fa7
  23. 10 Sep, 2002 1 commit
  24. 10 Jul, 2002 1 commit
  25. 04 Jul, 2002 1 commit
  26. 06 Apr, 2002 1 commit
    • Chad Barb's avatar
      Added SSL to capture (enabled with -DWITHSSL) · 2e536ba3
      Chad Barb authored
      To tip (or tiptunnel on a normal acl,) capture behaves the same.
      However, if a client connects and presents "USESSL" as the first six characters of their
      connection key, both sides initiate SSL negotiation.
      The server then attempts to get the key again. The second one is used for the check.
      
      SSL initialization is done on the first attempt by a client to connect via SSL.
      Capture assumes $(prefix)/etc/capture/cert.pem contains its certificate unless
      the '-c <certfile>' option is used.. if the certificate is not found or invalid, that
      connection fails, but normal connections will still succeed (and it will try to find the file
      again, next time an SSL connection is attempted.)
      
      On the client side, tiptunnel only uses ssl if there is a "ssl-server-cert:"
      property in the acl file. This is the SHA hash of the certificate that the capture server is
      expected to have (in hex.) If the certificate presented by the server does not hash to the
      same value, the connection is dropped.
      2e536ba3
  27. 11 Feb, 2002 1 commit
  28. 09 Jan, 2002 2 commits
  29. 16 Aug, 2001 1 commit
  30. 13 Aug, 2001 1 commit
  31. 09 Aug, 2001 1 commit
  32. 24 Jul, 2001 1 commit
    • Leigh B. Stoller's avatar
      Checkpoint new version of capture/tip that is sockets based instead · 34499cb6
      Leigh B. Stoller authored
      of pty/tty based (since they have several annoying problems
      associated). Note that permission is granted via the use of an "acl"
      file; /dev/tip/machine.acl, which must be set to the group of the
      project the node is in, so the user can read out the process id number
      and the random bits that are used by capture to grant permission to
      use (tip sends the random bits across first thing). This handshake is
      due to change to a request/challenge scheme as described by Dave in
      email to the testbed list.
      34499cb6
  33. 26 Jun, 2001 2 commits
  34. 05 Jan, 2001 1 commit
  35. 04 Jan, 2001 1 commit
  36. 02 Jan, 2001 2 commits