- C 45.9%
- Go 23.8%
- Python 18.3%
- C++ 9%
- Shell 1.1%
- Other 1.9%
| .github | ||
| .reuse | ||
| cli | ||
| code_check | ||
| config/default | ||
| docs | ||
| go/dpservice-go | ||
| hack | ||
| include | ||
| LICENSES | ||
| proto | ||
| src | ||
| test | ||
| tools | ||
| .editorconfig | ||
| .gitignore | ||
| CODEOWNERS | ||
| Dockerfile | ||
| LICENSE | ||
| meson.build | ||
| meson_options.txt | ||
| README.md | ||
Dataplane Service
Overview
Dataplane Service in short form dpservice is a L3 virtual router with basic L2 capabilites and with IP in IPv6 tunneling for the uplink traffic. It uses SRIOV based Virtual Functions as its virtual ports. A virtual machine or a bare metal machine (In case dpservice running directly on SmartNIC) can be plugged to SRIOV VFs.
-
It can operate in offloaded and non-offloaded mode.
-
Uses DPDK Graph Framework for the data plane.
-
rte_flow offloading between the Virtual Machines(VMs) on a single hypervisor and ip in ipv6 decap/encap offloading between hypervisors.
-
GRPC support to add virtual network interfaces and routes. There is a C++ based GRPC test client (CLI) which can connect to the GRPC server. See the examples under docs.
-
There is also a golang based GRPC client which is easier to use.
-
A kubernetes controller abstraction on top of the provided GRPC interface is availiable as well. It is called metalnet.
-
DHCPv4, DHCPv6, Neighbour Discovery, ARP protocols supported (Sub-set implementations.).
-
IPv4 and IPv6 overlay support.
-
Virtual IP support for the virtual network interfaces.
-
Loadbalancer support with maglev hashing.
-
Horizantally scalable NAT Gateway support.
Installation, using and developing
For more details please refer to documentation folder docs
Contributing
We`d love to get a feedback from you. Please report bugs, suggestions or post question by opening a Github issue