-*- 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