Giter Site home page Giter Site logo

ns3-sim's Introduction

ns-3 sim

This repository contains the artefacts of the WNS3'22 paper "Evaluating OSPF Convergence with ns-3 DCE".

The paper presentation materials are available here.

About

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.

How to use?

Dependencies

Running this project require some dependencies:

  • docker
  • the rust ecosystem with cargo

Wrapper

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.

Content

Soon TM.

ns3-sim's People

Contributors

nrybowski avatar

Watchers

 avatar  avatar

ns3-sim's Issues

[NTFTopoHelper] Link failure on dual link

Currently the routine searching for the link to blackhole match all links with the given characteristics.
Therfore, redundant links between nodes are all removed if they have the same specs:

ip l set dev sim1 down 
Start Time: NS3 Time:         60s (            +6.0015e+10ns) , REAL Time: 1647341605
      Time: NS3 Time:         60s (            +6.0015e+10ns) , REAL Time: 1647341605 --> Starting: /home/ns3dce/dce-linux-dev/build/sbin/ip
      Time: NS3 Time:         60s (            +6.0015e+10ns) , REAL Time: 1647341605 --> Exit (0)
ip l set dev sim2 down 
Start Time: NS3 Time:         60s (            +6.0015e+10ns) , REAL Time: 1647341605
      Time: NS3 Time:         60s (            +6.0015e+10ns) , REAL Time: 1647341605 --> Starting: /home/ns3dce/dce-linux-dev/build/sbin/ip
      Time: NS3 Time:         60s (            +6.0015e+10ns) , REAL Time: 1647341605 --> Exit (0)

This should not happen.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.