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.gzFor 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.
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
- DPDK (=2.1) - look after Intel DPDK getting started guide
- pktgen-dpdk(=2.8.4))
- Latest recommended versions: PktGen 2.9.12 with DPDK 2.2.0