This page describes the tutorials included in the Ligato documentation. Developers are the intended audience for the tutorials, but they can also be used as a learning aid for those interested in understanding how Ligato works.

For more details on the topics covered in the tutorials, consult the User Guide and Developer Guide.

What you need before working with the tutorials:

  • Familiarity with the Ligato framework. If you are working with Ligato for the first time, a great place to start is the QuickStart Guide.
  • Access to the Ligato vpp-agent and cn-infra git repositories. The code for each tutorial resides in the repository as noted in the table below.
  • Knowledge of the Go programming language. If Go is new to you, look over the Get started with Go tutorial.
  • Go installed on your local machine. The same Get started with Go tutorial explains how to install Go on your local machine.
  • VPP/ open source code. VPP is a high-performance software network function. To find out more about VPP, see
  • gRPC. To learn about gRPC, see

Each tutorial includes the following:

  • Sequence of incremental programming tasks supported by example code blocks.
  • Link to the complete tutorial code and, where possible, instructions on how to run the code.


The purpose of the code blocks is to show you possible Go programming patterns and examples for functions executed in the tutorial program. You can also inspect the code blocks to compare them against the code contained in the complete tutorial code, or your own project code.

The first tutorial will show you how to create a Ligato agent containing a HelloWorld plugin. Subsequent tutorials will cover Ligato functions that build on the first tutorial.

Tutorial Description Tutorial Code Repo
Hello World Create a plugin printing a “hello world” message to the log cn-infra
Plugin Dependencies Add dependencies to your plugin cn-infra
REST Handler Add a REST API to your plugin cn-infra
KV Data Store Interacting with an external KV data store (etcd) cn-infra
KV Scheduler Using the KV scheduler with your plugin vpp-agent
Plugin Lookup How to resolve dependencies between different plugins cn-infra
VPP Connection Using the GoVPPMux plugin with your plugin to connect to VPP vpp-agent
gRPC Handler Use plugins to create a gRPC client vpp-agent