2 --> Vector Packet Processing / VPP Quick Start Introduction

1. What is VPP

The full name of VPP is Vector Packet Processing. It is a commercial code developed by Cisco in 2002. VPP runs in user space and supports a variety of packet receiving methods. DPDK is commonly used. VPP has two main functions: extensible framework; mature switching/routing functions. .

On February 11, 2016, the Linux Foundation created the FD.io project. Cisco added the open source version of the VPP code to the project, which has now become the core of the project. Based on DPDK and gradually evolving, FD.io is a collection of many data plane projects and libraries. It provides a high-performance I/O server framework with flexibility, scalability, and componentization on general platforms such as x86, ARM, and PowerPC. , To welcome the next wave of networking and storage.

In short, FD.io is a software-defined infrastructure development platform that helps developers to easily implement innovative software-based data message processing solutions, including design and development of high throughput, low latency, and efficient use of resources. application. And shield the difference of CPU architecture and operating environment for these innovative applications, which can run on bare metal, virtual machine and container of x86, ARM and PowerPC general platform.
The typical architecture of VPP applications is as follows:
Insert picture description here
FD.io uses DPDK features to incubate many projects and libraries, such as: NSH_SFC, Honeycomb and ONE. In addition, FD.io also actively promotes integration with other key open source projects to support NFV and SDN, currently integrated open source projects include k8s, ONAP, OpenStack and OpenDayLight.

The network ecology of FD.io is as follows:
Insert picture description here
VPP is a highly modular and extensible software framework. Newly developed functional modules can be easily integrated into VPP without affecting the underlying code framework of VPP. The VPP platform can be used to build any type of data message processing application, such as load balancing, firewall, IDS, or the infrastructure of progressive protocol stacks. In addition, you can also create a combination of applications, for example, add load balancing to the vSwitch. VPP runs in user space, which means that VPP gaps do not require changes to the Linux Kernel code.

With the support of DPDK's polling mode driver PMD and ring buffer, VPP puts interrupts on optimized software and hardware interfaces, aiming to increase forwarding plane throughput by reducing the number of misses in the data flow/forwarding table cache , At the same time, use parallel mode to replace standard innovative data message processing.

VPP has rich basic functions:
Insert picture description here

2. VPP software framework
VPP software modules are as follows:
Insert picture description hereVPP INFRA Infrastructure layer
INFRA protects the source code of the core library, is a collection of a series of basic C service libraries, and provides high-performance data structures, such as: Vector, Rings, Hashing , Timers, Bitmaps, Pools, Hashes and some basic library functions.

VLIB vector processing library layer
VLIB is a vector processing library that provides processing functions for Vector and provides various management functions for Application, including Buffers management, Graph Node management, multi-thread support, packet tracking, counters and other functions. Realize the debug CLI function.

Plugins gap App layer
VPP has a rich set of data plane gaps built in, and it is also very simple to create a custom Plugin plug-in in VPP.

Reference link:
https://fd.io/documentation/
https://wiki.fd.io/view/Main_Page

Guess you like

Origin blog.csdn.net/weixin_38387929/article/details/115055804