OpenNF

Enabling Innovation in Network Function Control

Core Code

The NF controller, shared library, applications, and iptables code is protected by a license agreement that allows free use of the OpenNF code for academic and research purposes. Please fill out our request form to obtain access to the code.

If you have questions about the code, please email agemberjacobson@colgate.edu.

NEW! To learn how to use OpenNF, follow the OpenNF tutorial.

NF Controller

The NF controller is written in Java and runs atop Floodlight 0.90. The README file included in the download provides instructions for compiling and running the controller.

Download Code (.tgz)

Shared Library for NFs

The shared library for NFs is written in C and handles communication between NFs and the NF controller. The README file included in the download provides instructions for compiling and installing the shared library.

Download Code (.tgz)

Applications

We have written several applications that use OpenNF.

Download Code (.tgz)

Modified NFs

Bro

Bro, a popular intrusion detection system, has been modified to support OpenNF. The modifications are available as a patch against Bro 2.1. The code requires the Boost serialization library.

Download Patch (.patch)

PRADS

PRADS, an asset detection and monitoring system, has been modified to support OpenNF. The modifications are available as a patch against commit "930ff5140aa90259ec02b85fdd8ba69f9c0c5c64" in the PRADS git repository.

Download Patch (.patch)

iptables

iptables, a userspace command line program that facilitates configuration of packet filtering rules in the Linux kernel to realize firewall and network address translator functionality, supports OpenNF through the use of libnetfilter_contrack. A standalone program provides the OpenNF support, as opposed to modifying iptables itself, as is done with other NFs.

Download Code (.tgz)

Squid

We are improving our modifications to Squid, a popular caching proxy, to support OpenNF. This code will be available shortly.