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:
seed does not support IPv6. because of this the seed file generation only works for Topologies that have no UDP/IPv6 underlay networks.
The IPv6 check can be skipped by setting the --features SeedSkipIPv6Check argument. If this is done the topology tool will treat IPv6 underlay networks as if they were IPv4 networks
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
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, agen/scion-seed.py
file will be created that specifies the emulation. On top of that agen/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 thetopology/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
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