doca-dpdk-bridge

Guides binding DPDK ports to DOCA devices for in-place hardware steering integration.

3.2k|370|Updated Feb 25, 2026
One-click install
npx skills add https://github.com/NVIDIA/skills --skill doca-dpdk-bridge
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: doca-dpdk-bridge
Source: https://github.com/NVIDIA/skills/tree/main/skills/doca-dpdk-bridge
Command: npx skills add https://github.com/NVIDIA/skills --skill doca-dpdk-bridge

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developers with existing DPDK packet-processing applications often need DOCA capabilities like hardware steering without rewriting their data-plane. This Skill guides agents through binding DPDK port IDs to DOCA devices, converting mbufs to DOCA buffers, and diagnosing bridge errors across the DPDK-DOCA version boundary.

Core Features & Use Cases

  • Port Handover Guidance: Walks through binding a DPDK port id to a doca_dev using doca_dpdk_port_probe and doca_dpdk_port_as_dev so DOCA Flow can program steering rules on the same physical port.
  • Version Compatibility Checks: Enforces the matched-pair DPDK-DOCA version coupling via pkg-config probes before any code change, preventing the common "bridge loads but every operation fails" failure mode.
  • Error Diagnosis: Maps bridge-specific DOCA_ERROR_* returns (BAD_STATE, NOT_FOUND, NOT_PERMITTED) to root causes across lifecycle, permission, and version layers.
  • Use Case: A network engineer has a production DPDK app and wants to add DOCA Flow hardware steering rules on its ports; the Skill walks configure, build, run, test, and debug steps without a data-plane rewrite.

Quick Start

Ask your agent: "How do I add DOCA Flow steering rules to my existing DPDK application without rewriting the data plane?"

Frequently Asked Questions about doca-dpdk-bridge

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add DOCA Flow to my existing DPDK application?

Bind your DPDK port id to a doca_dev using doca_dpdk_port_probe or doca_dpdk_port_as_dev, then pass that doca_dev to DOCA Flow to install steering rules. The DPDK side keeps owning port start, stop, and queue configuration; no data-plane rewrite is needed.

Should I use doca-dpdk-bridge or doca-eth for packet I/O?

Use doca-dpdk-bridge when you already have a working DPDK application and want DOCA capabilities in-place. Use native doca-eth when starting a fresh project with no DPDK code, since migrating a working DPDK data-plane is usually the wrong tradeoff.

Why does the bridge load but every operation returns errors?

This is the canonical symptom of a DPDK-DOCA version mismatch. Run pkg-config --modversion libdpdk and compare it against the bridge's expected window, and verify pkg-config --modversion doca-dpdk-bridge agrees with doca_caps --version before changing any code.

What does DOCA_ERROR_NOT_FOUND on port registration mean?

It means the DPDK port id is wrong, the port is not bound under DPDK on this host, or the id comes from a different EAL instance. Confirm your DPDK port enumeration first; it is not a bridge code bug.

When should I convert rte_mbuf to doca_buf?

Convert only at the data-plane boundary where a DOCA library actually operates on the payload, not in the inner loop. If every packet needs conversion, you likely want DOCA Flow steering installed once so DPDK delivers already-steered packets.

What are the prerequisites for using the DOCA DPDK Bridge?

You need DOCA SDK installed at /opt/mellanox/doca, a version-matched DPDK install, hugepages mounted, the target PCIe port bound under DPDK, and privileges to open a doca_dev (sudo or mlnx-group membership).