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 实例。

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 内容 |
通用标志 |
|
| 打印帮助概要 | N/A |
|
| 打印程序版本信息 | N/A | |
|
| 设置应用程序的日志级别
|
| |
N/A |
| 此工具当前不支持 SDK 日志事件 | N/A | |
|
| 从输入 JSON 文件解析所有命令标志 | N/A | |
程序标志 |
|
| AF_UNIX ( 注意
此标志是强制性的。 |
|
|
| Comm Channel 服务名称 注意
此标志是强制性的。 |
| |
|
| DOCA Comm Channel 设备 PCIe 地址 注意
此标志是强制性的。 |
| |
|
| DOCA Comm Channel 设备表示器 PCIe 地址 注意
此标志仅在 DPU 上可用且是强制性的。 |
|