Skip to content
Go to file

Latest commit

Fix loopback processing for interfaces with csum offload

Signed-off-by: Bogdan Pricope <>
Reviewed-by: Matias Elo <>

Git stats


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

OpenFastPath general info Build Status

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.19.0.2
./configure --prefix=<INSTALL ODP TO THIS DIR>
make install

(make install may require root permissions)

Instructions for building OFP on top of ODP-DPDK and ODP-ThunderX can be found from OFP User Guide (docs/ofp-user-guide.adoc).

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

You can’t perform that action at this time.