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
- 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
- VPP API Language {#api_lang_doc}