sbunrg/bgp_sim
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Build & Run: The make file included uses xbuild on mac to compile the Release version of the project -- Call make in the root dir to compile everything -- Navigate to TestingApplication/bin/Release -- using mono on mac run TestingApplication.exe -- Type help for list of available commands -- To get started input a topology (input Cyclops_caida.txt) (topology file included in same folder) -- Build a destination tree e.g for AS7018 (destination 7018) -- Query path from src(AS1) to dst(AS7018) (getpath 1 7018) Sample run sequence: Haseebs-MacBook-Air:Release haseebniaz$ mono TestingApplication.exe Welcome to the testing interface: (type help for help) 66000 input Cyclops_caida.txt >>read in the graph it has 41266 nodes and 293736 edges P2P: 132262 C2P: 161474 >>destination 7018 >>initializing variables and running RTA done initializing. Current active destination is: 7018 initialized and added 7018 Tree generation took (ms): 260 >>getpath 1 7018 >>Path from 1 to 7018 is 1 -> 10753 -> 3549 -- 7018 Getting Started: Ideally to get to know the code, one should start with the following files: bgp_sim/TestingApplication/TestingClass.cs Contains all the functions that can be called through the interface. Before anything can be done, a topology has to be loaded. The initGraph() function does that. This network graph will be used to create a routing tree for a given destination. The initDestination function shows how a tree is generated for a given destination. A Destination object is created. All data structures mentioned in the quicksand paper (Bucket Table etc.) are stored in this class. Functions to query these data structures are also available. bgp_sim/SecureSimulator/Destination.cs Contains functions and variables to store data for a given destinations routing tree. All path related functions are here. bgp_sim/SecureSimulator/BFS.cs Contains code that generates the routing tree and fills other data structures. Ideally this code should be left as is. Fiddling with this usually causes cascaded errors and breaks the simulator. Any changes to this code should be well thought out.