*What is the BGP*
The Border Gateway Protocol (BGP) is a protocol used to change routing information used on the internet.
Each node in the network communicates to all other nodes the cost of reaching some target node
The question we want to answer is whether or not, at some point in time, the nodes will stop communicating. For that we will implement said protocol in promela and use the spin model checker to verify the convergence of the network.
Because writing promela code for networks would be very tedious and prone to lots of hard to find bugs like exchanged array indexes etc. All the promela programs present in this repository were created by the python script bgp_generator.py
It shoul be used as follows:
-
run
python bgp_generator.py -
The following appears in the terminal:
0-Exit and generate promela code 1-Add edge 2-See Graph -
To add an edge choose 1. Select the origin node and the destination node.
-
To see what you have so far choose 2. This will not interfere with the rest of the process.
-
After pressing 0 the following appears:
Cost for node 1 when taking node 2: -
It should be completed, for example like:
Cost for node 1 when taking node 2:2 0 3 255 -
Choose a name for the file
- Python
- Networkx
- Matplotlib