For Developers¶
The Developers section covers the following areas:
Describes how to build different types of VPP images
Explains how to run VPP with and without GDB, with some GDB examples
Describes the steps required to get a patch reviewed and merged
Describes the VPP software architecture and identifies the associated four VPP layers
Describes the different components that are associated with each VPP layer
Explains how to Create, Add, Enable/Disable different ARC features
Discusses different aspects of Bounded-index Extensible Hashing (bihash), and how it is used in database lookups
Describes the different types of API support and how to integrate a plugin
- Building VPP
- Running VPP
- Testing VPP
- GDB Examples
- Adding a plugin
- Add a plugin’s GO API
- Getting a Patch Reviewed
- Software Architecture
- VPPINFRA (Infrastructure)
- VLIB (Vector Processing Library)
- Init function discovery
- Node Graph Initialization
- Graph node dispatcher
- Graph dispatcher internals
- Vector Data Structure
- Scheduling Vectors
- Complications
- Next frames, next frame ownership
- dispatch_pending_node actions
- Process / thread model
- Process events
- Buffers
- Shared-memory message API
- Debug CLI
- Handing off buffers between threads
- Handoff Demo Plugin
- Packet generator input script
- Start vpp with 2 worker threads
- Enable tracing, and start the packet generator
- Sample Run
- Plugins
- VNET (VPP Network Stack)
- Feature Arcs
- Buffer Metadata
- Buffer Metadata Extensions
- Multi-architecture support
- Bounded-index Extensible Hashing (bihash)
- VPP API module
- Binary API Support
- Build System
- Event-logger
- G2 graphical event viewer
- FIB 2.0 Hierarchical, Protocol, Independent
- How to build a vpp dispatch trace aware Wireshark
- Punting Packets
- QUIC HostStack
- Cross compilation on MacOS
- Cloud NAT
- IP Security
- VPP API Language {#api_lang_doc}