Skip to content

DPDK based fast Dataplane / L3 router / SDN enabler, installable on compute nodes / SmartNICs

License

Notifications You must be signed in to change notification settings

ironcore-dev/dpservice

Folders and files

NameName
Last commit message
Last commit date
May 29, 2024
Dec 6, 2023
Dec 4, 2023
May 29, 2024
Dec 4, 2023
Oct 6, 2023
May 24, 2024
May 29, 2024
Mar 15, 2024
May 29, 2024
Jan 18, 2024
May 29, 2024
May 24, 2024
Dec 6, 2023
Nov 1, 2021
Jul 4, 2023
Dec 11, 2023
May 24, 2024
Oct 20, 2021
May 24, 2024
May 24, 2024
May 24, 2024

Repository files navigation

Dataplane Service

REUSE status GitHub License PRs Welcome

Overview

Dataplane Service in short form dp-service 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 dp-service running directly on SmartNIC) can be plugged to SRIOV VFs.

  • It can operate in offloaded and non-offloaded mode.

    • Offload mode means first packet of each flow flowing over dp-service will be handled in software and then the flow will be offloaded to the hardware. (Using DPDK rte_flow)
    • Non-offloaded mode handles the whole traffic in software using PMD drivers and dedicated CPU cores.
  • 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 used.

  • 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 limited IPv6 overlay support.

  • Virtual IP support for the virtual network interfaces.

  • Loadbalancer support.

  • Horizantally scalable NAT Gateway support.

  • Automated test support with pytest and scapy.

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

License

Apache License 2.0