This repository contains the artefacts of the WNS3'22 paper "Evaluating OSPF Convergence with ns-3 DCE".
The paper presentation materials are available here.
Link-state routing protocols are based on (i) a distributed database, the LSDB, and (ii) a common algorithm allowing a consensus in the choice of the routes. Evaluating such Internal Gateway Protocols (IGPs) (e.g. OSPF or ISIS) is a quite difficult task. One could deploy a physical testbed but it is costly for large topologies. One could also emulate the protocols in virtualised networks but the outcome of the experiments will be hardware dependent, e.g. if all the network's nodes run on a same server. Another solution is simulation.
In this work, we leveraged the ns-3 discrete-time simulator, its Direct Code Execution (DCE) extension and the BIRD routing protocols framework to simulate the behavior of OSPF on medium-sized topologies, under various failure scenarios.
Running this project require some dependencies:
- docker
- the rust ecosystem with cargo
The whole project can be launched with the rust wrapper.
cargo run --manifest-path=wrapper/Cargo.toml -- -n
<topology file>
The topology file must be located in the inputs
folder and called <topology name>.ntf
.
The supported options are available with the -h
flag, i.e.:
cargo run --manifest-path=wrapper/Cargo.toml -- -h
Here is a summary of the currently supported options:
-e, --ecmp Enable ECMP.
-f, --failures NTF file specifying the link failures to simulate.
-n, --ntf Topology name.
-p, --pcap Enable PCAP logging.
-r, --runtime Simulation duration in seconds. [default: 300]
-s, --single Simulate the failure of each specified link one at a time. Used with -f
--spt <spt> [default: 100] --udp <udp> Enable udp ping between nodes.
Soon TM.