Difference between revisions of "Archived-Hc2vpp"

From fd.io
Jump to: navigation, search
m (Dwallacelf moved page Hc2vpp to Archived-Hc2vpp)
 
(36 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
|shortname=hc2vpp
 
|shortname=hc2vpp
 
|jiraName=HC2VPP
 
|jiraName=HC2VPP
|projectLead= Marek Gradzki
+
|mailingList=[https://lists.fd.io/mailman/listinfo/hc2vpp hc2vpp@lists.fd.io]
 +
|projectLead=Michal Cmarada
 
|committers=
 
|committers=
 
* Maros Marsalek
 
* Maros Marsalek
 
* Marek Gradzki
 
* Marek Gradzki
 
* Hongjun Ni
 
* Hongjun Ni
* Jan Srnicek
+
* Michal Cmarada
* Stefan Kobza
+
* Jan Srnicek (Emeritus)
* Ed Warnicke
+
 
}}
 
}}
  
 
== Intro ==
 
== Intro ==
Honeycomb is a java-based agent that runs on the same host as a VPP instance, and exposes yang models via netconf or restconf to allow the management of that VPP instance from off box.
+
Hc2vpp is a java-based agent that runs on the same host as a VPP instance, and exposes yang models via netconf or restconf to allow the management of that VPP instance from off box.
 +
The Hc2vpp project used to be part of [https://wiki.fd.io/view/Honeycomb honeycomb].
 +
 
 +
Process of spiting honeycomb project into generic (honeycomb) and vpp related (hc2vpp) parts was done during 1.17.01 release.
  
 
=== Overview ===
 
=== Overview ===
Line 25: Line 28:
  
 
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]]
 
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 ==
 
== Project Contact Name and Email ==
* [mailto:honeycomb-dev@lists.fd.io honeycomb-dev list],
+
* [mailto:hc2vpp@lists.fd.io hc2vpp list],
 +
* [mailto:michal.cmarada@pantheon.tech Michal Cmarada],
 +
* [mailto:margradz@gmail.com Marek Gradzki],
 
* [mailto:mmarsale@cisco.com Maros Marsalek], LF-ID: mmarsale,
 
* [mailto:mmarsale@cisco.com Maros Marsalek], LF-ID: mmarsale,
* [mailto:mgradzki@cisco.com Marek Gradzki], LF-ID: mmarsale,
+
* [mailto:hagbard@gmail.com Ed Warnicke], LF-ID: hagbard
* [mailto:hagbard@gmail.com Ed Warnicke], LF-ID: hagbard,
+
* [mailto:dwallacelf@gmail.com Dave Wallace], LF-ID: dwallacelf,
+
* [mailto:mspanik@cisco.com Matej Spanik], LF-ID: mspanik,
+
  
== Weekly meeting ==
+
== Meeting ==
  
