Difference between revisions of "Sweetcomb/RPCop"

From fd.io
Jump to: navigation, search
m (RPC Operations)
m (RPC Operations)
Line 6: Line 6:
 
* '''Configuration data/desired state''': "Configuration data is the set of writable data that is required to transform a system from its initial default state into its current state." [https://tools.ietf.org/html/rfc6241 RFC6241]
 
* '''Configuration data/desired state''': "Configuration data is the set of writable data that is required to transform a system from its initial default state into its current state." [https://tools.ietf.org/html/rfc6241 RFC6241]
 
* '''Operational data''':  "Operational state data is a set of data that has been obtained by the system at runtime and influences the system's behavior similar to configuration data. In contrast to configuration data, operational state is transient and modified by interactions with internal components or other systems via specialized protocols." [https://tools.ietf.org/html/rfc6244 RFC6244]
 
* '''Operational data''':  "Operational state data is a set of data that has been obtained by the system at runtime and influences the system's behavior similar to configuration data. In contrast to configuration data, operational state is transient and modified by interactions with internal components or other systems via specialized protocols." [https://tools.ietf.org/html/rfc6244 RFC6244]
 +
 +
  +-------------+                +-----------+
 +
  | <candidate> |                | <startup> |
 +
  |  (ct, rw)  |<---+      +--->| (ct, rw)  |
 +
  +-------------+    |      |    +-----------+
 +
        |          |      |          |
 +
        |        +-----------+        |
 +
        +-------->| <running> |<--------+
 +
                  | (ct, rw)  |
 +
                  +-----------+
 +
                        |
 +
                        v
 +
                  operational state  <--- control plane
 +
                      (cf, ro)
 +
  ct = config true; cf = config false
 +
  rw = read-write; ro = read-only
 +
  boxes denote datastores
 +
 +
Source: [https://tools.ietf.org/id/draft-ietf-netmod-revised-datastores-08.html#rfc.section.5.3 https://tools.ietf.org/id/draft-ietf-netmod-revised-datastores-08.html#rfc.section.5.3]
  
 
Second, there are [https://www.ietf.org/proceedings/99/slides/slides-99-rtgwg-sessa-guidelines-for-yang-module-authors-on-using-nmda-00.pdf three types of organization] of YANG trees:  
 
Second, there are [https://www.ietf.org/proceedings/99/slides/slides-99-rtgwg-sessa-guidelines-for-yang-module-authors-on-using-nmda-00.pdf three types of organization] of YANG trees:  
Line 11: Line 30:
 
* '''IETF withtout NMDA''': 'config' and 'state' top level trees
 
* '''IETF withtout NMDA''': 'config' and 'state' top level trees
 
* '''IETF with NMDA''':  
 
* '''IETF with NMDA''':  
 +
 +
In order to know if your IETF support NMDA, please use [https://www.yangcatalog.org/yang-search/ YangCatalog].
  
 
Third, as sweetcomb only supports NETCONF and gNMI, there are 5 RPCs supported:
 
Third, as sweetcomb only supports NETCONF and gNMI, there are 5 RPCs supported:
Line 19: Line 40:
 
* '''NETCONF edit-config'''
 
* '''NETCONF edit-config'''
  
In order to know if your IETF support NMDA, please use [https://www.yangcatalog.org/yang-search/ YangCatalog].
+
Fourth, there are many available datastores:
 +
* '''startup''' : Automatically handled by sysrepo and netopeer
 +
* '''candidate''': Automatically handled by sysrepo and netopeer
 +
* '''running''': This is when changes are commited to running that VPP is configured
  
 
=== Openconfig style ===
 
=== Openconfig style ===

Revision as of 12:12, 26 March 2019

RPC Operations

This page aims at describing which data should be read when a user uses a RPC method on sweetcomb control agent.

First, there are two types of data:

  • Configuration data/desired state: "Configuration data is the set of writable data that is required to transform a system from its initial default state into its current state." RFC6241
  • Operational data: "Operational state data is a set of data that has been obtained by the system at runtime and influences the system's behavior similar to configuration data. In contrast to configuration data, operational state is transient and modified by interactions with internal components or other systems via specialized protocols." RFC6244
 +-------------+                 +-----------+
 | <candidate> |                 | <startup> |
 |  (ct, rw)   |<---+       +--->| (ct, rw)  |
 +-------------+    |       |    +-----------+
        |           |       |           |
        |         +-----------+         |
        +-------->| <running> |<--------+
                  | (ct, rw)  |
                  +-----------+
                        |
                        v
                 operational state  <--- control plane
                     (cf, ro)
 ct = config true; cf = config false
 rw = read-write; ro = read-only
 boxes denote datastores

Source: https://tools.ietf.org/id/draft-ietf-netmod-revised-datastores-08.html#rfc.section.5.3

Second, there are three types of organization of YANG trees:

  • Openconfig style: 'config' and 'state' containers
  • IETF withtout NMDA: 'config' and 'state' top level trees
  • IETF with NMDA:

In order to know if your IETF support NMDA, please use YangCatalog.

Third, as sweetcomb only supports NETCONF and gNMI, there are 5 RPCs supported:

  • gNMI get
  • gNMI set
  • NETCONF get
  • NETCONF get-config
  • NETCONF edit-config

Fourth, there are many available datastores:

  • startup : Automatically handled by sysrepo and netopeer
  • candidate: Automatically handled by sysrepo and netopeer
  • running: This is when changes are commited to running that VPP is configured

Openconfig style

Illustrate where data is fetched depending on the RPC used for an Openconfig model.

IETF without NMDA

IETF with NMDA