doca-socket-relay

Bridge socket-based host applications onto BlueField DPUs using the DOCA Socket Relay.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Migrating an existing socket-based application so its peer runs on a BlueField DPU normally requires rewriting the application against the DOCA programming surface. This Skill guides an agent through deploying the DOCA Socket Relay so the application keeps its existing socket code while the relay forwards traffic across the host-to-DPU boundary.

Core Features & Use Cases

  • Deployment-shape selection: Choose between in-process, sidecar, or BlueField service-container deployment using a three-axis model (deployment shape, socket type, forwarding endpoint).
  • Smoke-before-bulk workflow: Walk the bind, connect, round-trip, admit-fleet sequence with a no-relay regression baseline before production rollout.
  • Layered diagnosis: Troubleshoot stuck or silent relays with a seven-layer error taxonomy covering install, bind, connectivity, forwarding endpoint, permissions, version, and cross-cutting layers.
  • Use Case: A host service reports ECONNREFUSED against the relay, or the relay accepts connections but bytes never reach the DPU-side peer; the Skill walks the agent through quoting both ends of the bridge to isolate the failing layer.

Quick Start

Ask your agent to help you move your socket application onto the BlueField DPU without rewriting it, or to diagnose why the relay accepts connections but no bytes arrive on the DPU side.

Frequently Asked Questions about doca-socket-relay

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

FAQPage Schema
How do I move a socket application onto a BlueField DPU without rewriting it?

Use the DOCA Socket Relay to terminate the application's host-side AF_UNIX socket locally and forward the bytes across the host-to-DPU boundary over Comch. The application keeps its existing socket code; only the peer's location changes.

How do I deploy the DOCA Socket Relay on a BlueField DPU?

Pick one of three deployment shapes: in-process beside the application, a sidecar process or container on the host, or a service container on the BlueField via the kubelet-standalone runtime. Then configure the host-side socket path and the DPU-side forwarding endpoint before any client connects.

Why does my host app get ECONNREFUSED when connecting to the DOCA Socket Relay?

ECONNREFUSED usually means the application is configured for a different socket path than the relay actually bound, the two sit in different network or mount namespaces, or a host firewall drops the connect. Reconcile the application-side configuration with the relay's bound endpoint before blaming either side.

Why does the relay accept connections but bytes never arrive on the DPU side?

This is the silent data-path failure mode: the forwarding endpoint is misconfigured, the DPU-side terminator is down, or the BlueField service container is not Running. Capture the relay's view, the terminator's view, and the peer application's view before retrying.

Does the DOCA Socket Relay support TCP or UDP sockets?

The shipped doca_socket_relay binary uses AF_UNIX (SOCK_STREAM) on its host leg as of DOCA 3.3, with Comch as the DPU-side transport. Verify supported transports with --help on your installed version rather than assuming TCP or UDP support.

When should I use doca-comch instead of the DOCA Socket Relay?

Use doca-comch when you need programmatic control-plane messaging between host and DPU and are willing to write against the DOCA API. Use the Socket Relay when you want to carry existing socket traffic across the boundary without rewriting the application.