nf.io provides a file system abstraction for Virtual Network Function (VNF) management and Orchestration. It exposes the Linux file system interface as the northbound API, enabling user to manage and orchestrate VNF service chains by performing simple file and directory manipulation operations. In this demonstration a sample VNF chain is deployed. The terminal below can be used to collect information about individual VNFs as well as for the entire chain.



The VNF chain Firewall -- IDS -- Proxy is deployed. The proxy is serving this same page, and can be accessed at this link. Some sample commands to monitor the chain are given below:

Total number of packet drops along a chain:
find -L /nfio/chns/chain-alpha -name pkt_drops ! -path "*/next/*" ! -path "*/start/*" | xargs cat | awk '{total += $1} END {print total}'
List of all VNF instances deployed on a physical machine with IP address
grep -R '' /nfio/nf-types
List of all chains a VNF instance is part of:
find /nfio/chns -lname /nfio/nf-types/firewall/fw-alpha
Total number of connections to the web proxy seen by the Bro IDS:
tail -n +9 /nfio/nf-types/ids/ids-alpha/rfs/conn.log | awk '{print $6}' | grep -c 80
Access log of web proxy:
tail -f /nfio/nf-types/proxy/proxy-alpha/rfs/access.log

Try It!

Click here to open a web based terminal in a new tab/window. Then you can login with the username: nfio-demo and password: nfio-demo. On Chrome you can use Ctrl + Shift + V to paste the commands. However, it does not work on Firefox, so you need to type in the commands. Do not use Ctrl + C to break out of commands. It will stop the terminal. You can use Ctrl + Z instead.

In case you face problems using the web based terminal, you can directly ssh to with the above username and password.

The source code is available at https://github.com/faizulbari/nf.io