AWANTA (Adaptive Software-Defined Wide Area Network framework for Telehealth Access) performs inter-domain network transfers for telehealth, in a network latency-aware manner.
graph TD
subgraph Edge_Node ["Edge Node (Client)"]
MC[Measurements Client]
CR[Cloud Router]
EM[Event Manager]
end
subgraph Infrastructure ["Cloud Infrastructure"]
AMQ[ActiveMQ Broker]
end
subgraph Control_Plane ["SD-WAN Controller"]
SC[Ryu Controller]
ETM[Event Trace Manager]
end
subgraph Analytics ["Analytics & Visualization"]
GF[Goldfish]
end
RA[RIPE Atlas] -- "Network Metrics" --> MC
RA -- "Historical Data" --> GF
MC -- "Performance Data" --> CR
MC -- "State Updates" --> EM
EM -- "STOMP Events" --> AMQ
AMQ -- "Real-time Telemetry" --> ETM
ETM -- "Network State" --> SC
SC -- "Flow Rules" --> Edge_Node
click GF "https://github.com/KathiraveluLab/Goldfish" "Goldfish Repository"
The Measurements Client is based on RIPE Atlas and RIPE Atlas Tools.
1. System Dependencies
The Mininet emulator relies on OS-level networking binaries (like mnexec). Before setting up the python environment, install Mininet on your host machine. For Debian/Ubuntu:
sudo apt update
sudo apt install mininet2. Python Environment
To set up the full AWANTA Python environment (which includes dependencies for the emulator, controller, and measurements client), we recommend using a virtual environment and executing the provided setup script. The script automatically handles tricky dependencies for the SDN controller on modern Python versions:
python3 -m venv .venv
source .venv/bin/activate
./setup_env.shTo use the measurements client, you always need to configure your API key. (Note: The tools are already installed if you ran the full setup above).
ripe-atlas configure --set authorisation.create=<YOUR_API_KEY>Note: This command saves your API key securely to ~/.config/ripe-atlas-tools/rc.
If you only want to run the measurements client on a machine without the rest of the AWANTA components, you can install just those tools:
- Install the tools:
pip install ripe-atlas-tools - Configure your API key:
ripe-atlas configure --set authorisation.create=<YOUR_API_KEY>
The MeasurementsClient.py will then automatically use that configuration to execute measurements.
A decentralized cloud router in all the client nodes.
Propagates the changes in measurements as events to a broker.
The Software-Defined Wide Area Network (SD-WAN) Controller builds on top of Ryu.
AWANTA can be run using the provided Mininet emulation environment and the Ryu SDN controller. A complete execution involves running both the topology and the controller.
For detailed instructions and prerequisites, please refer to the Emulator README.
First, ensure your virtual environment is set up and all requirements are installed.
-
Start the Mininet Emulator: Run the topology script with sudo privileges to instantiate the network. Since
sudoresets the path, use the virtual environment's Python executable directly:sudo .venv/bin/python modules/emulator/run_topology.py -topo full_mesh_topology
-
Start the Ryu Controller: In a separate terminal, activate the virtual environment and launch the Ryu controller to handle the flow rules and network routing based on the latency data.
source .venv/bin/activate ryu-manager --observe-links modules/emulator/controller.py
If you use AWANTA in your research, please cite the below paper:
-
Caballero, E. S., Ramirez, J., Alisetti, S. V., Almario, S., and Kathiravelu, P. Network Measurements for Telehealth Optimizations. Understanding Internet Paths in Remote Regions. In Cluster Computing – The Journal of Networks Software Tools and Applications (CLUSTER). June 2025, Volume 28, Issue 6, Springer. https://doi.org/10.1007/s10586-024-05069-z
-
Kathiravelu, P., Bhimireddy, A., and Gichoya, J. Network Measurements and Optimizations for Telehealth in Internet's Remote Regions. In the Tenth IEEE International Conference on Software Defined Systems (SDS-2023). pp. 39-46, October 2023. https://doi.org/10.1109/SDS59856.2023.10329044.