- Notifications
You must be signed in to change notification settings - Fork31
Fast creation and configuration of topologies, traffic matrices and event schedules for network experiments
License
fnss/fnss
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Fast Network Simulation Setup (FNSS) is a toolchain allowing network researchersand engineers to simplify the process of setting up a network experiment scenario.It allows users to:
- Parse a topology from a dataset or a topology generator or generate it according to a number of synthetic models
- Configure links with capacity, weights, delays and buffer sizes
- Deploy applications and protocol stacks on nodes
- Generate traffic matrices
- Generate event schedules
- Deploy network and workload configuration to a number of simulators and emulators
FNSS comprises a core library, written in Python, and a set of adapters.This repository contains the core library, which provides all capabilitiesfor generating experiment scenarios and to export them tons-2,Mininet,Omnet++,AutonetkitandjFed.It can also be used in conjunction with the FNSS Java, C++ API orns-3 libraries to import topologies,traffic matrices and event schedules in the desired target simulator or emulator.See the repositoriesfnss-java,fnss-cpp andfnss-ns3for further information.
The FNSS library comprises a core Python library, which also includes adapters for ns-2, Mininet and Autonetkitand libraries for ns-3 and Java and C++ simulators/emulators.The core Python library is needed for creating and configuring topologies, traffic matrices and event schedules.Such objects can then be used directly if you intend to use a Python simulator.Otherwise, they can be exported to ns-2, Autonetkit and Mininet or saved to XML files which can then be parsed by the ns-3, Java or C++ libraries.For detailed information on how to use each component of the toolchain, please refer tothefnss-java,fnss-cpp orfnss-ns3 repositories.or visit theFNSS website.
The easiest way to install the latest stable version of this library is viapip
.First, ensure that you have Python installed on your machine with version (2.7.9+ or 3.4+).Then, from a shell run:
pip install --upgrade fnss
This will automatically pull the latest version and install all dependencies.
Once the package is successfully installed, you can start using FNSS straight away.Look at the documentation and examples for getting started. You can find the documentation online onRead The Docs.
FNSS also provides amn-fnss
which can be used to start Mininet withan FNSS-generated network topology.Open a shell and run the following command to get more information on how to use it.
mn-fnss --help
If you wish to develop on FNSS run:
make install
This will download all development requirements and install FNSS in editable mode,which means that any change made to the source code will be immediately availableby other libraries in the system without needing reinstallation.
You can run tests with:
make test
and build documentation with:
make doc
It is advisable to usevirtualenvto create an isolated environment for working with FNSS before runningmake install
.
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, inProceedings 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},}
If you wish to report a bug, please open an issue on the GitHubissue page.When reporting an issue, please try to provide a reproducible example of the problem, if possible.
Any contributions to the project (either bug fixes or new features) are very much welcome. To submit your code, please send a pull request on theGitHub project page.
If you wish to contribute please try to follow these guidelines:
- Write commit messages conforming toGit convention
- If you are sending a fix to an open issue, feel free to send a pull request directly, but make sure to reference the issue ID that you are fixing in the commit message.
- Think about writing test cases for your feature or bug fix, if relevant. If you can't, don't worry: send your code anyway.
The FNSS core library is released under the terms of theBSD License. SeeLICENSE.txt
.
About
Fast creation and configuration of topologies, traffic matrices and event schedules for network experiments