How fdio/vpp works
VPP is a modular, high-performance packet-processing platform providing switch/router functionality. A typical operator or application configures it through its CLI or API; VPP applies that state while processing packets through its networking runtime and hardware interfaces. The map preserves major runtime, protocol, crypto, plugin, and client-facing capabilities visible in the tree. Several core links are dashed because the sampled excerpts do not show their runtime wiring; README-level product descriptions support the overall role, not specific call paths.
Main entry points: vnet/main.c VPP application · pipeline.h VNET networking · api_helper_macros.h VPP API · vlib/main.c VLIB runtime
Components 19
Runtime
- VPP application
src/vpp/vnet/main.c - VLIB runtime
src/vlib/main.c - Shared memory
src/svm/fifo_segment.c - Session layer
src/vnet/session/application.c
Networking
- VNET networking
src/vnet/pipeline.h - Device drivers
src/drivers - Crypto engines
src/vnet/crypto/main.c
Extensions
- VPP plugins
src/plugins - IPsec engines
src/crypto_engines - Snort integration
src/plugins/snort/main.c
APIs and Clients
- VPP API
src/vlibapi/api_helper_macros.h - C API client
src/vpp-api/client/client.c - Python API
src/vpp-api/python/vpp_papi/vpp_papi.py - API test client
src/vat/main.c - JSON API client
src/vat2/main.c - Memif client library
extras/libmemif/src/main.c - Metrics exporter
src/vpp/app/vpp_prometheus_push.c
Other components
- Operator
- Packet forwarding
Connections 19
- Operator → VPP application: configures
- Operator → C API client: uses API
- Operator → API test client: runs commands
src/vat/main.c - C API client → VPP API: sends requests
src/vpp-api/client/client.c - Python API → VPP API: sends requests
- API test client → VPP API: executes commands
src/vat/main.c - JSON API client → VPP API: executes JSON
src/vat2/main.c - VPP application → VLIB runtime: runs on
- VLIB runtime → Shared memory: uses segments
- VPP application → VNET networking: hosts packet processing
- VNET networking → Device drivers: uses interfaces
- VNET networking → VPP plugins: extends features
- VNET networking → Crypto engines: uses crypto
- Crypto engines → IPsec engines: loads engines
- VPP plugins → Snort integration: includes integration
- VPP application → Session layer: hosts sessions
- Memif client library → Shared memory: exchanges packets
- VPP application → Metrics exporter: exports metrics
- VNET networking → Packet forwarding: forwards packets