This repository provides a collection of example notebooks and scripts to help users get started with the FABRIC testbed. These recipes cover various experiment configurations, network services, and monitoring tools that can be deployed across distributed sites.
We have added a new notebook demonstrating how to deploy and run perfSONAR-based network measurements between two FABRIC VMs:
-
perfsonar-within-fabric.ipynb
- Deploys a shore-side VM with the perfSONAR Toolkit and Result Archiver.
- Deploys a ship-side VM (emulated in FABRIC) with a Docker-based perfSONAR testpoint.
- Automates periodic network tests (throughput, RTT, latency, trace).
- Stores results locally and remotely for visualization.
- Optionally deploys an NMEA 0183 navigation data listener for correlating network performance with vessel motion (GPS position, heading, roll/pitch/heave).
- Includes validation scripts for automated deployment verification (
validate_deployment.sh,validate_cross.sh,validate_nmea.sh). - Compatible with FABRIC resources or other environments.
This notebook is particularly useful for mobile edge simulations (e.g., ship-to-shore), but can also be generalized for any network performance experiment between FABRIC sites.
-
perfsonar-psconfig.ipynb
- Deploys a central VM with perfSONAR Testpoint, perfSONAR Archive and perfSONAR Grafana.
- Deploys one or more Remote VM with perfSONAR Testpoint, perfSONAR Archive and perfSONAR Grafana.
- Configures Hosts on the Central VM via psConfig.
- Configures Hosts, Tests, Schedulues, Tasks on Remote VMs.
- All tests are archived locally on each Remote VM and optionally on the Central VM.
-
perfsonar-psconfig-fabnetv4ext.ipynb
- Similar to the pSConfig notebook, but connects VMs via FabNetv4Ext for public Internet access.
- Provides site-routable IPv4 addresses
- Allows direct access to Toolkit UIs, Grafana, and archives from outside FABRIC
- Supports forward/reverse tests, multi-stream throughput, and slip-randomized schedules
- Best for experiments needing external visibility and off-platform validation.
This notebook demonstrates two methods for enabling communication between nodes across different subnets within a FABRIC topology:
-
Dynamic Tunneling with
sshuttleA quick solution usingsshuttleto forward TCP traffic over SSH without explicit routing configuration. It is helpful for debugging or for temporary access where protocol flexibility is not a concern. -
Static Routing with IP Forwarding A realistic approach that sets up one or more intermediate nodes as routers using
ip routecommands. This supports all traffic types (TCP, UDP, ICMP) and offers complete visibility and control over the routing path.
Use Cases:
- Multi-subnet experiments requiring end-to-end connectivity
- Debugging topology-level communication issues
- Setting up testbed environments that emulate real-world routed networks
- Clone this repository.
- Follow instructions in each notebook to provision resources and run experiments.
- Make sure you have access to FABRIC. Sign up at FABRIC Portal.
- Contact the maintainer to be added to a project for access.
MIT License
For questions, feel free to open an issue or reach out to the repository kthare10@email.unc.edu.