-*- emacs-wiki -*-

umlXhost parameters

   The umlXtest function starts an arbitrary number of user mode line
   processes.

   The script invoked (testing/utils/Xhost-test.tcl) is a TCL [9]expect
   script that arranges to start each UML and configure it appropriately
   for the test. It then starts listening (using uml_netjig) to the
   simulated network answering ARPs and inserting packets as appropriate.

   umlXtest has a series of slots, each of which should be filled by a
   host. The list of slots is controlled by the variable, XHOST_LIST.
   This variable should be set to a space separated list of slots. The
   former umlplutotest is now implemented as a variation of the umlXhost
   test, with XHOST_LIST="EAST WEST".

   For each host slot that is defined, a series of variables should be
   filled in, defining what configuration scripts to use for that host.

   The following are used to control the console input and output to the
   system. Where the string ${host} is present, the host slot should be
   filled in. I.e. for the two host system with XHOST_LIST="EAST WEST",
   then the variables: EAST_INIT_SCRIPT and WEST_INIT_SCRIPT will exist.

   ${host}HOST
          The name of the UML host which will fill this slot

   ${host}_INIT_SCRIPT
          a file of commands that is fed into the virtual machine's
          console in single user mode prior to starting the tests. This
          file will usually set up any eroute's and SADB entries that are
          required for the test. Similar to INIT_SCRIPT, above.

   ${host}_RUN_SCRIPT
          a file of commands that is fed into the virtual machine's
          console in single user mode, before the packets are sent. This
          set of commands is run after all of the virtual machines are
          initialized. I.e. after EAST_INIT_SCRIPT AND WEST_INIT_SCRIPT.
          This script can therefore do things that require that all
          machines are properly configured.

   ${host}_RUN2_SCRIPT
          a file of commands that is fed into the virtual machine's
          console in single user mode, after the packets are sent. This
          set of commands is run before any of the virtual machines have
          been shut down. (I.e. before EAST_FINAL_SCRIPT AND
          WEST_FINAL_SCRIPT.) This script can therefore catch
          post-activity status reports.

   ${host}_FINAL_SCRIPT
          a file of commands that is fed into the virtual machine's
          console in single user mode after the final packet is sent.
          Similar to INIT_SCRIPT, above. If not specified, then the
          single command "halt" is sent. Note that when this script is
          run, the other virtual machines may already have been killed.
          If specified, then the script should end with a halt command to
          nicely shutdown the UML.

   REF_${host}_CONSOLE_OUTPUT
          Similar to REF_CONSOLE_OUTPUT, above.

   Some additional flags apply to all hosts:

   REF_CONSOLE_FIXUPS
          a list of scripts (found in klips/test/fixups) to apply to
          sanitize the console output of the machine under test. These
          are typically perl, awk or sed scripts that remove things in
          the kernel output that change each time the test is run and/or
          compiled.

   In addition to input to the console, the networks may have input fed
   to them:

   EAST_INPUT/WEST_INPUT
          a [10]pcap file to feed in on the private network side of each
          network. The "EAST" and "WEST" here refer to the networks, not
          the hosts.

   REF_PUB_FILTER
          a program that will filter the TCPDUMP output to do further
          processing. Defaults to "cat".

   REF_EAST_FILTER/REF_WEST_FILTER
          a program that will filter the TCPDUMP output to do further
          processing. Defaults to "cat".<

   TCPDUMPFLAGS
          a set of flags for the tcpdump used when converting captured
          output. Typical values will include "-n" to turn off DNS, and
          often "-E" to set the decryption key (tcpdump 3.7.1 and higher
          only) for ESP packets. The "-t" flag (turn off timestamps) is
          provided automatically

   REF_EAST_OUTPUT/REF_WEST_OUTPUT
          a text file containing tcpdump output. Packets on the private
          (eth0) interface are captured and compared after conversion by
          tcpdump, as with REF_PUB_OUTPUT.

          There are two additional environment variables that may be set
          on the command line:

        NETJIGVERBOSE=verbose export NETJIGVERBOSE
                If set, then the test output will be "chatty", and let
                you know what commands it is running, and as packets are
                sent. Without it set, the output is limited to
                success/failure messages.

        NETJIGTESTDEBUG=netjig export NETJIGTESTDEBUG
                This will enable debugging of the communication with
                uml_netjig, and turn on debugging in this utility. This
                does not imply NETJIGVERBOSE.

   HOSTTESTDEBUG=hosttest export HOSTTESTDEBUG
          This will show all interactions with the user-mode-linux
          consoles

