View on GitHub

Fast Network Simulation Setup

News

AIMS 2014 tutorial

We will give a tutorial on FNSS at the AIMS 2014 conference. We will prepare a virtual machine image with all required configuration for the attendees of the tutorial and we will make it available here from mid May.

Overview

Fast Network Simulation Setup (FNSS) is a toolchain allowing network researchers and engineers to simplify the process of setting up a network experiment scenario. It allows users to:

The core library, which provides the features listed above, is written in Python. FNSS also provides a set of adapters to export this configuration to ns-2, ns-3, Mininet and Autonetkit as well as to other simulators or emulators through Python, Java and C++ APIs.

Usage

To use FNSS you would normally use the following workflow.

  1. Create an experiment scenario (topology, traffic matrices, event schedules) using the Python core library.
  2. Export the created scenario in your target simulator/emulator.
    • If your target simulator/emulator is ns-2, Mininet or Autonetkit or a Python program, the core library include functions to export the scenario created in your target environment.
    • Otherwise, if you wish to run your experiments on ns-3 or a Java or C++ program, then export the scenario to XML files using the provided functions and use the Java, C++ or ns-3 library to import the scenario XML files into your target simulator/emulator.

Install

This section explains how to install the FNSS Python core library.

If you wish to use FNSS to deploy experiment scenarios in a C++ or a Java program or in the ns-3 simulator then you also need the relevant library, which you can download from the links further below.

Ubuntu (version 12.04+)

If you use Ubuntu, you can install the FNSS core library along with the Python interpreter and all required dependencies by running the following script:

$ curl -L https://github.com/fnss/fnss/raw/master/core/ubuntu_install.sh | sh

You need superuser privileges to run this script. If you don't trust running this script, you can inspect its source code here.

Other operating systems

The easiest way to install the core Python library is to download it and install it from the Python Package Index. To do so, you must have Python (required version >= 2.6, preferred >= 2.7) installed on your machine and either pip or easy_install.

To install the FNSS core library using easy_install open a command shell and type:

$ easy_install fnss

If you use pip, type instead:

$ pip fnss

Depending on the configuration of your machine you may need to run pip or easy_install as superuser. Whether you use pip or easy_install, the commands reported above will download the latest version of the FNSS core library and install it on your machine together with all required dependencies.

At this stage you are ready to use the Python core library. To use the Java or C++ APIs or the ns-3 adapters, please download the specific components that you need from the links below.

Download

You can either browse the code from the FNSS GitHub repository or choose among the following download options:

Latest stable release (0.4.1)

Complete toolchain tar.gz zip
Core (Python) library tar.gz zip
C++ library tar.gz zip
Java library tar.gz zip
ns-3 library tar.gz zip

Development branch

You can download the latest version of the code from the development branch using Git. The code on the development branch is usually quite stable and can be used safely. Open a command shell, move to the directory where you want to download FNSS and type:

$ git clone https://github.com/fnss/fnss.git

Alternatively, you can get a compressed archive of the development branch:

Documentation and examples

Here you can find links to browse documentation and examples of the various components of the FNSS toolchain. Documentation and examples are also included in the component packages that can be downloaded from the links above.

Component Documentation Examples
Core (Python) library Browse Browse
C++ library Browse Browse
Java library Browse Browse
ns-3 library Browse Browse

Further information about FNSS architecture and the models it implements can be found in this paper:

L. Saino, C. Cocora, G. Pavlou, A Toolchain for Simplifying Network Simulation Setup, in Proceedings of the 6th International ICST Conference on Simulation Tools and Techniques (SIMUTOOLS '13), Cannes, France, March 2013 [PDF] [Slides]

Citing

If you cite FNSS in your paper, please refer to the following publication:

L. Saino, C. Cocora, G. Pavlou, A Toolchain for Simplifying Network Simulation Setup, in Proceedings of the 6th International ICST Conference on Simulation Tools and Techniques (SIMUTOOLS '13), Cannes, France, March 2013

@inproceedings{fnss,
     author = {Saino, Lorenzo and Cocora, Cosmin and Pavlou, George},
     title = {A Toolchain for Simplifying Network Simulation Setup},
     booktitle = {Proceedings of the 6th International ICST Conference on Simulation Tools and Techniques},
     series = {SIMUTOOLS '13},
     year = {2013},
     location = {Cannes, France},
     numpages = {10},
     publisher = {ICST},
     address = {ICST, Brussels, Belgium, Belgium},
}

Contact

For any information please contact Lorenzo Saino.