Sweetcomb

Introduction

Sweetcomb is a management agent that runs on the same host as a VPP instance, and exposes yang models via NETCONF or RESTCONF or gRPC to allow the management of that VPP instance from out-of-box.

For more information on VPP and its features please visit the Sweetcomb website

Changes

Details of the changes leading up to this version of Sweetcomb can be found under @ref release notes.

Directory layout

Directory name Description
build-root Build output directory
@ref src/plugins Sweetcomb bundled plugins directory

Getting started

Make sure you have added FD.io repository using https://packagecloud.io/fdio/release/ installation script. You should have a sight on the release package, the package name may be different depending on the distribution. (ex: vpp-plugins.deb for VPP 19.01 and vpp-plugin-core.deb and vpp-plugin-dpdk.deb in 19.04)

Firstly, please follow below steps to install dependencies and build code:

   cd $/sweetcomb/
   make install-dep
   make install-dep-extra
   make install-vpp
   make build-plugins

Next, install YANG models in sysrepo:

    make install-models

Then, please start each daemon one by one:

   start vpp (for example on Ubuntu: systemctl start vpp)
   sysrepod
   sysrepo-plugind
   netopeer2-server
   netopeer2-cli

Now you can utilize Sweetcomb. Notice: if you install from package, you should import module by youself.

Manual Test

For example, if you want to configure ipv4 address on HW interface TenGigabitEthernet5/0/0, You can follow below steps to verify if Sweetcomb is working well.

Firstly, set interface up: vppctl set interface state TenGigabitEthernet5/0/0 up

Then, starting netopeer2-cli on any host: netopeer2-cli

> connect --host <ip address running Sweetcomb> --login <user>
> edit-config --target running --config 
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
  <interface>
    <name>TenGigabitEthernet5/0/0</name>
    <description>eth0</description>
    <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type>
    <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
      <enabled>true</enabled>
      <mtu>1514</mtu>
      <address>
        <ip>192.168.50.72</ip>
        <prefix-length>24</prefix-length>
      </address>
    </ipv4>
    <enabled>true</enabled>
  </interface>
</interfaces>

Finally, check the configuration result. vppctl show interface address If you configure above successfully, you will get ip address set up on interface TenGigabitEthernet5/0/0.