1Obtaining NFPA

NFPA is an open-source project, and the most freshest source code can be download from GitHub.

$ git clone https://github.com/cslev/nfpa

For the stable version v1.0 use commit hash: e112f80eeb16efae16462726c8abef02a62d4a3e

$ git checkout e112f80eeb16efae16462726c8abef02a62d4a3e

Or download the compressed archive: nfpa_v1.tar.gz

For the stable version v2.0 use commit hash: d1d1b3e869f5fafe8442805c4781631447e3b8e5

$ git checkout d1d1b3e869f5fafe8442805c4781631447e3b8e5

Or download the compressed archive: nfpa_v2.tar.gz

Since version v2.0, NFPA has a lot of new features (e.g., pre-defined flow rules to configure your VNF remotely), thus the size of the whole framework has been increased, so be patient during cloning the repository. It did not crash, just might take a few minutes. Current v3.0 (Patrick) is already in beta phase and initial tests confirmed that it does what it needs to. However, the developer itself cannot be sure about, let the community to make sure of this.

2Requirements

NFPA has been evolved from small Pktgen automation scripts to the current state of a complete framework (as can be seen in architecture figure on Home site). The dependencies are the following, where version number information is based on our systems. This means that libraries with these versions definitely work with NFPA (and probably work with newer libraries):

OS-related

  • BASH
  • tar
  • bzip2
  • xz-utils

Python-related

  • Python (>= 2.7.10)
  • sqlite3 (>= 3.8.7.1) - for creating database file from scratch! If case of no sqlite3, nfpa.db in db/ directory mustn't be deleted!
  • libsqlite3 (for sqlite (>= 3.8.10))
  • python-bottle (for web-based GUI (>= 0.12.7))

Results plotting and viewing

  • Gnuplot (>= 4.6.6)
  • Your favorite sql browser to read the measurement results in a comprehensive manner (we prefer sqlitestudio)

Further reqirements for V2 Spongebob

  • ovs-ofctl (openflow rules are installed via ovs-ofctl - to obtain download OvS and install manually. You may also install openvswitch from your Linux's repository.

There is no further reqirements for V3 Patrick

On Debian-based (jessie) system, the following command should install the previously mentioned packages:

$ sudo apt-get install python python-bottle libsqlite3-0 gnuplot tar bzip2 xz-utils

For NFPA V2 (and above) do the following as well

$ sudo apt-get install openvswitch-common

Assuming you have a 64-bit Linux system, obtaining sqlitestudio can be done as follows (change linux64 to linux32 for 32-bit version):

$ cd path/where/you/want/to/download
$ wget http://sqlitestudio.pl/files/sqlitestudio3/complete/linux64/sqlitestudio-3.0.7.tar.xz
$ tar -xJvf sqlitestudio-3.0.7.tar.xz
$ cd SQLiteStudio
$ ./sqlitestudio

Traffic generation