警告:
DPDK ring端口不能用于客户机通信,其存在主要是为了向后兼容。几乎所有情况下,都应当使用vhost user ports<vhost user>
,其是更好的选择。
DPDK数据路径提供DPDK支持的ring端口,其通过DPDK的librte-ring
库实现。有关此库的详细信息,请参阅DPDK 官方文档
。
重要:
要使用任何DPDK支持的端口,你必须确保网桥已正确地配置。更多详细信息,请参阅OVS的`网桥`文档。
简单示例
此示例演示如何将dpdkr
端口添加到现有网桥br0
中:
$ ovs-vsctl add-port br0 dpdkr0 -- set Interface dpdkr0 type=dpdkr
dpdkr
要使用ring端口,你必须先将所述端口添加到网桥。不像vhost user ports<vhost user>
端口,ring端口名称必须采用特定的格式,dpdkrNN
,其中NN
是端口ID。例如:
$ ovs-vsctl add-port br0 dpdkr0 -- set Interface dpdkr0 type=dpdkr
一旦将端口添加到网桥,主机中进程就可以使用这些端口。Open vSwitch中包含一个环回应用程序示例 - test-dpdkr
。要使用此功能,请运行以下命令:
$ ./tests/test-dpdkr -c 1 -n 4 --proc-type=secondary -- -n 0
进一步的功能需要开发自己的应用程序。有关如何实现的详细信息,请参阅DPDK 官方文档
。
客户机中增加dpdkr端口
不建议在客户机中使用ring端口。历史原因,这是可以通过使用修补版本的QEMU和提供IVSHMEM功能的DPDK实现的。但是,此功能已被删除,原因如下:
-
在DPDK 16.11中已经删除了IVSHMEM库
-
对IVSHMEM功能的支持从未提交到QEMU,并且已被QEMU社区公开拒绝
-
端口
vhost-user interfaces <vhost-user>
是用于客户机通信的标准DPDK路径