This repository contains the code for our work MESSI, which is the first automatic test generator for black-box BGP implementations.
Navigate to BGP_Zenv2.0
folder and follow the instructions provided in the README. You can also use the generated tests here.
As a first step, install Containernet on your system following the instructions provided here. Before that, ensure that you have Docker installed on your device. Afterwards, navigate to the required folder:
$ cd Mininet-Emulab/mininet/demo/
Depending upon which BGP feature you generated test cases for, you may do any one of the following. Also, copy the tests
folder generated in BGP_Zenv2.0
to the relevant folder.
$ cd Decision-Process
$ sudo python3 main.py
$ cd Aggregation
$ sudo python3 main.py --software <software>
where <software>
is the name of the BGP implementation to be tested. The possible values are frr
, quagga
For testing aggregation with Batfish:
$ sudo python3 agg_batfish.py
$ cd Symb-Route-Maps
$ cd frr
To run the route filtering tests:
$ sudo python3 one-router.py
To run the route-map dynamics tests:
$ sudo python3 dynamic-main.py
$ cd quagga
To run the route filtering tests:
$ sudo python3 one-router.py
To run the route-map dynamics tests:
$ sudo python3 dynamic-main.py
$ cd gobgp
Inside the gobgp directory, create the results folder:
$ mkdir results
Route-map test cases can be run with the following command:
$ python3 main.py
For route-map dynamics, use the following:
$ python3 compare_main.py
$ cd batfish
To run the route filtering tests (within the Batfish docker container):
$ sudo python3 main.py
$ cd bird
To run the route filtering tests:
$ bash run.sh