-
Notifications
You must be signed in to change notification settings - Fork 84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
support for topology datasets #181
base: development
Are you sure you want to change the base?
Conversation
@amdfxlucas , |
no, but the changes are in coordination with @martenwallewein |
@amdfxlucas , While we are open to discussions about adding new code, if significant modifications to the existing codebase are necessary, it would require a more in-depth discussion. The proposed addition of the brnode type doesn't seem to be essential for the current SEED internet emulator. If it's required for the SCION service, we would appreciate alternative suggestions that minimize changes to the existing core code. Thank you. |
I chose to distinguish the kind of routers into border-routers and intra-domain-routers , |
@amdfxlucas , For instance, it seems that there were significant changes in the existing code when the We have two suggestions on this issue. Those suggestions aim to minimize alterations to the existing codes.
Moreover, at present, it appears that the changes due to introducing the Could you also consider moving the AutonomousSystem::makeBorderRouter method to the ScionAutonomousSystem Class method? Furthermore, though minor, it’s worth noting that the term
|
@kevin-w-du Appologies for my oversight, how about 'brdrouter' for border-routers ? With the change to IntFlag for NodeRole I wanted to correspond to the circumstance that one node might have more than one role. However with normal 'Enum' the Node::getRole() would only report a single NodeRole ('Router') that it got assigned during its construction (in AutonomousSystem::createRouter() ), This I found unintuitive and somewhat violating the law of least surprise. Do you suggest to create a sub-class 'BorderRouter' of 'Router(Node)' which returns 'NodeRole.BorderRouter' from its getRole() method The AutonomousSystem::makeBorderRouter() you mentioned is not specific to SCION, I just haven't touched all the EBGP examples. Another option would be to do the graft of routers to border routers automatically in Node::configure() if they happen to join an IX network or cross connect. Node::configure is called by AutonomousSystem::configure which in turn is called by the Base layer's configure, In this approach the makeBorderRouter() method is obsolete. |
@amdfxlucas
And for the Appreciated for your suggestions and contributions. Please let us know if you have any suggestions or doubts. |
not all routers within an AS are border routers, and hence need not all the software installed
now that there is a distinction between brnodes and rnodes
@wonkr @kevin-w-du done ! :) please check again.. Could you please also comment on this |
Intra domain topologies for ASes
Formats
Three ASes mutually connected by IXPs
See examples/scion/S06-intra-domain-topo/three_core_as_with_topo.py
internal topology of each of the AS in the above image
endhosts in read, routers in green
DefaultScionGenerator, CaidaDataProvider, ScionTopoJsonProvider
DefaultScionGenerator
Given a DataProvider it generates a SCION AS from it
CaidaDataProvider
It can read CAIDA internet datasets of ASes and their interconnections. See examples/scion/S06-intra-domain-topo/caida_topo.py
ScionTopoJsonProvider
A data source for the topology generator that reads topology.json files from real SCION deployments. Can be used to run virtual experiments with your configuration without jeopardising the physical deployment.
See examples/scion/S06-intra-domain-topo/scion_topo.py