Comparison of OVS and OVS-DPDK

OVS currently has two prominent architectures, one is the native OVS architecture (using the kernel as the datapath), and the other is the DPDK-based architecture (using the user space as the datapath).

Native OVS

The native OVS architecture is shown below, which mainly includes two components:

  • openvswitch.ko : Responsible for fast path data forwarding in kernel mode. Forwarding is done by flow table, each flow table contains many matching items (match fields) and corresponding actions (actions)

    • match fields : defines the header fields that can identify a packet

    • actions : defines the actions that can operate on this data packet, such as adding or removing VLAN tags, modifying a certain header field of the data packet, and controlling the entry and exit of data packets from ports, etc.

  • ovs-vswitchd : Responsible for data forwarding of the slow path in user mode.

    • ofproto : implements an OpenFlow switch

    • netdev : an abstract interface layer for interacting with network devices (both physical and virtual)

    • dpif : implementation of user space data forwarding path

OVS-DPDK

The DPDK-based OVS architecture is shown below, and the modules in the dark part are the modules related to the introduction of DPDK.

  • dpif-netdev : The implementation of the fast path in user space, it implements dpif  the module API, can directly operate netdevthe device, can realize the fast processing of data packets in the user space, and reduce the switching overhead with the kernel space.

  • ofproto-dpif : implements ofprotothe module API to directly manipulate dpifthe layer.

  • netdev-dpdk : use the DPDK library to implement netdevthe module API, providing various types of interfaces, as follows:

    • Physical ports(PMDs) : Ports implemented using vfioorigb_uio

    • virtio / librte_vhost_ vhost-user_ vhost-cuse_ vhost is proven to be a fast, secure, standard set of interfaces for VM communication.

    • dpdkr : Use to librte_ringimplement, users can create dpdk-ringports based on this port type to complete data forwarding in user space, it can realize fast zero-copy communication with VM (using IVSHMEM or other inter-process communication methods)

       

Performance comparison of the two architectures

So which of these two architectures has better performance, needless to say, of course it is OVS-DPDK, we use data to speak, see the following performance report made by Intel (the time is 2015, but it is also informative).

The first is the experimental environment parameters:

Then look at the experimental topology diagram, including physical-to-physicaland physical-to-virtual-to-physicalTwo topologies:

Finally, let's look at the performance comparison:

Also includes physical-to-physicaland physical-to-virtual-to-physicaltwo scenarios:

It can be seen that in the P2P scenario, the performance of OVS-DPDK is almost 12 times higher than that of native OVS.

For the PVP scenario, we add single-core and multi-core experimental observations. In the case of single-core, OVS-DPDK is 7 times faster than native OVS, and in the case of dual-core, it is nearly 13 times faster.

DPDK-based VNF uses OVS as the data plane

The VNF architecture based on OVS-DPDK is shown in the following figure:

DPDK not only accelerates the OVS data plane, but also accelerates VNF applications. This solution is implemented in the form of pure software, which is programmable and flexible. The participation of DPDK also greatly improves the performance, which is basically comparable to the form of pure hardware.

Original link: https://mp.weixin.qq.com/s/We-1j7WZgyu9vHp9UBQVYg

[Article Benefits]: The editor has sorted out some learning books and video materials that I personally think are better and shared them in the Junyang file. You can add them yourself if you need them! ~Click 909332607 to join (requires self-collection)
(information includes: Dpdk/network protocol stack/vpp/OvS/DDos/NFV/virtualization, tcp/ip, plugin, feature, flexible array, golang, mysql, linux, Redis, CDN etc.), free sharing~
Dpdk/network protocol stack/vpp/OvS/DDos/NFV/virtualization/high performance expert learning address : https://ke.qq.com/course/506620

Guess you like

Origin blog.csdn.net/weixin_60043341/article/details/127906019