Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/OpenFastPath/ofp
OpenFastPath project
https://github.com/OpenFastPath/ofp
Last synced: 2 months ago
JSON representation
OpenFastPath project
- Host: GitHub
- URL: https://github.com/OpenFastPath/ofp
- Owner: OpenFastPath
- License: bsd-3-clause
- Created: 2015-06-09T09:08:43.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-10-27T13:17:26.000Z (about 1 year ago)
- Last Synced: 2024-08-02T01:16:32.034Z (6 months ago)
- Language: C
- Size: 4.25 MB
- Stars: 349
- Watchers: 66
- Forks: 126
- Open Issues: 105
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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](http://www.openfastpath.org/index.php/service/technicaloverview/)
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 implementationCoding Style:
-------------------------------------------------------------------------------
Project code uses Linux kernel style that is verified through `checkpatch.pl`Licensing:
-------------------------------------------------------------------------------
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](https://list.openfastpath.org/mailman/listinfo/openfastpath),
reached via the address: [email protected]_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 https://github.com/OpenDataPlane/odp
cd odp
git checkout v1.45.1.0
./bootstrap
./configure --prefix=
make
make install(`make install` may require root permissions)
Compiling and building OFP:
-------------------------------------------------------------------------------
git clone https://github.com/OpenFastPath/ofp
cd ofp
./bootstrap
./configure --prefix= --with-odp=
make
make installOFP 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.Tools
===============================================================================Code coverage:
-------------------------------------------------------------------------------
Generate code coverage report from unit tests by passing `--coverage` during
building, and use `lcov` to view the results:./configure CFLAGS='-g -O0 --coverage' \
LDFLAGS='--coverage'
make checkcd test/cunit
lcov --directory . --directory ../../src --capture --output-file \
coverage.infogenhtml coverage.info --output-directory out
view `out/index.html`