OVS DPDK 数据路径的内部工作原理以及与普通 OVS 的差异

Inner workings of OVS DPDK's datapath and differences with vanilla OVS

我想了解转发平面(a.k.a.datapath)在OVS DPDK中是如何工作的。 这个托管 dpdkhostuser 的 OVS DPDK 网桥是否像普通 OVS 网桥一样使用转发信息库 (FIB)(针对每个 dpdkvhost 用户端口使用 mac table),或者基于 OpenFlow [=14] 进行数据包流=]的内容?

关于转发管道,Open vSwitch 的 DPDK 数据路径与 Linux 内核数据路径 的工作方式相同。它实现了两级流缓存(称为 miniflow 和 megaflow 缓存),并根据慢速路径(与任何其他数据路径的慢速路径相同)中定义的流表填充它们。

因此,根据 OpenFlow 表 处理数据包 ,其中实际上可能包含 NORMAL 操作,在这种情况下,DPDK 数据路径将充当学习切换。

有关更多信息,我建议您阅读 the NSDI 2015 paper。它描述了 Open vSwitch 的缓存机制(对于 Linux 内核数据路径,但正如我所说,它与 DPDK 数据路径的原理相同)。