Published June 10, 2020 | Version 1
Dataset Open

Experiments for "Automata Theoretic Approach to Verification of MPLS Networks under Link Failures"

Description

Prerequisites:

  1. A 2020 linux distribution on an x86_64 platform
  2. python3 installation with os, sys, json and statistics packages installed for computation of timing statistics
  3. pdflatex for visualization of reachability matrices

Contents:

  • The bin folder contains the pre-compiled binaries for our tool and the backend verifier for pushdown-systems, moped.
  • The sources folder contains a snapshot of source-code used for producing the tool binary, namely
    • AalWiNes, also found at https://github.com/DEIS-Tools/AalWiNes in release v0.92.J (337f1e4c44f8bce2060897b88e706f7ceca38319)
    • PDAAAL, used for pushdown-system manipulation, also found at https://github.com/DEIS-Tools/PDAAAL in release v0.2.2.J (ed1e7fbb4cacd6ffb240a514cfe8472f83d91f60)
  • The nested folder contains scripts and models for reproducing the results of Table IV
  • The nn-net folder contains scripts and models for constructing reachability-matrices (Table V to Table XII) and operator specific queries
  • Within the nn-net folder, you also find a mapping from alphabetical naming of NORDUnet routers in the paper to numericals (nn-net/index-alpha-map.txt)

P-Rex vs HSA (Table IV)

We here re-use the HSA-timings computed in https://doi.org/10.1145/3281411.3281432

The timings for our tool can be obtained by the following commands

cd nested
./compute_nested.sh | grep "#"

which should compute a sequence of lines in the terminal equal to

### Running N0 with aalwines ###
Memory: 27064 Kb
Time 0.02 seconds
### Running N1 with aalwines ###
Memory: 37404 Kb
Time 0.03 seconds
### Running N2 with aalwines ###
Memory: 47704 Kb
Time 0.03 seconds
### Running N3 with aalwines ###
Memory: 57784 Kb
Time 0.04 seconds
### Running N4 with aalwines ###
Memory: 68368 Kb
Time 0.04 seconds
### Running N5 with aalwines ###
Memory: 78468 Kb
Time 0.05 seconds
### Running N6 with aalwines ###
Memory: 88980 Kb
Time 0.06 seconds

Operator Queries

The experiments on the queries of the operators can be computed via the commands

cd nn-net
./compute_operator.sh 

which should complete less than 10 minutes.

The traces and timings are outputted directly to the terminal.

Reachability Matrices (Table V to Table XII)

This package folder comes pre-populated with the raw computation results. Notice that the compute_grid.sh command will invalidate these results.

To compute the full set of reachability tables, you can use the following commands

cd nn-net
./make_queries.sh
./compute_grid.sh

Notice, however, that this computation in total takes more than two days to complete on a single core.

To reduce the size of the experiment, clear the contents of the query sub-folder an modify the make_queries.sh file by commenting out unwanted queries and parameter-combinations.

To obtain a matrix, the command

./make_grid.sh aalwines IP IP 0 > ip_ip.tex
pdflatex ip_ip.tex

which generated the IP IP matrix with 0 failures.
For the second argument, the following values are supported IP, MPLS while the third argument can also attain the value of ANY. The fourth argument gives the number of link failures.

Timing information for the reachability-matrices can be obtained by

python3 ./timing_stats.py aalwines 3 IP_IP_UNDER_0

where the third argument determines the reduction-type used, and the fourth argument gives the specific query and engine mode used. In the given example we attain the statistics for reduction-mode 3 for the IP-IP matrix using under-approximation on zero link-failures.

The pre-reduction and post-reduction elements of the output give the size of the constructed pushdown system before (and after) reduction respectively.

Files

repeatability.zip

Files (58.5 MB)

Name Size Download all
md5:ecbea9254bb1a898b81c9d1e0226be64
58.5 MB Preview Download