This tool can be dissecated in multiple parts.
Filter Raw Topologies Dataset:
1 - Load topologys dataset with NetworkX.
2 - Remove topologys that can't be read by multiple factors.
3 - Remove topologys that are disconnected graphs.
Transform a Graph into a MST:
4 - Transform GML Files that represent a topology into a minimum spanning tree (MST).
You can choose what MST Algorithm you want avaible in networkx.
Extract Probe Matrix:
5 - Perform a DFS in extracted MST to simulate probes from different telemetry approaches.
You can choose the a fixed node sender or leave to algorithm decide the optimal node sender for all given topologies.
Fill the dataframe until there are no more unread topologies
6 - While algorithm is performing a DFS, the algorithm will extract a lot of usefull information about each topology and fill the dataframe.
Data Export:
7 - Export to output/Topology MPolKA-INT/MPINT probes to all topologys given in topologyZoo.
8 - Export to output/Data all usefull information collected into a csv.
9 - Export to output/Plots different plots to help us to understand the information collected.
You will need Python3 to run Polkalyzer, so try it:
python --version
If you haven't it, try install: https://www.python.org/downloads/
You also will need PIP dependencies:
pip install -r requirements.txt
First of all, run Polkalyzer.py
python Polkalyzer.py
or
python3 Polkalyzer.py
You can choose between three algorithm options, after chosen wait finish and check your output folder.
For Windows Users:
Check your Environment Variables to run pip on Terminal.
- Enviroment Variables:
Add to PATH:
C:\Users\YOUR_USERNAME\AppData\Local\Programs\Python\Python3XY
C:\Users\YOUR_USERNAME\AppData\Local\Programs\Python\Python3XY\Scripts
- New System Variable:
Name: PYTHONUTF8
Value: 1
Change YOUR_USERNAME to something like lucas
Change Python3XY to something like Python311
If you have used or benefited from Polkalyzer in any way, we kindly ask you to show your support by giving us a star ⭐ on GitHub. Your star is a valuable feedback for us, and it encourages us to continue improving the project.
We are committed to delivering the best experience possible, and your feedback plays a crucial role in achieving this goal. So, if you enjoyed Polkalyzer, we would greatly appreciate your support through a star on our GitHub repository.
Thank you for your interest and contribution to our project. Your support means a lot to us!
You're free to contribute refactoring and improving our code. Don't hesite to fork this repo.
How you can contribute:
- Refactoring our code
- Improving performance comparing hash of output/
- Building more utils for the Control Plane
- Lucas R. de Almeida | Email: contato@propi.dev | @propilideno
- Rodolfo S. Villaca | Email: rodolfo.villaca@ufes.br | @rodolfovillaca
- Calculate the probe path from a topo
-
Allowed to download topologys .gml from topologyZoo - Allowed to fill input/ with topologys
- Calculate overhead from MPINT Approach
- Calculate overhead from MPolKA-INT Approach
- Calculate overhead from Original INT Approach
- Filling dataframe with topologys information
- Allowing plotts
- Allowing draws from (Graph and MST)
- Allowed transform NetworkX Graphs into Mininet Topologys.
Topology Dataset - http://www.topology-zoo.org/dataset.html