Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

OpenFastPath general info

Intent and purpose:

The intent of this project is to enable accelerated routing/forwarding for IPv4 and IPv6, tunneling and termination for a variety of protocols. Unsupported functionality is provided by the host OS networking stack (slowpath).

OpenFastPath functionality is provided as a library to Fast Path applications that use ODP run to completion execution model and framework. DPDK is supported through the ODP-DPDK layer.

Termination of protocols with POSIX interface for legacy applications is also supported.

See project technical overview for more details about OpenFastPath architecture and main features.

Directory structure

./docs/ - This is where you can find more detailed documentation
./example/ - Example applications that use the project library
./include/api/ - Public interface headers used by an application.
./include/ - Internal interface headers that are used in OFP library.
./scripts/ - Auxiliary scripts.
./src/ - .c files with OFP library implementation.
./src/cli/ - Command Line Interface implementation.
./test/cunit/ - CUnit testcases implementation

Coding Style:

Project code uses Linux kernel style that is verified through


Project uses BSD 3-CLause License as default license. One should not use code that is licensed under any GPL type.

Mailing list

We have a mailing list, reached via the address:

Open IP Fast Path getting started

Build environment preparation:

This project is currently verified on a generic 32/64bit x86 Linux machine.

The following packages are mandatory for accessing and building ODP and OFP:

git aclocal libtool automake build-essential pkg-config

The following packages are optional:

libssl-dev doxygen asciidoc valgrind libcunit1 libcunit1-doc libcunit1-dev libconfig-dev

The usage of libconfig-dev package is enabled by default and can be disabled by --disable-libconfig configure option.

Download and build OpenDataPlane (ODP) library:

git clone
cd odp
git checkout v1.35.0.0
./configure --prefix=<INSTALL ODP TO THIS DIR>
make install

(make install may require root permissions)

Compiling and building OFP:

git clone
cd ofp
./configure --prefix=<INSTALL OFP TO THIS DIR> --with-odp=<ODP INSTALLATION DIR>
make install 

OFP example applications:

OpenFastPath project contains a number of example applications described in example/README file. See OFP User Guide (docs/ofp-user-guide.adoc) for more details about designing and executing OFP applications.


Code coverage:

Generate code coverage report from unit tests by passing --coverage during building, and use lcov to view the results:

./configure <typical-ofp-flags> CFLAGS='-g -O0 --coverage' \
make check

cd test/cunit

lcov --directory . --directory ../../src --capture --output-file \

genhtml --output-directory out

view out/index.html