Honeycomb Architecture
Honeycomb is a management agent designed for generic, model-driven management tasks utilizing existing Opendaylight components and tools. It consists of data processing and translation layers, with a focus on supporting configuration and operational data processing efficiently. The architecture is split into two layers, each performing specific functions to handle configuration updates and operational state from VPP. This detailed overview delves into the core components and APIs of Honeycomb, showcasing its capabilities in handling heavy lifting tasks and data processing with extensible features.
Uploaded on Mar 18, 2025 | 0 Views
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Honeycomb Honeycomb A management agent Honeycomb version: 1.16.9 Author: Maros Marsalek (Honeycomb PTL)
What is Honeycomb? What is Honeycomb? A generic, model driven(YANG) management agent Northbound interfaces: RESTCONF NETCONF Generic data processing layer to do the heavy lifting (e.g. transaction management, validation) Extensible, pluggable translation layer to handle resulting data in any way
Building on existing components Building on existing components Utilizing existing Opendaylight components and tools: Yangtools Md-sal Netconf Restconf Wired into a special data processing pipeline Running in a JVM
Honeycomb and VPP Honeycomb and VPP Primary use case for HC Bare Metal/ VM/Container VPP s low level, high performance, shared memory APIs Exposed as high level NETCONF/YANG or RESTCONF APIs Easily consumable by e.g. Opendaylight controller Data Plane Management Agent Data Plane Packet Processing More information on HC + VPP: https://fd.io/technology
Honeycomb architecture Honeycomb architecture Honeycomb components and their APIs HC core functionality is split into 2 layers: 1) Data processing layer Pipeline processing data from northbound interfaces down to translation layer 2) Translation layer Invoked by above layer to handle configuration updates or when polling operational state from VPP Specific translation code lives in this layer in a form of extensions/plugins Next slides zoom in on each layer..
Data processing layer Data processing layer Custom data broker implementation supporting: Configuration data Read/Write User submitted configuration Stored in an instance of in memory data tree Pre-processed, validated data provided to translation layer for actual processing Operational data Read User requested state Polled from translation layer and transformed on the fly Context data Read/Write Special type of data used/produced by the translation layer Metadata required for the translation
Configuration data processing Configuration data processing Transactional write sequence on the next slide
Operational data polling Operational data polling On-demand operational read sequence on next slide
Data processing layer Data processing layer additional features additional features Persistence Configuration and context data persisted Reconciliation Ability to restore configuration from persisted data Ability to reverse-engineer configuration from current operational state in underlying layers (Honeycomb starts managing preconfigured device) Combination of the two Rollback In case of failure during configuration data processing in translation layer, previous configuration is reapplied in reverse order to get things back to normal
Translation layer Translation layer Generic and extensible registry for Honeycomb plugins Separates reader and writer trees: Readers - responsible for reading operational data subtrees Writers - responsible for writing configuration data subtrees Plugins provide just a set of readers and/or writers Readers and writers receive/provide data in BA format
Translation layer Translation layer additional features additional features Notifications Plugins are able to emit custom (YANG modeled) notifications Initializers Set of special transformers used during reconciliation to achieve the reverse engineering of current operational state into configuration in Honeycomb JSON based configuration attributes for plugins
Configuration and dependency injection Configuration and dependency injection Not relying on ODL s config subsystem Static Wiring: Using static wiring for core components with help of Google s Guice framework Using static, but configurable wiring for HC plugins Configuration parameters Using external JSON based configuration files for non-wiring configuration
Distribution Distribution Not running in OSGi or any other container Simple Java SE application with static classpath (ODL, HC infra, HC plugins, Jetty, Netty, Guice etc.) Main classloading and starting components
Distribution compared to ODL Distribution compared to ODL +Reduced footprint + HC without plugins at rest needs: <100Mb of RAM +Reduced startup times + HC with VPP plugins starts in: <10 seconds +Reduced size + HC with VPP plugins takes: <30Mb +Easy to create custom distro Not possible to reconfigure in runtime Not possible to rewire in runtime
Current release Current release 1609 First release Available as Honeycomb for VPP DEB, RPM packages Zip, tar.gz archives Available as Honeycomb dev platform Jars Zip, tar.gz archives Links at the end
1609 features 1609 features Honeycomb infrastructure Honeycomb infrastructure Config, Operational, Context data processing Persistence & Reconciliation Rollback CRUD operations on data Notifications Simple JSON plugin configuration Minimal distribution
1609 features 1609 features Honeycomb for VPP Honeycomb for VPP Basic interface management (ietf-interfaces.yang, ietf-ip.yang) Vhost user interface Tap interface Bridge domain Vxlan tunneling Vxlan GPE GRE Vlan management Classifier management L2/L3 ACL management (ietf-access-control-list.yang) LISP NSH_SFC
Developing with Honeycomb Developing with Honeycomb Available tutorials, samples, documentation, tools Developing a Honeycomb plugin + distribution https://wiki.fd.io/view/Honeycomb/Releases/1609/Developing_Honeycomb_ Plugins#Developing_generic_plugins Developing a VPP Honeycomb plugin + integration https://wiki.fd.io/view/Honeycomb/Releases/1609/Developing_Honeycomb_ Plugins#Developing_plugins_for_VPP Honeycomb plugin overview https://wiki.fd.io/view/Honeycomb/Releases/1609/Developing_Honeycomb_ Plugins#Plugin_overview
Links and pointers for Honeycomb Links and pointers for Honeycomb Wiki - https://wiki.fd.io/view/Honeycomb 1609 release notes, install/user/devel guides, samples&tutorials https://wiki.fd.io/view/Honeycomb/Releases/1609 JIRA - https://jira.fd.io/projects/HONEYCOMB Gerrit - https://gerrit.fd.io/r/#/admin/projects/honeycomb Mailing-list honeycomb-dev@lists.fd.io IRC channel - #fdio-honeycomb at freenode Virtual bridge domain application demo (ODL + HC + VPP) - https://www.youtube.com/watch?v=vs1XzOOpaCo&feature=youtu.be