This section provides a brief description of the Ligato plugins. For more information on each plugin, click details.
KV Scheduler Plugin#
Core plugin that works with SB VPP and Linux agents, and NB KV data stores and rpc clients. It manages configuration item dependencies, and computes the correct VPP configuration item programming sequence.
VPP plugins allow you to manage and control the VPP data plane.
- Access Control List (ACL)
- ACL-based forwarding (ABF)
- Segment Routing
Use this plugin for communication between the VPP agent and the VPP data plane using GoVPP. This plugin serves as the VPP agent’s G0VPP wrapper, and provides access to VPP through an independent communication channel using a shared memory segment prefix, or socket client. It supports custom prefixes to connect to the correct VPP instance in a multi-VPP environment.
Use this plugin to configure VPP interfaces. You can configure base fields including IP and MAC address, and more advanced features such as unnumbered interfaces or RX-mode.
Use this plugin to program bridge domains, L2 forwarding tables (FIBs), and VPP cross connects. Dependent on the interface plugin.
Use this plugin to program L3 ARP entries, proxy ARP, VPP routes, IP scan neighbor, VRFs, tunnel endpoint base entries, L3 cross connects, and VRRP. Dependent on the interface plugin.
Use this plugin to program VPP access control lists (ACL). If incoming traffic meets the ACL rules, VPP will perform the configured action on the packets.
ACL-based forwarding (ABF)#
Use this plugin to program ACL-based forwarding rules. Performs policy-based routing (PBR) where ACL matches determine packet forwarding.
Use this plugin to implement VPP IPFIX monitoring and flow export.
Use this plugin to program VPP security policy databases (SPD), and security associations (SA). It handles relationships between the SPD and SA, or between SPD and an assigned interface.
The IPsec plugin does not configure deprecated IPSec tunnel interfaces. For more details, see VPP interface plugin.
Use this plugin to program VPP NAT. It provides a control plane function for the VPP NAT44 data plane. This plugin also supports DNAT44 with load balancing for optimized resource efficiency in K8s network clusters. Dependent on the interface plugin.
Use this plugin to access the VPP punt feature. Incoming VPP traffic matching a set of pre-defined rules is punted, or redirected, to the host stack or socket.
Use this plugin to program VPP segment routing IPv6 (SRv6).
Use this plugin to implement the VPP STN (Steal the NIC) control plane.
Use this plugin to collect VPP telemetry stats for export to external monitoring and management tools.
Use this plugin to program VPP wireguard VPN tunnels.
This section describes the VPP agent’s Linux plugins. You can use these plugins independently, or together with VPP plugins.
- Linux interface
- Linux L3
- IP Tables
Use this plugin to program Linux interfaces. Interface types include VETH, TAP, loopback, existing, VRF, and dummy.
Use this plugin to program Linux routes and ARP entries. Dependent on the Linux interface plugin.
Use this plugin to program Linux IPtables.
Use this plugin to provide a helper function tied in with the Linux interface and l3 plugins. It manages Linux namespaces, or as a microservice in container-based environment.
Use this plugin to implement the Linux punt-to-host function.
VPP agent connection plugins enable external data read/write without the use of a data store.
Use this plugin to implement REST API support for a plugin or agent.
Use this plugin to enable VPP agent gRPC communications.
Ligato provides plugins for external data store connectivity and integration.
- Data Broker
Use this plugin to define data synchronization abstractions between your app plugins and different backend data sources such as data stores, message buses, or rpc-connected clients.
Use this plugin as a common API abstraction for client access to KV data stores and sql databases.
Use this plugin for access to an etcd data store.
Use this plugin for access to a Redis KV data store.
Use this plugin for access to a consul KV data store.
Use this plugin for access to a Bolt data store.
Use this plugin for access to a Cassandra MYSQL data store.
Use this plugin to access the OS file system serving as an KV data store.
Ligato provides infra plugins for logging, messaging, process management, status checking and service label.
- Status Check
- Index Map
- Log Manager
- Process Manager
- Service Label
Use this plugin to perform operations on the VPP agent configuration.
Use this plugin to synchronize retrieved data from multiple sources, resolve conflicts, and convey configuration data to the KV Scheduler. The orchestrator reads/watches for config updates from NB clients, and communicates config status, running state, metadata, and metrics for NB client consumption.
Details: Status Check plugin
Use this plugin to monitor agent status by collecting and aggregating partial status of VPP agent plugins.
Index Map plugin#
Details: Index Map plugin
Use this plugin to employ a mapping structure that supports configuration item change notifications and retrieval by fields in the value structure.
Details: Log Manager plugin
Use this plugin to manage global and per-logger log levels.
Details: Messaging/Kafka plugin
Use this plugin so agents can publish synchronous/asynchronous messages, and consume selected topics.
Details: Process Manager plugin
Use this plugin to create a process instance that manages and monitors plugins.
Details: Service Label plugin
Use this plugin with other plugins to obtain the microservice label string that identifies a particular VPP instance.