First, Introduction
The VPP full name Vector Packet processing, is the commercial code developed by Cisco2002 years.
February 11, 2016, the Linux Foundation created the Fd.io project. Cisco has joined the open source version of VPP code to the project and is now at the heart of the project.
VPP runs in user space and supports a variety of ways to receive packets, often DPDK.
VPP has two main functions: the framework can be extended, and the mature switching/routing function.
Second, the expansion of 1, node operation
The VPP platform is a series of data packets processed by Graphnode, similar to the netgraph of FreeBSD.
Introduce new graph node or rearrange the packet's Gpragh node in the form of a plugin. Add the plugin to the plugin directory, and the plugin will be loaded automatically when the program is run. In addition, the plug-in can also be accelerated by a node directly connected hardware according to the hardware situation.
The VPP platform can be used to build any type of packet processing application. such as load balancing, firewalls, IDS, host stacks. It can also be a combination, such as adding a vswitch to the load balancer.
By creating a plugin, you can expand any of the following features:
? Customizing new map Nodes
? Rearrange diagram nodes
? Add the underlying API
Add the plug-in as shown:
2. Programmable ability
VPP also provides high-performance internal APIs based on shared memory or Message Queuing. The VPP platform currently supports internal API bindings for C and Java clients.
As a result, we complete an external application to operate on VPP:
The above programming capability is called for internal APIs, and can also support remote programmability.
Remote programmability can be achieved through the data Plane Management agent.
Communicates with the data Plane Management agent through an external API. The Data Plane Management agent communicates with the VPP application (engine) through an internal API.
This is a very flexible approach that anyone can add, but requires an external API and a data Plane Management agent to match the VPP application to meet the specific needs.
Display Agent docking VPP and external programs:
Case Honeycomb Agent:
Honeycombagent released the VPP function of the Yang model through netconf and restconf. Controllers such as Opendaylight that support Netconf/yang can mount Honeycomb management agents to work. The opendaylight supports OpenStack Neutron, so the OpenStack Neutron as shown can be integrated into VPP:
Third, network function 1, network characteristics
VPP has the following network features:
? Quick Find routing table, Cam table
? Arbitrary n-Tuple classification
? Commercial-grade switching/routing capabilities
All the functions that VPP can provide are as follows:
2. Network performance
Multi-Core Benchmark Performance example (ucs-c240 M3, 3.5gHz, all memory channel forwarding IPv4):
? 1 Core:9 MPPS In+out
? 2 cores:13.4 MPPS In+out
? 4 cores:20.0 MPPS In+out
The following graphs show the performance comparison with OVS+DPDK:
is tested on the E5-2698v3 2x16c 2.3GHz of the Haswell x86 architecture, which shows a 12-port 10ge,16 Core, IPv4 forwarding:
Data from: https://fd.io/
Welcome to VPP Discussion Group: 417538415
Introduction to Cisco VPP