Difference between revisions of "Archived-Sweetcomb"

From fd.io
Jump to: navigation, search
Line 1: Line 1:
 
{{Project Facts
 
{{Project Facts
|name=Honeycomb
+
|name=Sweetcomb
|shortname=honeycomb
+
|shortname=sweetcomb
|jiraName=HONEYCOMB
+
|jiraName=sweetcomb
|projectLead=Marek Gradzki
+
|projectLead=[mailto:hongjun.ni@intel.com Hongjun Ni], @ Intel
 
|committers=
 
|committers=
* Dave Wallace
+
* [mailto:drenfong.wang@intel.com Drenfong Wang], @ Intel,
* Maros Marsalek
+
* [mailto:wangchuanguo@huachentel.com Chuanguo Wang], @ HuachenTel,
* Marek Gradzki
+
* [mailto:chenhui@huachentel.com Hui Chen], @ HuachenTel,
* Ed Warnicke
+
* [mailto:lizhuoqun@cmhi.chinamobile.com Zhuoqun Li], @ China Mobile,
* Robert Varga
+
* [mailto:lihf140@chinaunicom.cn Hongfeng Li], @ China Unicom,
* Juraj Sloboda
+
* [mailto:zhijl.bri@chinatelecom.cn Jinglong Zhi], @ China Telecom,
 +
* [mailto:changlin.li@nxp.com Changlin Li], @ NXP,
 +
* [mailto:tianyi.wang@tieto.com Tianyi Wang], @ Tieto,
 +
* [mailto:davidfgao@tencent.com Feng Gao], @ Tencent,
 +
* [mailto:jingqing.cjy@alibaba-inc.com Jianyong Chen], @ Alibaba,
 +
* [mailto:gu.jian1@zte.com.cn Jian Gu], @ ZTE,
 +
* [mailto:jtollet@cisco.com Jerome Tollet], @ Cisco,
 +
* [mailto:mkonstan@cisco.com Maciek Konstantynowicz], @ Cisco,
 +
* [mailto:raszabo@cisco.com Rastislav Szabo], @ Cisco,
 +
* [mailto:hongjun.ni@intel.com Hongjun Ni], @ Intel,
 
}}
 
}}
 
== Intro ==
 
== Intro ==
  
Honeycomb is a generic NETCONF/RESTCONF java-based management agent and provides a framework for building specialized agents.
+
Sweetcomb is a management agent that runs on the same host as a VPP instance, and exposes yang models via NETCONF or RESTCONFto allow the management of that VPP instance from out-of-box. And users also can manage VPP through SSL and JSON.
 
+
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 ===
 
=== 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 ====
 
==== 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.
+
Sweetcomb 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 ====
 
==== Minimal distribution ====
  
Honeycomb provides a minimal distribution that contains only:
+
Sweetcomb provides a minimal distribution that contains only:
 
* HC framework jars + plugin jars + dependencies from Opendaylight
 
* HC framework jars + plugin jars + dependencies from Opendaylight
 
* HC framework config files + plugin config files
 
* HC framework config files + plugin config files
Line 43: Line 40:
  
 
== Project Contact Name and Email ==
 
== Project Contact Name and Email ==
* [mailto:honeycomb-dev@lists.fd.io honeycomb-dev list],
+
* [mailto:hongjun.ni@intel.com Hongjun Ni], @ Intel,
* [mailto:margradz@gmail.com Marek Gradzki], LF-ID: mgradzki,
+
* [mailto:lixingfu@huachentel.com Xingfu Li], @ HuachenTel,  
* [mailto:mmarsale@cisco.com Maros Marsalek], LF-ID: mmarsale,
+
* [mailto:lizhuoqun@cmhi.chinamobile.com Zhuoqun Li], @ China Mobile,
* [mailto:hagbard@gmail.com Ed Warnicke], LF-ID: hagbard,
+
* [mailto:lihf140@chinaunicom.cn Hongfeng Li], @ China Unicom,
* [mailto:dwallacelf@gmail.com Dave Wallace], LF-ID: dwallacelf
+
* [mailto:zhijl.bri@chinatelecom.cn Jinglong Zhi], @ China Telecom,
 +
* [mailto:changlin.li@nxp.com Changlin Li], @ NXP,
 +
* [mailto:tianyi.wang@tieto.com Tianyi Wang], @ Tieto,
 +
