YANET — software forwarding traffic

YANET

YANET is an open-source extensible framework for software forwarding traffic based on DPDK.

Introduction

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.

Features

Quick Start

You can build YANET in docker container and run it in QEMU. See DEMO.

Or build on bare metal. See documentation.

Running Autotests

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

Running Unit Tests

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

Dependencies

License

Apache License, Version 2.0

Contributing

We are glad to welcome new contributors! See the CONTRIBUTING file for details.