Sweetcomb

From fd.io
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 written in C that runs on the same host as a VPP instance, and exposes yang models via NETCONF, RESTCONF and gNMI to allow the management of VPP instances. And users also can manage VPP through SSL and JSON.

Overview

Sweetcomb Architecture and environment

Draw.io source here

Project Contact


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 exposed:
    • Netconf from sysrepo Netopeer2.
    • gNMI northbound interface
    • Restconf (does not exist yet)
    • SSL northbound interface
  • Northbound interfaces servers:
    • gNMI northbound interface
  • Yang models for VPP management
    • Configuration data and Operational data
    • Support IETF without NMDA and Openconfig Yang Models
  • 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 sysrepo project
  • Server implementation of northbound interfaces
    • Netconf from sysrepo Netopeer2.
    • Restconf (does not exist yet)
    • SSL from openSSL.
  • Yang based data structures and a dedicated datastore
    • Available from sysrepo project.
  • 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

Sweetcomb releases are based on VPP version numbers as sweetcomb uses VPP API which is not backward compatible.

19.08 - Current master

19.04 - Last stable

19.01 - broken (can not be used)

Devel

Source code is divided in three directories:

  • scvpp: library source code to communicate with VAPI (VPP API).
  • plugins: sysrepo plugin library source code implementing xpath callback
  • gnmi: a gNMI server to communicate with sysrepo datastore

Requirements

Implement your own module

gNMI server

FAQ

FAQ

Meeting

Sweetcomb meeting

Sweetcomb backlog

Backlog can be found in: sweetcomb's JIRA.

Code quality

There is no current sonar analysis on: https://sonar.fd.io