[https://wiki.fd.io/view/Honeycomb/Meeting Weekly call]
+
[https://wiki.fd.io/view/Honeycomb/Meeting Honeycomb&hc2vpp meeting]
  
 
== Scope ==
 
== Scope ==
Honeycomb's main responsibility is to enable communication between it's northbound interfaces and VPP's management APIs, performing all necessary translations in the background. It is important to note that many features and utilities will be reused from different [http://www.opendaylight.org/, Opendaylight (ODL)] projects (e.g. yangtools, controller, mdsal and netconf) and will not be a direct part of Honeycomb. 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).
+
Hc2vpp's main responsibility is to enable communication between it's northbound interfaces and VPP's management APIs, performing all necessary translations in the background.  
  
'''Honeycomb project scope:'''
+
This section is divided 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 hc2vpp relies on other projects).
* Northbound interfaces:
+
 
** [http://tools.ietf.org/html/rfc4741, Netconf] northbound interface
+
'''Hc2vpp project scope:'''
** [https://tools.ietf.org/html/draft-ietf-netconf-restconf-05, Restconf] northbound interface
+
** (Possibly) [https://www.ietf.org/rfc/rfc4271, BGP]
+
  
 
* Yang models for VPP management
 
* Yang models for VPP management
Line 64: Line 53:
 
* Translation layer between VPP management and Yang based data structures
 
* Translation layer between VPP management and Yang based data structures
 
** Must support all features of VPP exposed in its APIs in an extensible manner
 
** Must support all features of VPP exposed in its APIs in an extensible manner
 
* Honeycomb distribution
 
** Minimal distribution for Honeycomb management agent with all dependencies from ODL and their wiring
 
  
 
'''Out of scope:'''
 
'''Out of scope:'''
 +
* Northbound interfaces:
 +
** generic NETCONF/RESTCONF/BGP support is part of honeycomb project
 +
 
* 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 Honeycomb project and is part of the base VPP project
Line 74: Line 63:
 
* Yang parser
 
* Yang parser
 
** Available from ODL's [https://git.opendaylight.org/gerrit/#/admin/projects/yangtools, yangtools] project
 
** 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
 
* Integration/performance testing
Line 85: Line 68:
  
 
* 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 Honeycomb is out of scope of this project and needs to be hosted in a dedicated project inside or outside of fd.io
 +
 +
== Supported Features ==
 +
*[https://wiki.fd.io/view/Hc2vpp/Features List of Features]
  
 
== Releases ==
 
== Releases ==
 +
=== 19.01 - last stable ===
  
=== 16.09 - Last stable ===
+
'''[[Hc2vpp/Release_Plans/Release_Plan_19.01| Release plan]]''':
16.09 is the last stable release. First for HC.
+
* Work planned for release
 +
* Milestones leading to the release
  
<b>[[Honeycomb/Releases/1609| Honeycomb 1609 release page]]</b> - contains:
+
[https://docs.fd.io/hc2vpp/1.19.01/hc2vpp-parent/hc2vpp-aggregator/index.html '''Site''']:
* Release notes,
+
* Devel documentation
* Install guide,
+
* Overview
* User guide,
+
* Details
* Devel guide
+
* Javadocs
* and more
+
* ... for each module in Hc2vpp project
  
=== 17.01 - Current master ===
+
[https://docs.fd.io/hc2vpp/1.19.01/hc2vpp-parent/release-notes-aggregator/release_notes.html '''Release notes''']:
 +
* New/Updated/Removed/Deprecated Features
 +
* Install guide
 +
* Devel guide
 +
* User guide
  
17.01 is the second release for Honeycomb
+
=== 19.04 - current master ===
  
'''[[Honeycomb/Release_Plans/Release_Plan_17.01| Release plan]]''':
+
'''[[Hc2vpp/Release_Plans/Release_Plan_19.04| 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.16.12-SNAPSHOT/honeycomb-aggregator/index.html '''Site''']:
+
[https://docs.fd.io/hc2vpp/1.19.04-SNAPSHOT/hc2vpp-parent/hc2vpp-aggregator/index.html '''Site''']:
 
* Devel documentation
 
* Devel documentation
 
* Overview
 
* Overview
 
* Details  
 
* Details  
 
* Javadocs
 
* Javadocs
* ... for each module in Honeycomb project
+
* ... for each module in Hc2vpp project
  
[https://docs.fd.io/honeycomb/1.16.12-SNAPSHOT/release-notes-aggregator/release_notes.html '''Release notes''']:
+
[https://docs.fd.io/hc2vpp/1.19.04-SNAPSHOT/hc2vpp-parent/release-notes-aggregator/release_notes.html '''Release notes''']:
 
* New/Updated/Removed/Deprecated Features
 
* New/Updated/Removed/Deprecated Features
 
* Install guide
 
* Install guide
 
* Devel guide
 
* Devel guide
 
* User guide
 
* User guide
 +
=== Previous releases ===
 +
 +
==== 18.10 ====
 +
* '''[[Hc2vpp/Release_Plans/Release_Plan_18.10| Release plan]]'''
 +
* [https://docs.fd.io/hc2vpp/1.18.10/hc2vpp-parent/release-notes-aggregator/release_notes.html '''Release notes''']
 +
* [https://docs.fd.io/hc2vpp/1.18.10/hc2vpp-parent/hc2vpp-aggregator/index.html '''Documentation''']
 +
 +
==== 18.07 ====
 +
* '''[[Hc2vpp/Release_Plans/Release_Plan_18.07| Release plan]]'''
 +
* [https://docs.fd.io/hc2vpp/1.18.07/hc2vpp-parent/release-notes-aggregator/release_notes.html '''Release notes''']
 +
* [https://docs.fd.io/hc2vpp/1.18.07/hc2vpp-parent/hc2vpp-aggregator/index.html '''Documentation''']
 +
 +
==== 18.04 ====
 +
* '''[[Hc2vpp/Release_Plans/Release_Plan_18.04| Release plan]]'''
 +
* [https://docs.fd.io/hc2vpp/1.18.04/hc2vpp-parent/release-notes-aggregator/release_notes.html '''Release notes''']
 +
* [https://docs.fd.io/hc2vpp/1.18.04/hc2vpp-parent/hc2vpp-aggregator/index.html '''Documentation''']
 +
 +
==== 18.01 ====
 +
* '''[[Hc2vpp/Release_Plans/Release_Plan_18.01| Release plan]]'''
 +
* [https://docs.fd.io/hc2vpp/1.18.01/hc2vpp-parent/release-notes-aggregator/release_notes.html '''Release notes''']
 +
* [https://docs.fd.io/hc2vpp/1.18.01/hc2vpp-parent/hc2vpp-aggregator/index.html '''Documentation''']
 +
 +
==== 17.10 ====
 +
* '''[[Hc2vpp/Release_Plans/Release_Plan_17.10| Release plan]]'''
 +
* [https://docs.fd.io/hc2vpp/1.17.10/hc2vpp-parent/release-notes-aggregator/release_notes.html '''Release notes''']
 +
* [https://docs.fd.io/hc2vpp/1.17.10/hc2vpp-parent/hc2vpp-aggregator/index.html '''Documentation''']
 +
 +
==== 17.07 ====
 +
* '''[[Hc2vpp/Release_Plans/Release_Plan_17.07| Release plan]]'''
 +
* [https://docs.fd.io/hc2vpp/1.17.07/hc2vpp-parent/release-notes-aggregator/release_notes.html '''Release notes''']
 +
* [https://docs.fd.io/hc2vpp/1.17.07/hc2vpp-parent/hc2vpp-aggregator/index.html '''Documentation''']
 +
 +
==== 17.04 ====
 +
* '''[[Hc2vpp/Release_Plans/Release_Plan_17.04| Release plan]]'''
 +
* [https://docs.fd.io/hc2vpp/1.17.04/hc2vpp-parent/release-notes-aggregator/release_notes.html '''Release notes''']
 +
* [https://docs.fd.io/hc2vpp/1.17.04/hc2vpp-parent/hc2vpp-aggregator/index.html '''Documentation''']
 +
 +
==== 17.01 ====
 +
* '''[https://wiki.fd.io/view/Honeycomb/Release_Plans/Release_Plan_17.01 Release plan]'''
 +
* [https://docs.fd.io/hc2vpp/1.17.01/release-notes-aggregator/release_notes.html '''Release notes''']
 +
* [https://docs.fd.io/hc2vpp/1.17.01/hc2vpp-aggregator/index.html '''Documentation''']
  
 
== Honeycomb backlog ==
 
== Honeycomb backlog ==
Backlog can be found in: [https://jira.fd.io/secure/Dashboard.jspa?selectPageId=10200 Honeycomb's JIRA].
+
Backlog can be found in: [https://jira.fd.io/secure/Dashboard.jspa?selectPageId=10701 Hc2vpp's JIRA].
  
 
== Code quality ==
 
== Code quality ==
Current sonar analysis can be found at: [https://sonar.fd.io/overview?id=1 Honeycomb's sonar]
+
Current sonar analysis can be found at: [https://sonar.fd.io/overview?id=2320 Hc2vpp's sonar]
  
 
== Devel ==
 
== Devel ==
  
[[Honeycomb/BranchCutting|HowTo: Cutting stable branches]]
+
[[Hc2vpp/BranchCutting|HowTo: Cutting stable branches & version bumping]]
 
+
[[Honeycomb/BumpingVersions|HowTo: Bumping versions]]
+
  
 
=== Design and architecture ===
 
=== Design and architecture ===

Latest revision as of 20:04, 17 August 2023

hc2vpp Facts

Project Lead: Michal Cmarada
Committers:

  • Maros Marsalek
  • Marek Gradzki
  • Hongjun Ni
  • Michal Cmarada
  • Jan Srnicek (Emeritus)

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

Intro

Hc2vpp is a java-based agent that runs on the same host as a VPP instance, and exposes yang models via netconf or restconf to allow the management of that VPP instance from off box. The Hc2vpp project used to be part of honeycomb.

Process of spiting honeycomb project into generic (honeycomb) and vpp related (hc2vpp) parts was done during 1.17.01 release.

Overview

Honeycomb in VPP stack

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

Project Contact Name and Email

Meeting

Honeycomb&hc2vpp meeting

Scope

Hc2vpp's main responsibility is to enable communication between it's northbound interfaces and VPP's management APIs, performing all necessary translations in the background.

This section is divided 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 hc2vpp relies on other projects).

Hc2vpp project scope:

  • Yang models for VPP management
    • Configuration data
    • Operational data
  • Translation layer between VPP management and Yang based data structures
    • Must support all features of VPP exposed in its APIs in an extensible manner

Out of scope:

  • Northbound interfaces:
    • generic NETCONF/RESTCONF/BGP support is part of honeycomb project
  • 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
  • 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

Supported Features

Releases

19.01 - last stable

Release plan:

  • Work planned for release
  • Milestones leading to the release

Site:

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

Release notes:

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

19.04 - current master

Release plan:

  • Work planned for release
  • Milestones leading to the release

Site:

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

Release notes:

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

Previous releases

18.10

18.07

18.04

18.01

17.10

17.07

17.04

17.01

Honeycomb backlog

Backlog can be found in: Hc2vpp's JIRA.

Code quality

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

Devel

HowTo: Cutting stable branches & version bumping

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

JVpp Java facade for VPP

Honeycomb Translation layer/SPI

Honeycomb persistence/Reconciliation with VPP

Modifying the VPP JVPP API and testing in Honeycomb

IETF_ACL model implementation