RealFatCat / yanet

A high performance framework for forwarding traffic based on DPDK

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 with virtual ports. 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"

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

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

License:Other


Languages

Language:C++ 74.1%Language:Python 22.2%Language:C 1.2%Language:Yacc 1.0%Language:Lex 0.7%Language:Meson 0.5%Language:Dockerfile 0.3%Language:Shell 0.0%Language:Makefile 0.0%