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.
- IPv4/IPv6 routing
- ECMP with weight
- MPLS encapsulation
- Dot1q ethernet encapsulation
- IPFW compatible ruleset with extensions
- Stateful firewall
- Layer-4 load balancer
- IPIP tunnel
- NAT64 stateless/stateful
- Telemetry via telegraf
- Over 200Gbps network bandwidth
- Advanced autotests
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"
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
We are glad to welcome new contributors! See the CONTRIBUTING file for details.