Vector Packet Processing 102: Honeycomb & hc2vpp
What is Honeycomb?
Honeycomb is a generic, data plane management agent and provides a framework for building specialized agents. It exposes NETCONF, RESTCONF and BGP as northbound interfaces.
Honeycomb runs several, highly functional sets of APIs, based in ODL, which are used to program the VPP platform. It leverages ODL’s existing tools and integrates several of its existing components (YANG Tools, MD-SAL, NETCONF/RESTCONF…). In other words – it is a light on resources, bare bone version of OpenDaylight.
Its translation layer and data processing pipelines are classified as generic, which makes it extensible and usable not only as a VPP specific agent.
Honeycomb’s functionality can be split into two main layers:
- Data Processing layer – pipeline processing for data from Northbound interfaces, towards the Translation layer
- Translation layer – handles mainly configuration updates from data processing layer + reads and writes configuration-data
- Plugins – extend Honeycombs usability
Honeycomb mainly acts as a bridge between VPP and the actual OpenDaylight SDN Controller.
Examples of VPP x Honeycomb integrations
We’ve already showcased several use cases on our Pantheon Technologies’ YouTube channel:
- BGP in Honeycomb controlling the VPP FIB table
- Honeycomb BGP-LS based on VPP IPv6
- RESTCONF configuration of VPP as an IPsec endpoint
- VxLAN for Linux Containers with VPP and Honeycomb
- Containers integration with VPP and Honeycomb
For the purpose of integrating VPP with Honeycomb, we will further refer to the project hc2vpp, which was directly developed for VPP usage.
What is hc2vpp?
This VPP specific build is called hc2vpp, which provides an interface (somewhere between a GUI and a CLI) for VPP. It runs on the same host as the VPP instance and allows to manage it off-the-box. This project is lead by Pantheons own Michal Čmarada.
Honeycomb was created due to a need for configuring VPP via NETCONF/RESTCONF. During the time it was created, NETCONF/RESTCONF was provided by ODL. Therefore, Honeycomb is based on certain ODL tools (data-store, YANG Tools, others). ODL as such uses an enormous variety of tools. Honeycomb was created as a separate project, in order to create a smaller footprint. After its implementation, it exists as a separate server and starts these implementations from ODL.
Later on, it was decided that Honeycomb should be split into a core instance, and hc2vpp would handle VPP related parts. The split also occurred, in order to provide the possibility of creating a proprietary device control agent. hc2vpp (Honeycomb to VPP) is a configuration agent, so that configurations can be sent via NETCONF/RESTCONF. It translates the configuration to low level APIs (called Binary APIs).
Honeycomb and hc2vpp can be installed in the same way as VPP, by downloading the repositories from GitHub. You can either:
Install Honeycomb
Install hc2vpp
For more information, please refer to the hc2vpp official project site.
In the upcoming post, we will introduce you to the Ligato VPP Agent.
You can contact us at https://pantheon.tech/
Explore our Pantheon GitHub.
Watch our YouTube Channel.