Skip to content
This repository was archived by the owner on Feb 24, 2026. It is now read-only.

IPDK v23.07 Release

Choose a tag to compare

@ipdksw ipdksw released this 19 Jul 16:00
· 142 commits to main since this release
0e71ec1

Kubernetes Networking Infrastructure Offload

  • Support for Kubernetes Container Network Interface (CNI) to enable pods to
    send/receive traffic.
  • Intra Node L3 Forwarding to enable pod to pod communication, on the same node,
    via CNI interfaces.
  • Service Load Balancing within the node to allow multiple pods on same node to
    act as end points providing any application service.
  • Bi-directional Auto Learning and Flow Pinning (a.k.a Connection Tracking),
    used with load balancing, to allow consistent end point pod selection, once it
    has been selected for the first packet.
  • DNS service provided by Core DNS pods to other pods.
  • Support for TLS traffic between DNS server pods and Kube API.

K8s Infra Components

The following are the main components of K8s Infra Offload software.

K8s Infra Manager

  • The Infra Manager is deployed as a core kube-system pod along with other
    kube-system pods.
  • This components acts as a gRPC server for K8s Infra Agent and receives K8s
    configurations from the Infra Agent over the gRPC channel.
  • It acts as a client for the P4 Runtime Server (infrap4d) and updates the
    K8s Pipeline tables (Data Plane), over another gRPC channel, to apply K8s
    configurations.

K8s Infra Agent

  • The Infra Agent is also deployed as a core kube-system pod along with other
    kube-system pods.
  • It receives all CNI requests from the Calico plug-in, configures pod system
    files and adds interaces to be pods. And finally, it relays these
    configurations to the Infra Manager.
  • It also acts as a K8s client for K8s API server and receives all configuration
    changes and passes them on to the Infra Manager component.
  • It interacts with Infra Manager over gRPC channel to pass all the
    configurations.

K8s P4 Pipeline

  • The K8s P4 pipeline is a pre-built component that can be loaded on the P4-DPDK
    dataplane.
  • It comes along with the source P4 code for user to understand the packet
    processing pipeline.
  • Offloading kube-proxy functionality, providing pod to pod L3 connectivity,
    local node gateway routing, load balancing & connection tracking, is all
    implemented within this pipeline.
  • It exposes p4 tables that can be modified at runtime with packet processing
    rules. These rules are for managing pkt forwarding, service groups, service
    end points, etc.