First, Brief introduction
VPP full name vector Packet processing. It is a commercial code developed by Cisco2002 years.
February 11, 2016, the Linux Foundation created the Fd.io project. Cisco joins the open source version number of the VPP code to the project. It is now at the heart of the project.
VPP is implemented in user space, supports multiple ways of receiving, and often uses 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 Gpragh node that arranges the packet again through the form of a plugin. Add plug-ins to the Plugins folder, and when you execute the program, you load the plug-in yourself.
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 whatever types of packet processing applications. For example, load balancing, firewalls, IDS, host stacks. can also be a combination, for example, to add a vswitch to load balancing.
By creating a plug-in. The ability to arbitrarily extend such functions as:
??????? Define a new diagram node yourself
??????? Once again, arrange the graph nodes.
??????? Join the underlying API
Add plugins such as what you see:
2. Programmable ability
VPP also provides high-performance internal APIs based on shared memory or Message Queuing. The VPP platform now supports the internal API bindings for C and Javaclient.
So, for example, we're done. An external application operates 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 method, no matter who can join, but need external API and data Plane Management agent match. VPP applications to achieve specific needs.
Display Agent docking VPP and external programs:
Case Honeycomb Agent:
Honeycombagent published 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. and Opendaylight supports OpenStack Neutron. So for example, the OpenStack neutron that you see can be integrated into VPP:
Third, network function 1, network characteristics
VPP has network features such as the following:
??????? High-speed Lookup routing table, Cam table
??????? Random N-Tuple classification
??????? Commercial-grade switching/routing capabilities
?
All the features that VPP can provide such as the following:
2. Network performance
Multi-core Benchmark Performance sample (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 figures 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
Cisco VPP (1) Brief introduction