Based on FABRIC testbed artifact https://artifacts.fabric-testbed.net/artifacts/168c6c33-8c86-49af-ae06-d12fbff4a413
A Kiso experiment that tests bandwidth between two nodes on two different sites. The experiment runs iperf3 server on one node and the iperf3 client on the other node.
System requirements:
- Python 3.9+
- a FABRIC testbed account (for remote provisioning)
Install Kiso:
pip install kiso[fabric]1. Add credentials
Place any required credentials in the secrets/ directory. See Credentials for details.
2. Provision infrastructure
kiso up3. Run the agent
kiso run
# Check the output
cat iperf3-server.log
cat iperf3-client.log4. Tear down
kiso downOutputs defined in the experiment configuration are written to the path specified in that config.
- Create a FABRIC portal account and finish the enrollment flow.
- Have an active FABRIC project allocation — create a new project or join an existing one
- SSH keys generated and configured — required for Kiso to connect to provisioned nodes over SSH
- A FABRIC API token generated — required for the RC file
- Create a FABRIC RC file (used as
rc_filein the config)export FABRIC_BASTION_HOST=bastion.fabric-testbed.net export FABRIC_PROJECT_ID=<fabric-project-id> export FABRIC_BASTION_USERNAME=<fabric-bastion-username> export FABRIC_BASTION_KEY_LOCATION=<path-to-fabric-bastion-key> export FABRIC_SLICE_PRIVATE_KEY_FILE=<path-to-fabric-sliver-key> export FABRIC_SLICE_PUBLIC_KEY_FILE=<path-to-fabric-bastion-public-key> export FABRIC_LOG_LEVEL=INFO export FABRIC_LOG_FILE=/tmp/fablib/fablib.log export FABRIC_TOKEN_LOCATION=<path-to-fabric-token>
- EnOSlib — Python library for reproducible distributed systems experiments, used internally by Kiso for resource management.
- FABRIC Testbed — NSF-funded programmable research infrastructure for large-scale networking and systems experiments.
Kiso is funded by the National Science Foundation (NSF) under award 2403051.
Apache 2.0 © Pegasus ISI