Headline
CVE-2022-46397: What is the Vector Packet Processor (VPP) — The Vector Packet Processor v23.02-0-g5516fc0f3 documentation
FP.io VPP (Vector Packet Processor) 22.10, 22.06, 22.02, 21.10, 21.06, 21.01, 20.09, 20.05, 20.01, 19.08, and 19.04 Generates a Predictable IV with CBC Mode.
The Vector Packet Processor
FD.io’s Vector Packet Processor (VPP) is a fast, scalable layer 2-4 multi-platform network stack. It runs in Linux Userspace on multiple architectures including x86, ARM, and Power architectures.
VPP’s high performance network stack is quickly becoming the network stack of choice for applications around the world.
VPP is continually being enhanced through the extensive use of plugins. The Data Plane Development Kit (DPDK) is a great example of this. It provides some important features and drivers for VPP.
VPP supports integration with OpenStack and Kubernetes. Network management features include configuration, counters, sampling and more. For developers, VPP includes high-performance event-logging, and multiple kinds of packet tracing. Development debug images include complete symbol tables, and extensive consistency checking.
Some VPP Use-cases include vSwitches, vRouters, Gateways, Firewalls and Load-Balancers, to name a few.
For more details click on the links below or press next.
About VPP
- Scalar vs Vector packet processing
- The Packet Processing Graph
- Network Stack Features
- Host Stack
- Additional features
- Supported archs and OS
- Performance
- Release notes
- VPP Supported Features
Use Cases
- VPP with Containers
- VPP with Iperf3 and TRex
- VPP in the Cloud
- VPP with Virtual Machines
- VPP with VMware/Vmxnet3
- VPP as a Home Gateway
- Access Control Lists with VPP
- Generating traffic with VPP
- Web applications with VPP
- Simulating networks with VPP
- Stateless Traffic Gen with VPP
- IKEv2 with VPP
- VPP in kubernetes (Contiv/Deprecated)
- VPP Container Test Bench
Getting started
- Downloading and Installing VPP
- Installing on Ubuntu / Debian OS Distros
- Package Descriptions
- Running VPP
- Usergroup
- Systemd File vpp.service
- Huge Pages
- Progressive VPP Tutorial
- Setting up your environment
- Running VPP
- Creating an Interface
- Using the trace command
- Connecting Two FD.io VPP Instances
- Routing
- Switching
- Troubleshooting
- CPU Load/Usage
- Google Sanitizers
- Memory leaks
Developer Documentation
- Build, Run & Debug
- Building VPP
- Running VPP
- Testing VPP
- GDB Examples
- Cross compilation on MacOS
- Core Architecture
- Software Architecture
- VPPINFRA (Infrastructure)
- VLIB (Vector Processing Library)
- VNET (VPP Network Stack)
- Feature Arcs
- Buffer Metadata
- Multi-architecture support
- Bounded-index Extensible Hashing (bihash)
- Build System
- VPP mem preload
- Multi-threading in VPP
- Core Features
- The FIB
- Segment routing
- Punting Packets
- IPSec (IP Security)
- BFD module
- IP Reassembly
- IPFIX support
- Switched Port Analyzer
- MTU in VPP
- Generic Segmentation Offload
- Syslog protocol support
- Event-logger
- Statistics
- SELinux - VPP Custom SELinux Policy
- Policing
- Adding a new plugin or feature
- Adding a plugin
- Sample plugin for VPP
- Handoff queue in a plugin
- Plugins
- QUIC HostStack
- Cloud NAT
- Linux Control Plane Integration
- SRv6 Plugins
- Marvell device plugin
- LLDP Protocol
- Stateful NAT64
- Active-Passive NAT HA
- NAT44-ED: NAT44 Endpoint Dependent
- PNAT 1:1 match & rewrite NAT
- Load Balancer plugin
- LACP Protocol
- IPFIX flow record plugin
- MAP and Lw4o6
- Buffer metadata change tracker
- DHCPv6 prefix delegation
- Inband OAM (iOAM)
- Wireguard vpp-plugin
- SRTP Protocol
- Multicore support for ACL plugin
- ACL plugin constant-time lookup
- ACL Lookup contexts
- Buffers monitoring plugin
- Device drivers
- Intel AVF device driver
- RDMA (ibverb) device driver
- VMWARE vmxnet3 device driver
- AF_XDP device driver
- VPP Test Framework
- Overview
- Anatomy of a test case
- Logging
- Parallel test execution
- Test temporary directory and VPP life cycle
- Virtual environment
- Naming conventions
- Automatically generated addresses
- Packet flow in the VPP Test Framework
- Test framework objects
- How VPP APIs/CLIs are called
- Utility methods
- Example: how to add a new test
- VPP extra tools
- Code coverage with lcov
- VPP Snap Build
- Strongswan Testing Tool
- VPP configuration utility
- VPP interface stats client
- VPP stats segment FUSE filesystem
- VPP Top Installation
- LD_PRELOAD the VCL
- Host stack test framework
Interfacing with VPP
- The binary API
- VPP API module
- VPP API Language
- Writing API handlers
- C api client
- C++ api client
- Go api (govpp)
- Components involved
- Getting started
- Launch VPP
- Connecting to VPP
- Rust api client
- Memif library (libmemif)
- Shared Memory Packet Interface (memif) Library
- Build Instructions
- Getting started
- Libmemif Examples
Contributing
- Getting a Patch Reviewed
- Setup
- Clone with ssh
- Git Review
- Writing VPP Documentation
- Building the docs
- View the results
- Writing Docs and merging
- Reporting Bugs
- Data to include in bug reports
- Capturing post-mortem data
- Core files from Private Images
Debug CLI
- Getting Started with the debug CLI
- Debug and Telnet CLI
- CLI features
- Interface Commands
- Basic Interface Commands
- Hardware-Interfaces Commands
- Create Interfaces Commands
- Set Interface Commands
- Reference
- ARP and Loopback CLI
- Circular Journal
- Command line session
- DPDK Crypto
- DPDK and pcap tx
- Host Interface
- Image Version Information
- Init functions
- Interface
- Layer 2 CLI
- Layer 3 IP CLI
- Network Delay Simulator
- Static HTTP Server
- Unix Interface
- VLIB application library
- VXLAN CLI
- VXLAN-GBP CLI
- Perfmon cli reference
- Gbp cli reference
- L2e cli reference
- netmap
- Abf cli reference
- Acl cli reference
- Adl cli reference
- Af_xdp cli reference
- Arping cli reference
- Avf cli reference
- Bufmon cli reference
- Builtinurl cli reference
- Cdp cli reference
- Cnat cli reference
- Crypto_sw_scheduler cli reference
- Ct6 cli reference
- Dhcp cli reference
- Dispatch-trace cli reference
- Dns cli reference
- Cryptodev cli reference
- Flowprobe cli reference
- Geneve cli reference
- Gtpu cli reference
- Hs_apps cli reference
- Igmp cli reference
- Ikev2 cli reference
- Ila cli reference
- Ip6 cli reference
- Encap cli reference
- Export cli reference
- Export-vxlan-gpe cli reference
- Ip6 cli reference
- Lib-pot cli reference
- Lib-trace cli reference
- Lib-vxlan-gpe cli reference
- Udp-ping cli reference
- L2tp cli reference
- L3xc cli reference
- Lacp cli reference
- Lb cli reference
- Linux-cp cli reference
- Test cli reference
- Lisp-cp cli reference
- Lisp-gpe cli reference
- Test cli reference
- Lldp cli reference
- Mactime cli reference
- Map cli reference
- Pp2 cli reference
- Mdata cli reference
- Memif cli reference
- Mss_clamp cli reference
- Det44 cli reference
- Dslite cli reference
- Nat44-ed cli reference
- Nat44-ei cli reference
- Nat64 cli reference
- Nat66 cli reference
- Pnat cli reference
- Nsh cli reference
- Nsh-md2-ioam cli reference
- Export-nsh-md2-ioam cli reference
- Oddbuf cli reference
- Perfmon cli reference
- Ping cli reference
- Pppoe cli reference
- Prom cli reference
- Quic cli reference
- Rdma cli reference
- Snort cli reference
- Stn cli reference
- Svs cli reference
- Tlsopenssl cli reference
- Tracedump cli reference
- Unittest cli reference
- Urpf cli reference
- Vhost cli reference
- Vmxnet3 cli reference
- Vrrp cli reference
- Wireguard cli reference
- Dma cli reference
- Pci cli reference
- Stats cli reference
- Vlibapi cli reference
- Vlibmemory cli reference
- Adj cli reference
- Arp cli reference
- Bfd cli reference
- Bier cli reference
- Bonding cli reference
- Classify cli reference
- Crypto cli reference
- Pipe cli reference
- Tap cli reference
- Dpo cli reference
- Feature cli reference
- Fib cli reference
- Flow cli reference
- Gre cli reference
- Gso cli reference
- Hash cli reference
- Interface cli reference
- Ip-neighbor cli reference
- Reass cli reference
- Ip6-nd cli reference
- Ipfix-export cli reference
- Ipip cli reference
- Ipsec cli reference
- Lawful-intercept cli reference
- Mfib cli reference
- Mpls cli reference
- Pg cli reference
- Policer cli reference
- Qos cli reference
- Session cli reference
- Span cli reference
- Srmpls cli reference
- Srv6 cli reference
- Syslog cli reference
- Tcp cli reference
- Teib cli reference
- Udp cli reference
- Unix cli reference
- Vxlan-gpe cli reference
- Api cli reference
- App cli reference
- Vnet cli reference
- vHost User
Configuration file
- Getting started with the configuration
- Command-line Arguments
- Configuration File (startup.conf)
- Configuration Reference
- The unix section
- The api-trace Section
- The api-segment Section
- The socksvr Section
- The cpu Section
- The buffers Section
- The dpdk Section
- The plugins Section
- Some Advanced Parameters:
- acl-plugin Section
- api-queue Section
- cj Section
- dns Section
- ethernet Section
- heapsize Section
- ip Section
- ip6 Section
- l2learn Section
- l2tp Section
- logging Section
- mactime Section
- “map” Parameters
- nat Section
- oam Section
- physmem Section
- tapcli Section
- tcp Section
- tls Section
- tuntap Section
- vhost-user Section
- vlib Section
About this documentation
VPP Version : 23.02-release Built on : 02 March 2023