
The implementation is on a local on a box or container. This approach takes advantage of using a shared memory/message queue.

For example, it is reasonable to expect performance yields of 500k routes/second. This approach offers a complete, feature rich solution that is simple yet high performance. The communication would occur through a low level API. One approach is to implement a VPP application to communicate with an external application within a local environment (Linux host or container). For more in depth descriptions about other possible use cases, see the list of Use Cases. The following section describes examples of possible implementations that can be created with the VPP platform. One of the use cases for the VPP platform is to implement it as a virtual switch or router. As processing of packets continues, the circuit time reaches a stable equilibrium based on the offered load.Īs the vector size increases, processing cost per packet decreases because you are amortizing the I-cache misses over a larger N.Įxample Use Case: VPP as a vSwitch/vRouter The "circuit" is the cycle of grabbing all available packets from the device RX ring, forming a "frame" (vector) that consists of packet indices in RX order, running the packets through a directed graph of nodes, and returning to the RX ring. This approach fixes the issues related to stack depth / D-cache misses on stack addresses. It also mitigates the dependent read latency problem (pre-fetching eliminates the latency). One of the benefits of the vector approach is that it fixes the I-cache thrashing problem.

That process then does one of 3 things: punt, drop, or rewrite/forward the packet. return return return from the nested calls. That older, traditional approach entails processing an interrupt, and traversing the call stack (a calls b calls c. Scalar packet processing refers to the processing of one packet at a time. IRB – BVI Support with RouterMac assignmentĪs the name implies, VPP uses vector processing as opposed to scalar processing.
IPTABLES NETMAP EXAMPLE MAC
Mac Learning – default limit of 50k addressesīridging – Split-horizon group support/EFP Filtering L2 forwarding with EFP/BridgeDomain concepts The following is a summary of the features the VPP platform provides:

Fast lookup tables for routes, bridge entries.
IPTABLES NETMAP EXAMPLE FULL
The full suite of graph nodes allows a wide variety of network appliance workloads to be built. Through the creation of a plugin, anyone can extend functionality with:
IPTABLES NETMAP EXAMPLE CODE
This means that plugins do not require changing core code - you can extend the capabilities of the packet processing engine without the need to change code running at the kernel level. For example, you could add load balancing to a vSwitch. You could also create a combination of applications. It can be used as the basis for a Load Balancer, a Firewall, an IDS, or a Host Stack. The VPP platform can be used to build any kind of packet processing application. A plugin can be installed by adding it to a plugin directory. You can also build a plugin independently of the VPP source tree - which means you can treat it as an independent component. It also makes it relatively easy to rewire existing graph nodes.Ī plugin can introduce new graph nodes or rearrange the packet processing graph. This makes it easy to introduce new graph nodes. A packet processing graph is applied, node by node (including plugins) to the entire packet vector. How does the plugin come into play? At runtime, the VPP platform grabs all available packets from RX rings to form a vector of packets.
