Open vSwitch硬件卸载
本文主要介绍OvS的硬件卸载方案
1 硬件卸载分类
因为OvS分为传统的OvS和基于DPDk的OvS,所以OvS卸载到硬件也有两类:
- 内核态的datapath通过TC-Flower卸载到硬件上
- 用户态的DPDK通过rte_flow卸载到硬件上

本文只讨论基于TC-Flower的硬件卸载方案,基本框架如下图所示。Open vSwitch在2018年增加了对TC Flower的支持,OvS的datapath可以卸载到网卡,Flower规则可以下发到网卡的虚机交换机上。
OvS初始化的时候,会向网卡的虚机交换机下发一条默认的规则,如果网络包匹配不了任何其他规则,则会被这条默认规则匹配。这条规则的action就是将网络数据包送到虚机交换机的管理主机,也就是说送到了位于Linux kernel的datapath上。如果这个网络数据包是首包的话,在Kernel的datapath会继续上送到位于用户空间的ovs-vswitchd。因为ovs-vswitchd中有OpenFlow规则,ovs-vswitchd还是可以完成转发。同时ovs-vswitchd通过TC接口将flow规则下发至硬件。这样,同一个数据流的后继报文,可以直接在网卡的虚机交换机中完成转发。

2 各厂商硬件卸载方案
2.1 Intel

2.2 Xilinx

2.3 Corigine

2.4 Mellanox

文章介绍了OpenvSwitch的硬件卸载技术,特别是通过TC-Flower在内核态将数据路径卸载到硬件网卡,以及各大厂商如Intel、Xilinx、Corigine和Mellanox的特定解决方案。OvS利用TC-Flower支持在网卡虚拟交换机上执行规则,提高性能,而DPDK则通过rte_flow实现用户态的卸载。
1929

被折叠的 条评论
为什么被折叠?



