Designs can be deployed with multiple instances in parallel and multiple instances in series to support capabilities such as multi-level parsing and multi-data-pipeline systems. The flexible user metadata structure allows information to be passed between P4 instances to support this. There are several reasons to do this:
- To achieve higher total line rate processing or total packet rate
- To optimize more complex parts of the design that do not require high data rates or increased packet rates
- To create a more modular system, restricting the size of each P4 program. Modularity is also a re-use benefit.
Figure 1. Multi-stage Ingress and Egress Pipelines

Figure 2. 4x100G Pipelines
