Difference between revisions of "Archived-Sweetcomb"
(Created page with "{| class="wikitable" style="color:#C95000; background-color:#FFE6CD; margin-left: 10px;" align="right" border="1" |align="center"|'''{{{name}}} Facts''' |- | '''Project Lead...") |
|||
Line 1: | Line 1: | ||
− | {| | + | {{Project Facts |
− | + | |name=Honeycomb | |
− | + | |shortname=honeycomb | |
− | + | |jiraName=HONEYCOMB | |
− | ''' | + | |projectLead=Marek Gradzki |
− | ''' | + | |committers= |
− | + | * Dave Wallace | |
− | ''' | + | * Maros Marsalek |
− | ''' | + | * Marek Gradzki |
− | ''' | + | * Ed Warnicke |
− | ''' | + | * Robert Varga |
− | ''' | + | * Juraj Sloboda |
− | | | + | }} |
+ | == Intro == | ||
+ | |||
+ | Honeycomb is a generic NETCONF/RESTCONF java-based management agent and provides a framework for building specialized agents. | ||
+ | |||
+ | It uses many features and utilities from different [http://www.opendaylight.org Opendaylight (ODL)] projects (e.g. yangtools, controller, mdsal and netconf). | ||
+ | The biggest use case of honeycomb is VPP (fd.io’s Vector packet processor). Honeycomb delivers a management agent to enable integration of VPP with e.g. SDN controllers such as Opendaylight. | ||
+ | |||
+ | For VPP specific distribution of Honeycomb, please refer to [https://wiki.fd.io/view/Hc2vpp hc2vpp] project. | ||
+ | |||
+ | === Overview === | ||
+ | |||
+ | [[File:Honeycomb + VPP stack.png|frameless|Honeycomb in VPP stack]] | ||
+ | |||
+ | ==== Slides ==== | ||
+ | |||
+ | Honeycomb overview presentation from Paris FD.io 2016 event: [[File:Honeycomb overview.pptx|thumb|Honeycomb overview prepared for Paris FD.io 2016 event]] | ||
+ | |||
+ | Honeycomb 1609 overview update from fd.io Seattle summit 2016: [[File:HC 1609 overview.pptx|thumb|Slides detailing Honeycomb's goal, architecture and features as of 1609 release]] | ||
+ | |||
+ | ==== Generic nature ==== | ||
+ | |||
+ | Honeycomb provides a distribution to control VPP. However HC is developed as a generic agent that can be positioned on top of any other software/system etc. that can be controlled from Java(or some other JVM language) code. This is achieved thanks to the modularity of HC enabling any "translation plugin" such as V3PO (VPP core management translation code) to work in HC framework. | ||
+ | |||
+ | ==== Minimal distribution ==== | ||
+ | |||
+ | Honeycomb provides a minimal distribution that contains only: | ||
+ | * HC framework jars + plugin jars + dependencies from Opendaylight | ||
+ | * HC framework config files + plugin config files | ||
+ | * Runnable shell scripts | ||
+ | |||
+ | == Project Contact Name and Email == | ||
+ | * [mailto:honeycomb-dev@lists.fd.io honeycomb-dev list], | ||
+ | * [mailto:margradz@gmail.com Marek Gradzki], LF-ID: mgradzki, | ||
+ | * [mailto:mmarsale@cisco.com Maros Marsalek], LF-ID: mmarsale, | ||
+ | * [mailto:hagbard@gmail.com Ed Warnicke], LF-ID: hagbard, | ||
+ | * [mailto:dwallacelf@gmail.com Dave Wallace], LF-ID: dwallacelf | ||
+ | |||
+ | == Meeting == | ||
+ | |||
+ | [https://wiki.fd.io/view/Honeycomb/Meeting Honeycomb meeting] | ||
+ | |||
+ | == Scope == | ||
+ | |||
+ | This section is devided into 2 sections: in-scope and out-of-scope to clearly define what is developed as part of Honeycomb project and what will be just reused from other projects (or where Honeycomb relies on other projects). | ||
+ | |||
+ | '''Honeycomb project scope:''' | ||
+ | * Northbound interfaces: | ||
+ | ** [http://tools.ietf.org/html/rfc4741, Netconf] northbound interface | ||
+ | ** [https://tools.ietf.org/html/draft-ietf-netconf-restconf-05, Restconf] northbound interface | ||
+ | ** [https://www.ietf.org/rfc/rfc4271, BGP] | ||
+ | |||
+ | * Translation layer between device management and Yang based data structures | ||
+ | |||
+ | * Honeycomb distribution | ||
+ | ** Minimal distribution for Honeycomb management agent with all dependencies from ODL and their wiring | ||
+ | |||
+ | '''Out of scope:''' | ||
+ | * Yang models and translation code for VPP management | ||
+ | ** Moved to [https://wiki.fd.io/view/Hc2vpp hc2vpp] in 17.01 | ||
+ | |||
+ | * Vpp-japi | ||
+ | ** Java APIs for VPP, allowing JVM to interact with VPP is out of scope of Honeycomb project and is part of the base VPP project | ||
+ | |||
+ | * Yang parser | ||
+ | ** Available from ODL's [https://git.opendaylight.org/gerrit/#/admin/projects/yangtools, yangtools] project | ||
+ | |||
+ | * Base implementation of northbound interfaces | ||
+ | ** Base implementation of generic northbound interfaces is out of scope and will be reused from ODL's [https://git.opendaylight.org/gerrit/#/admin/projects/netconf, netconf] project | ||
+ | |||
+ | * Yang based data structures and a dedicated DataTree(storage) | ||
+ | ** Available from ODL's [https://git.opendaylight.org/gerrit/#/admin/projects/yangtools, yangtools] and [https://git.opendaylight.org/gerrit/#/admin/projects/mdsal, mdsal] projects, not necessarily the entire projects, only required parts in binary form. | ||
+ | |||
+ | * Integration/performance testing | ||
+ | ** Complex integration or performance tests are out of scope of Honeycomb project and are part of CSIT project | ||
+ | |||
+ | * Any other application based on top of Honeycomb is out of scope of this project and needs to be hosted in a dedicated project inside or outside of fd.io | ||
+ | |||
+ | == Releases == | ||
+ | |||
+ | === 18.07 - Last stable === | ||
+ | |||
+ | '''[[Honeycomb/Release_Plans/Release_Plan_18.07| Release plan]]''': | ||
+ | * Work planned for release | ||
+ | * Milestones leading to the release | ||
+ | |||
+ | [https://docs.fd.io/honeycomb/1.18.07/honeycomb-aggregator/index.html '''Documentation''']: | ||
+ | * Devel documentation | ||
+ | * Overview | ||
+ | * Details | ||
+ | * Javadocs | ||
+ | * ... for each module in Honeycomb project | ||
+ | |||
+ | [https://docs.fd.io/honeycomb/1.18.07/release-notes-aggregator/release_notes.html '''Release notes''']: | ||
+ | * New/Updated/Removed/Deprecated Features | ||
+ | * Install guide | ||
+ | * Devel guide | ||
+ | * User guide | ||
+ | |||
+ | === 18.10 - Current master === | ||
+ | |||
+ | '''[[Honeycomb/Release_Plans/Release_Plan_18.10| Release plan]]''': | ||
+ | * Work planned for release | ||
+ | * Milestones leading to the release | ||
+ | |||
+ | [https://docs.fd.io/honeycomb/1.18.10-SNAPSHOT/honeycomb-aggregator/index.html '''Documentation''']: | ||
+ | * Devel documentation | ||
+ | * Overview | ||
+ | * Details | ||
+ | * Javadocs | ||
+ | * ... for each module in Honeycomb project | ||
+ | |||
+ | [https://docs.fd.io/honeycomb/1.18.10-SNAPSHOT/release-notes-aggregator/release_notes.html '''Release notes''']: | ||
+ | * New/Updated/Removed/Deprecated Features | ||
+ | * Install guide | ||
+ | * Devel guide | ||
+ | * User guide | ||
+ | |||
+ | === Previous releases === | ||
+ | ==== 18.04 ==== | ||
+ | * '''[[Honeycomb/Release_Plans/Release_Plan_18.04| Release plan]]''': | ||
+ | * [https://docs.fd.io/honeycomb/1.18.04/release-notes-aggregator/release_notes.html '''Release notes'''] | ||
+ | * [https://docs.fd.io/honeycomb/1.18.04/honeycomb-aggregator/index.html '''Documentation''']: | ||
+ | ==== 18.01 ==== | ||
+ | * '''[[Honeycomb/Release_Plans/Release_Plan_18.01| Release plan]]''': | ||
+ | * [https://docs.fd.io/honeycomb/1.18.01/release-notes-aggregator/release_notes.html '''Release notes'''] | ||
+ | * [https://docs.fd.io/honeycomb/1.18.01/honeycomb-aggregator/index.html '''Documentation''']: | ||
+ | ==== 17.10 ==== | ||
+ | * '''[[Honeycomb/Release_Plans/Release_Plan_17.10| Release plan]]''': | ||
+ | * [https://docs.fd.io/honeycomb/1.17.10/release-notes-aggregator/release_notes.html '''Release notes'''] | ||
+ | * [https://docs.fd.io/honeycomb/1.17.10/honeycomb-aggregator/index.html '''Documentation''']: | ||
+ | ==== 17.07 ==== | ||
+ | * '''[[Honeycomb/Release_Plans/Release_Plan_17.07| Release plan]]''': | ||
+ | * [https://docs.fd.io/honeycomb/1.17.07/release-notes-aggregator/release_notes.html '''Release notes'''] | ||
+ | * [https://docs.fd.io/honeycomb/1.17.07/honeycomb-aggregator/index.html '''Documentation''']: | ||
+ | ==== 17.04 ==== | ||
+ | * '''[[Honeycomb/Release_Plans/Release_Plan_17.04| Release plan]]''': | ||
+ | * [https://docs.fd.io/honeycomb/1.17.04/release-notes-aggregator/release_notes.html '''Release notes'''] | ||
+ | * [https://docs.fd.io/honeycomb/1.17.04/honeycomb-aggregator/index.html '''Documentation''']: | ||
+ | ==== 17.01 ==== | ||
+ | * '''[[Honeycomb/Release_Plans/Release_Plan_17.01| Release plan]]''': | ||
+ | * [https://docs.fd.io/honeycomb/1.17.01/release-notes-aggregator/release_notes.html '''Release notes'''] | ||
+ | * [https://docs.fd.io/honeycomb/1.17.01/honeycomb-aggregator/index.html '''Documentation''']: | ||
+ | ==== 16.09 ==== | ||
+ | <b>[[Honeycomb/Releases/1609| Honeycomb 1609 release page]]</b> | ||
+ | |||
+ | == Honeycomb backlog == | ||
+ | Backlog can be found in: [https://jira.fd.io/secure/Dashboard.jspa?selectPageId=10200 Honeycomb's JIRA]. | ||
+ | |||
+ | == Code quality == | ||
+ | Current sonar analysis can be found at: [https://sonar.fd.io/overview?id=1107 Honeycomb's sonar] | ||
+ | |||
+ | == Devel == | ||
+ | |||
+ | [[Honeycomb/BranchCutting|HowTo: Cutting stable branches]] | ||
+ | |||
+ | [[Honeycomb/BumpingVersions|HowTo: Bumping versions]] | ||
+ | |||
+ | === Design and architecture === | ||
+ | |||
+ | <span style="color:red">// TODO These all should be part of the code in e.g. adoc format, built during CI, deployed and just linked here</span> | ||
+ | |||
+ | [[VPP/Java_API|JVpp Java facade for VPP]] | ||
+ | |||
+ | [[Honeycomb/Translation_Layer|Honeycomb Translation layer/SPI]] | ||
+ | |||
+ | [[Honeycomb/Persistence|Honeycomb persistence/Reconciliation with VPP]] | ||
+ | |||
+ | [[Honeycomb/VPPJAPI workflow|Modifying the VPP JVPP API and testing in Honeycomb]] | ||
+ | |||
+ | [[Honeycomb/IETF-ACL model|IETF_ACL model implementation]] |
Revision as of 05:27, 9 November 2018
Honeycomb Facts |
Project Lead: Marek Gradzki
Repository: git clone https://gerrit.fd.io/r/honeycomb |
Contents
Intro
Honeycomb is a generic NETCONF/RESTCONF java-based management agent and provides a framework for building specialized agents.
It uses many features and utilities from different Opendaylight (ODL) projects (e.g. yangtools, controller, mdsal and netconf). The biggest use case of honeycomb is VPP (fd.io’s Vector packet processor). Honeycomb delivers a management agent to enable integration of VPP with e.g. SDN controllers such as Opendaylight.
For VPP specific distribution of Honeycomb, please refer to hc2vpp project.
Overview
Slides
Honeycomb overview presentation from Paris FD.io 2016 event: File:Honeycomb overview.pptx
Honeycomb 1609 overview update from fd.io Seattle summit 2016: File:HC 1609 overview.pptx
Generic nature
Honeycomb provides a distribution to control VPP. However HC is developed as a generic agent that can be positioned on top of any other software/system etc. that can be controlled from Java(or some other JVM language) code. This is achieved thanks to the modularity of HC enabling any "translation plugin" such as V3PO (VPP core management translation code) to work in HC framework.
Minimal distribution
Honeycomb provides a minimal distribution that contains only:
- HC framework jars + plugin jars + dependencies from Opendaylight
- HC framework config files + plugin config files
- Runnable shell scripts
Project Contact Name and Email
- honeycomb-dev list,
- Marek Gradzki, LF-ID: mgradzki,
- Maros Marsalek, LF-ID: mmarsale,
- Ed Warnicke, LF-ID: hagbard,
- Dave Wallace, LF-ID: dwallacelf
Meeting
Scope
This section is devided into 2 sections: in-scope and out-of-scope to clearly define what is developed as part of Honeycomb project and what will be just reused from other projects (or where Honeycomb relies on other projects).
Honeycomb project scope:
- Translation layer between device management and Yang based data structures
- Honeycomb distribution
- Minimal distribution for Honeycomb management agent with all dependencies from ODL and their wiring
Out of scope:
- Yang models and translation code for VPP management
- Moved to hc2vpp in 17.01
- Vpp-japi
- Java APIs for VPP, allowing JVM to interact with VPP is out of scope of Honeycomb project and is part of the base VPP project
- Yang parser
- Available from ODL's yangtools project
- Base implementation of northbound interfaces
- Base implementation of generic northbound interfaces is out of scope and will be reused from ODL's netconf project
- Yang based data structures and a dedicated DataTree(storage)
- Integration/performance testing
- Complex integration or performance tests are out of scope of Honeycomb project and are part of CSIT project
- Any other application based on top of Honeycomb is out of scope of this project and needs to be hosted in a dedicated project inside or outside of fd.io
Releases
18.07 - Last stable
- Work planned for release
- Milestones leading to the release
- Devel documentation
- Overview
- Details
- Javadocs
- ... for each module in Honeycomb project
- New/Updated/Removed/Deprecated Features
- Install guide
- Devel guide
- User guide
18.10 - Current master
- Work planned for release
- Milestones leading to the release
- Devel documentation
- Overview
- Details
- Javadocs
- ... for each module in Honeycomb project
- New/Updated/Removed/Deprecated Features
- Install guide
- Devel guide
- User guide
Previous releases
18.04
18.01
17.10
17.07
17.04
17.01
16.09
Honeycomb backlog
Backlog can be found in: Honeycomb's JIRA.
Code quality
Current sonar analysis can be found at: Honeycomb's sonar
Devel
HowTo: Cutting stable branches
Design and architecture
// TODO These all should be part of the code in e.g. adoc format, built during CI, deployed and just linked here
Honeycomb Translation layer/SPI
Honeycomb persistence/Reconciliation with VPP