DOCA 文档 v2.10.0

DOCA Socket Relay

本文档介绍了 DOCA Socket Relay 架构、用法等。

DOCA Socket Relay 允许 Unix 域套接字 (AF_UNIX 族) 服务器应用程序卸载到 DPU,同时两侧之间的通信由 DOCA Comch 代理。

Socket relay 仅支持 SOCK_STREAM 通信,限制为 512 个 AF_UNIX 应用程序客户端。

该工具与客户端 AF_UNIX 服务器应用程序耦合。也就是说,每个 AF_UNIX 服务器应用程序应启动一个 socket relay 实例。

image2023-4-9_16-37-54-version-1-modificationdate-1734472257030-api-v2.png

Socket relay 对应用程序是透明的,除了以下 TCP 流

  • 连接终止必须仅由主机端应用程序完成

  • 一旦主机端应用程序发送 FIN 数据包 (已发出 shutdown 系统调用),则 DPU 和主机之间无法传输数据,并且必须关闭连接。

以下详细说明了客户端和服务器之间的通信流程

  • AF_UNIX 客户端应用程序以与原始流程相同的方式连接到 socket relay AF_UNIX 服务器

  • AF_UNIX 客户端应用程序发送 SOCK_STREAM 数据包

  • socket relay (主机) AF_UNIX 服务器接收客户端应用程序数据包,并且 Comm Channel 客户端在通道上发送它们

  • socket relay (DPU) Comm Channel 服务器接收客户端应用程序数据包,并且 AF_UNIX 客户端将它们发送到用户的 AF_UNIX 服务器应用程序

Windows 10 build 17063 是在 Windows 主机上运行 DOCA Socket Relay 的最低 Windows 版本。

NVIDIA® BlueField®-2 固件版本 24.35.1012 或更高版本。

要执行 DOCA Socket Relay

复制
已复制!
            

Usage: doca_socket_relay [DOCA Flags] [Program Flags]   DOCA Flags: -h, --help Print a help synopsis -v, --version Print program version information -l, --log-level Set the (numeric) log level for the program <10=DISABLE, 20=CRITICAL, 30=ERROR, 40=WARNING, 50=INFO, 60=DEBUG, 70=TRACE> --sdk-log-level Set the SDK (numeric) log level for the program <10=DISABLE, 20=CRITICAL, 30=ERROR, 40=WARNING, 50=INFO, 60=DEBUG, 70=TRACE> -j, --json <path> Parse all command flags from an input json file   Program Flags: -s, --socket Unix domain socket path, host side will bind to and DPU connect to -n, --cc-name Comm Channel service name -p, --pci-addr DOCA Comm Channel device PCI address -r, --rep-pci DOCA Comm Channel device representor PCI address (needed only on DPU)

例如 (DPU 端)

复制
已复制!
            

doca_socket_relay -s /tmp/sr_server.socket -n cc_channel -p 03:00.0 -r b1:00.0

要使用 JSON 文件运行 doca_socket_relay

复制
已复制!
            

doca_socket_relay --json [json_file]

例如

复制
已复制!
            

doca_socket_relay --json /tmp/doca_socket_relay.json

有关更多信息,请参阅 DOCA Arg Parser

标志类型

短标志

长标志/JSON 键

描述

JSON 内容

通用标志

h

help

打印帮助概要

N/A

v

version

打印程序版本信息

N/A

l

log-level

设置应用程序的日志级别

  • DISABLE=10

  • CRITICAL=20

  • ERROR=30

  • WARNING=40

  • INFO=50

  • DEBUG=60

  • TRACE=70 ( 需要使用 TRACE 日志级别支持进行编译 )

复制
已复制!
            

"log-level": 60

N/A

sdk-log-level

此工具当前不支持 SDK 日志事件

N/A

j

json

从输入 JSON 文件解析所有命令标志

N/A

程序标志

s

socket

AF_UNIX (SOCK_STREAM) 路径。在主机上,这是 socket relay AF_UNIX 服务器的路径,供客户端应用程序连接。在 DPU 上,这是客户端 AF_UNIX 服务器应用程序的路径。

注意

此标志是强制性的。

复制
已复制!
            

"socket": "/tmp/uds-server.socket"

n

cc-name

Comm Channel 服务名称

注意

此标志是强制性的。

复制
已复制!
            

"cc-name": sr_channel

p

pci-addr

DOCA Comm Channel 设备 PCIe 地址

注意

此标志是强制性的。

复制
已复制!
            

"pci-addr": b1:00.1

r

rep-pci

DOCA Comm Channel 设备表示器 PCIe 地址

注意

此标志仅在 DPU 上可用且是强制性的。

复制
已复制!
            

"rep-pci": b1:02.2

© 版权所有 2025, NVIDIA。 上次更新时间:2025 年 2 月 12 日。