scionproto / scion

SCION Internet Architecture
https://scion.org
Apache License 2.0
381 stars 160 forks source link

add support to generate seed simulation file to scion topology tool #4508

Open Bruol opened 5 months ago

Bruol commented 5 months ago

Overview:

As part of my Bachelor Thesis on creating a SCION Traffic Simulator with Beacon Meta-data, I made some changes and additions to the scion topology tool in order to make it possible to generate a seed emulation of a topology given in .topo format.

To generate a seed emulation I added a -s argument to the topology tool. When this argument is given, a gen/scion-seed.py file will be created that specifies the emulation. On top of that a gen/seed-compiled folder will be created that contains the compiled seed emulation in the form of a docker-compose file.

On top of this I added support for an optional borderRouterProperties Section in the .topo files. Here one can specify border router properties such as geolocation and Note. Check out the topology/tiny_borderRouterProperties.topo, to see an example of this.

Limitations:

In order to generate a seed emulation for the tiny4.topo example the following command works:

./scion.sh topology -c topology/tiny4.topo -s

[!IMPORTANT] In order to generate a seed-emulation a modified version of seed is needed. At the moment I am waiting for these changes to be merged into the main seed-emulator repository. For this reason I also have not yet updated the dependencies in this repo as the main seed-emulator repository does not contain the neccessary changes yet. You can check on the progress of the Pull-Request here https://github.com/seed-labs/seed-emulator/pull/212

I tried to adhere to the general style of the topology tool when writing my code. But I am happy about any suggestions that would improve the code.

Disclaimer:

Parts of this Code were created with Github Copilot autocompletion enabled

Also Thanks to my two Supervisors François Wirz and Jordi Subirà Nieto who have given me guidance in this project

matzf commented 5 months ago

This change is Reviewable

amdfxlucas commented 5 months ago

cool ! we thought about something very similar at OvGu magdeburg as well for seed pr181