* [mailto:davidfgao@tencent.com Feng Gao], @ Tencent,
 +
* [mailto:jingqing.cjy@alibaba-inc.com Jianyong Chen], @ Alibaba,
 +
* [mailto:gu.jian1@zte.com.cn Jian Gu], @ ZTE,
 +
* [mailto:jtollet@cisco.com Jerome Tollet], @ Cisco,
 +
* [mailto:mkonstan@cisco.com Maciek Konstantynowicz], @ Cisco,
 +
* [mailto:raszabo@cisco.com Rastislav Szabo], @ Cisco,
  
 
== Meeting ==
 
== Meeting ==
  
[https://wiki.fd.io/view/Honeycomb/Meeting Honeycomb meeting]
+
[https://wiki.fd.io/view/Sweetcomb/Meeting Sweetcomb meeting]
  
 
== Scope ==
 
== 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).
+
This section is devided into 2 sections: in-scope and out-of-scope to clearly define what is developed as part of Sweetcomb project and what will be just reused from other projects (or where Sweetcomb relies on other projects).
  
'''Honeycomb project scope:'''
+
'''Sweetcomb project scope:'''
 
* Northbound interfaces:
 
* Northbound interfaces:
 
** [http://tools.ietf.org/html/rfc4741, Netconf] northbound interface
 
** [http://tools.ietf.org/html/rfc4741, Netconf] northbound interface
Line 65: Line 70:
 
* Translation layer between device management and Yang based data structures
 
* Translation layer between device management and Yang based data structures
  
* Honeycomb distribution
+
* Sweetcomb distribution
** Minimal distribution for Honeycomb management agent with all dependencies from ODL and their wiring
+
** Minimal distribution for Sweetcomb management agent with all dependencies from ODL and their wiring
  
 
'''Out of scope:'''
 
'''Out of scope:'''
Line 73: Line 78:
  
 
* Vpp-japi
 
* 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
+
** Java APIs for VPP, allowing JVM to interact with VPP is out of scope of Sweetcomb project and is part of the base VPP project
  
 
* Yang parser
 
* Yang parser
Line 85: Line 90:
  
 
* Integration/performance testing
 
* Integration/performance testing
** Complex integration or performance tests are out of scope of Honeycomb project and are part of CSIT project
+
** Complex integration or performance tests are out of scope of Sweetcomb 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
+
* Any other application based on top of Sweetcomb is out of scope of this project and needs to be hosted in a dedicated project inside or outside of fd.io
  
 
== Releases ==
 
== Releases ==
Line 93: Line 98:
 
=== 18.07 - Last stable  ===
 
=== 18.07 - Last stable  ===
  
'''[[Honeycomb/Release_Plans/Release_Plan_18.07| Release plan]]''':
+
'''[[Sweetcomb/Release_Plans/Release_Plan_18.07| Release plan]]''':
 
* Work planned for release
 
* Work planned for release
 
* Milestones leading to the release
 
* Milestones leading to the release
  
[https://docs.fd.io/honeycomb/1.18.07/honeycomb-aggregator/index.html '''Documentation''']:
+
[https://docs.fd.io/Sweetcomb/1.18.07/Sweetcomb-aggregator/index.html '''Documentation''']:
 
* Devel documentation
 
* Devel documentation
 
* Overview
 
* Overview
 
* Details  
 
* Details  
 
* Javadocs
 
* Javadocs
* ... for each module in Honeycomb project
+
* ... for each module in Sweetcomb project
  
[https://docs.fd.io/honeycomb/1.18.07/release-notes-aggregator/release_notes.html '''Release notes''']:
+
[https://docs.fd.io/Sweetcomb/1.18.07/release-notes-aggregator/release_notes.html '''Release notes''']:
 
* New/Updated/Removed/Deprecated Features
 
* New/Updated/Removed/Deprecated Features
 
* Install guide
 
* Install guide
Line 112: Line 117:
 
=== 18.10 - Current master ===
 
=== 18.10 - Current master ===
  
'''[[Honeycomb/Release_Plans/Release_Plan_18.10| Release plan]]''':
+
'''[[Sweetcomb/Release_Plans/Release_Plan_18.10| Release plan]]''':
 
* Work planned for release
 
* Work planned for release
 
* Milestones leading to the release
 
* Milestones leading to the release
  
[https://docs.fd.io/honeycomb/1.18.10-SNAPSHOT/honeycomb-aggregator/index.html '''Documentation''']:
+
[https://docs.fd.io/Sweetcomb/1.18.10-SNAPSHOT/Sweetcomb-aggregator/index.html '''Documentation''']:
 
* Devel documentation
 
* Devel documentation
 
* Overview
 
* Overview
 
* Details  
 
* Details  
 
* Javadocs
 
* Javadocs
* ... for each module in Honeycomb project
+
* ... for each module in Sweetcomb project
  
[https://docs.fd.io/honeycomb/1.18.10-SNAPSHOT/release-notes-aggregator/release_notes.html '''Release notes''']:
+
[https://docs.fd.io/Sweetcomb/1.18.10-SNAPSHOT/release-notes-aggregator/release_notes.html '''Release notes''']:
 
* New/Updated/Removed/Deprecated Features
 
* New/Updated/Removed/Deprecated Features
 
* Install guide
 
* Install guide
Line 130: Line 135:
  
 
=== Previous releases ===
 
=== 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].
+
== Sweetcomb backlog ==
 +
Backlog can be found in: [https://jira.fd.io/secure/Dashboard.jspa?selectPageId=10200 Sweetcomb's JIRA].
  
 
== Code quality ==
 
== Code quality ==
Current sonar analysis can be found at: [https://sonar.fd.io/overview?id=1107 Honeycomb's sonar]
+
Current sonar analysis can be found at: [https://sonar.fd.io/overview?id=1107 Sweetcomb's sonar]
  
 
== Devel ==
 
== Devel ==
  
[[Honeycomb/BranchCutting|HowTo: Cutting stable branches]]
+
[[Sweetcomb/BranchCutting|HowTo: Cutting stable branches]]
  
[[Honeycomb/BumpingVersions|HowTo: Bumping versions]]
+
[[Sweetcomb/BumpingVersions|HowTo: Bumping versions]]
  
 
=== Design and architecture ===
 
=== 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>
 
<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:39, 9 November 2018

Sweetcomb Facts

Project Lead: Hongjun Ni, @ Intel
Committers:

Repository: git clone https://gerrit.fd.io/r/sweetcomb
Mailing List: sweetcomb-dev@lists.fd.io
Jenkins: jenkins silo
Gerrit Patches: code patches/reviews
Bugs: sweetcomb bugs

Intro

Sweetcomb is a management agent that runs on the same host as a VPP instance, and exposes yang models via NETCONF or RESTCONFto allow the management of that VPP instance from out-of-box. And users also can manage VPP through SSL and JSON.

Overview

Generic nature

Sweetcomb 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

Sweetcomb 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

Meeting

Sweetcomb meeting

Scope

This section is devided into 2 sections: in-scope and out-of-scope to clearly define what is developed as part of Sweetcomb project and what will be just reused from other projects (or where Sweetcomb relies on other projects).

Sweetcomb project scope:

  • Translation layer between device management and Yang based data structures
  • Sweetcomb distribution
    • Minimal distribution for Sweetcomb management agent with all dependencies from ODL and their wiring

Out of scope:

  • Yang models and translation code for VPP management
  • Vpp-japi
    • Java APIs for VPP, allowing JVM to interact with VPP is out of scope of Sweetcomb project and is part of the base VPP project
  • Yang parser
  • 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)
    • Available from ODL's yangtools and 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 Sweetcomb project and are part of CSIT project
  • Any other application based on top of Sweetcomb 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

Release plan:

  • Work planned for release
  • Milestones leading to the release

Documentation:

  • Devel documentation
  • Overview
  • Details
  • Javadocs
  • ... for each module in Sweetcomb project

Release notes:

  • New/Updated/Removed/Deprecated Features
  • Install guide
  • Devel guide
  • User guide

18.10 - Current master

Release plan:

  • Work planned for release
  • Milestones leading to the release

Documentation:

  • Devel documentation
  • Overview
  • Details
  • Javadocs
  • ... for each module in Sweetcomb project

Release notes:

  • New/Updated/Removed/Deprecated Features
  • Install guide
  • Devel guide
  • User guide

Previous releases

Sweetcomb backlog

Backlog can be found in: Sweetcomb's JIRA.

Code quality

Current sonar analysis can be found at: Sweetcomb's sonar

Devel

HowTo: Cutting stable branches

HowTo: Bumping versions

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