Skip to content
yanet-platformPublic

About

A high performance framework for forwarding traffic based on DPDK

Topics

Resources

Contributing

Stars

233 stars

Watchers

13 watching

Forks

Latest commit

 

History

652 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • 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

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
  • To view more detailed output, you can run the tests with -v flag:
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.

About

A high performance framework for forwarding traffic based on DPDK

Topics

Resources

Contributing

Stars

233 stars

Watchers

13 watching

Forks

Releases

Packages

Used by

Contributors

Languages