Archived-Sweetcomb

From fd.io
Revision as of 05:40, 9 November 2018 by Henry Ni (Talk | contribs)

Jump to: navigation, search
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

Sweetcomb's main responsibility is to enable communication between its 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 open source projects and tools (e.g. netopeer2, Sysrepo and openSSL) and will not be a direct part of Sweetcomb. This section is splitted 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:

  • Northbound interfaces:
    • Netconf northbound interface
    • Restconf northbound interface
    • SSL northbound interface
  • 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
  • Expose APIs to integrate with other open source projects
    • Base implementation of all generic southbound interfaces leverage VPP-VAPI
    • expose APIs to integrate with SD-WAN control plane, such as SDN Controller.
    • expose APIs to integrate with Routing Daemon, such as FRR.
    • expose APIs to integrate with IKE protocol, such as strongswan.
    • expose APIs to integrate with DPI control plane, such as nDPI.
    • expose APIs to integrate with BRAS control plane, such as OpenBRAS.
    • To be added.

Out of scope:

  • Vpp-vapi
    • C APIs for VPP, allowing C-based applications to interact with VPP is out of scope of Sweetcomb project and is part of the base VPP project.
  • Yang parser
    • Available from Netopeer2 project
  • Base implementation of northbound interfaces
    • Base implementation of generic northbound interfaces is out of scope and will be reused as below:
    • Netconf and and YANG libraries from Netopeer2.
    • Restconf(HTTP).
    • SSL from openSSL.
  • Yang based data structures and a dedicated datastore
    • Available from Netopeer2 project. The Netopeer2 server uses sysrepo as a NETCONF datastore implementation.
  • 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