YANET is an open-source extensible framework for software forwarding traffic based on DPDK.
The main objective of our solution is to be fault-tolerant and high-performance traffic processor. This is achieved due to the absence of context switching, no data race, constant complexity of algorithms, lockless.
You can build YANET in docker container and run it in QEMU. See DEMO.
Or build on bare metal. See documentation.
Pull docker image:
docker pull yanetplatform/builder
Add alias for run commands on docker:
alias yanet-builder="docker run --rm -it -v /run/yanet:/run/yanet -v \$PWD:/project yanetplatform/builder"
(for Mac: alias yanet-builder="docker run --platform linux/amd64 --rm -it -v /run/yanet:/run/yanet -v \$PWD:/project yanetplatform/builder")
Once setup build_autotest
directory:
yanet-builder meson setup -Dtarget=autotest build_autotest
Compile:
yanet-builder meson compile -C build_autotest
Run autotest with all units in autotest/units/001_one_port
:
yanet-builder ./autotest/yanet-autotest-run.py --prefix=build_autotest autotest/units/001_one_port
Or run one unit:
yanet-builder ./autotest/yanet-autotest-run.py --prefix=build_autotest autotest/units/001_one_port autotest/units/001_one_port/019_acl_decap_route
For more information about the autotests run:
yanet-builder ./autotest/yanet-autotest-run.py -h
To run the unit tests for the project, follow these steps:
Setup the build directory for unittest targeting:
meson setup -Dtarget=unittest build_unittest
Next, compile the project within the setup build directory:
meson compile -C build_unittest
After compilation, run all the unit tests with:
meson test -C build_unittest
meson test -C build_unittest -v
We are glad to welcome new contributors! See the CONTRIBUTING file for details.