Using the DETER federation tools Setup You will need your own copy of the configuration files and scripts that are exported to remote federated testbeds. This file is available from http://www.isi.edu/~faber/tmp/federation.tgz The contents of this file are: federation/HOWTO This file federation/fed-tun.pl Tunnel establishment script federation/federate.sh Client testbed node init script federation/make_hosts Master testbed node init script federation/smbmount.pl Script to mount SMB filesystems on client nodes, called from federate.sh federation/splitter.conf.example Example splitter configuration file federation/splitter.pl Main federation script federation/testbeds.example Exmaple testbeds config file federation/testlan.tcl Example federated topology You'll also need acces to a tunneling image and a SMB-enabled image for clients. Currently these are FBSD61-TUNNEL2 and FBSD62-SMB on DETER in the emulab-ops project. Identical images are in DETER and Deter on Emulab and WAIL. Eventually federating testbeds will make those images available to users permitted to federate, but that policy is not in place. Configuration files There are two configuration files: testbeds The testbeds that can be federated and their parameters splitter.conf The per-experiment parameters (e.g. remote experiment name) These are documented in the pod documentation for splitter. You can view that by: $ pod2man testbed/federation/splitter.pl | groff -man -Tascii | more You should be able to use testbeds.example almost completely unchanged. You will need to change the User parameter to your username on the various testbeds. If you're not using the same projects on the various testbeds (DETER: emulab-ops, WAIL: Deter, Emulab: Deter) those will need to change as well. Otherwise the defaults should work for you. Similarly, the splitter.conf.example file is mostly usable. Change the experiment name to avoid collisions. (The split experiment will be instantiated using that experiment name on each federated testbed, so it could collide with others in use). Make sure the Testbeds parameter points to the testbeds file you created above and that the ScriptDir parameter points to the directory that you untarred federation.tgz into. Just for completeness change the SMBUser to your UID. The USERS share should work for you. It is the share that is exported to remote testbeds. Creating an experiment You have to run splitter on users.isi.deterlab.net. It depends on a modified experiment parser that is not widely available, but installed on users. To use the given experiment (testlan.tcl) you should be able to run splitter directly. I use something like: $ perl ./splitter.pl -v testlan.tcl You will be able to watch each testbed swap nodes in on the individual testbeds. To split an existing experiment across multiple testbeds, you need to use the command tb-set-node-testbed node "testbed" The node is the result of the [ $ns node ] command and the testbed is a string that matches an entry in your testbeds file. Note that DETER has only 2 connectors and any connection or LAN between nodes on different testbeds will use up a connector. Actually up to 2 connections can be multiplexed on a connector. Right now, to ensure cross testbed routing works and that the master testbed files are exported, use FBSD62-SMB as the image on clients. Let me know if you have questions. faber@isi.edu