OVS流表网卡加速
OVS流表网卡加速(基于Mellanox)
OVS流表网卡加速,基于Mellanox ConnectX-5智能网卡,适用于内核态OVS流表卸载加速,支持网卡SR-IOV模式。OVS流表硬件卸载采用一种将流表从Open vSwitch卸载到网卡,通过网卡查找转发,然后直接在虚拟机中收和发报文的处理方式,该方案充分利用硬件转发能力,大大提升了报文的查找和转发速率,从而提升了网络性能。
基于Mellanox的OVS流表网卡加速框架如图1所示,其架构和组件说明详见OVS流表归一化。
开源OVS非卸载模式下,报文从网卡接收后,先经过内核协议栈处理,然后在OVS软件查找流表后转发给VM。卸载模式下,网卡收包后,直接在网卡里查找卸载后的流表,查表后报文通过SR-IOV设备给到VM,大大缩短了转发路径,且充分利用了网卡硬件资源进行流表查找,从而释放了CPU资源。
Mellanox ConnectX-5智能网卡除了基本的报文收发功能外,另外提供流表的存储,转发等功能。
- 存储从软件卸载下来的流表,并提供流表管理功能。
- 查找流表,根据流表规则将报文转发给对应的VF,VM通过直接收取来自智能网卡的消息进行通信。
- 若无法查找到能匹配的流表,则将报文上送内核处理,完成匹配后再将匹配到的流表卸载到网卡。
OVS流表网卡加速(基于SP680智能网卡)
不同于Mellanox的OVS流表网卡加速方案,SP680智能网卡OVS流表网卡加速使用DPDK和OVS软件框架,适用于用户态OVS流表卸载加速,支持网卡VirtIO
SP680智能网卡OVS流表网卡加速解决方案框架如图2所示。
网卡接收数据首包报文后,将报文通过DPDK交由OVS处理,OVS生成流表,并将生成的流表交给libdpak_ovs,libdpak_ovs将OVS原生流表转化为SP680智能网卡支持的精确流表,并通过用户态驱动卸载到硬件上。对于后续报文,SP680智能网卡可以直接根据卸载的精确流表进行转发,无需上送至OVS进行查找。