Skip to content
Snippets Groups Projects

Resolve "gNMI proto encoding"

Merged Ghost User requested to merge 70-gnmi-proto-encoding into 67-overhaul-architecture
1 file
+ 27
5
Compare changes
  • Side-by-side
  • Inline
+ 27
5
@@ -12,9 +12,12 @@ import (
@@ -12,9 +12,12 @@ import (
// SouthboundInterface provides an
// SouthboundInterface provides an
// interface for SBI implementations
// interface for SBI implementations
type SouthboundInterface interface {
type SouthboundInterface interface {
// Deprecated
// deprecated
SbiIdentifier() string
SbiIdentifier() string
 
// SetNode injects SBI specific model
 
// representation to the transport.
 
// Needed for type assertion.
SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error
SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error
Schema() *ytypes.Schema
Schema() *ytypes.Schema
}
}
@@ -22,11 +25,19 @@ type SouthboundInterface interface {
@@ -22,11 +25,19 @@ type SouthboundInterface interface {
type Tapi struct {
type Tapi struct {
}
}
 
// OpenConfig is the implementation of an OpenConfig SBI.
 
// The struct holds the YANG schema and a function that
 
// returns an SBI specific SetNode function.
type OpenConfig struct {
type OpenConfig struct {
 
// deprecated
transport Transport
transport Transport
schema *ytypes.Schema
 
schema *ytypes.Schema
}
}
 
// SbiIdentifier returns the string representation of
 
// the SBI
 
// deprecated
func (oc *OpenConfig) SbiIdentifier() string {
func (oc *OpenConfig) SbiIdentifier() string {
return "openconfig"
return "openconfig"
}
}
@@ -39,7 +50,10 @@ func (oc *OpenConfig) Schema() *ytypes.Schema {
@@ -39,7 +50,10 @@ func (oc *OpenConfig) Schema() *ytypes.Schema {
return schema
return schema
}
}
func (oc *OpenConfig)SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
// SetNode injects OpenConfig specific model
 
// representation to the transport.
 
// Needed for type assertion.
 
func (oc *OpenConfig) SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
return func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
return func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
if err := ytypes.SetNode(schema, root.(*openconfig.Device), path, val, opts...); err != nil {
if err := ytypes.SetNode(schema, root.(*openconfig.Device), path, val, opts...); err != nil {
return err
return err
@@ -48,9 +62,14 @@ func (oc *OpenConfig)SetNode() func(schema *yang.Entry, root interface{}, path *
@@ -48,9 +62,14 @@ func (oc *OpenConfig)SetNode() func(schema *yang.Entry, root interface{}, path *
}
}
}
}
 
// deprecated
 
// Use for prototyping only.
 
// Use OpenConfig instead
type AristaOC struct {
type AristaOC struct {
 
// deprecated
transport Transport
transport Transport
schema *ytypes.Schema
 
schema *ytypes.Schema
}
}
func (oc *AristaOC) SbiIdentifier() string {
func (oc *AristaOC) SbiIdentifier() string {
@@ -65,7 +84,10 @@ func (oc *AristaOC) Schema() *ytypes.Schema {
@@ -65,7 +84,10 @@ func (oc *AristaOC) Schema() *ytypes.Schema {
return schema
return schema
}
}
func (oc *AristaOC)SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
// SetNode injects AristaOC specific model
 
// representation to the transport.
 
// Needed for type assertion.
 
func (oc *AristaOC) SetNode() func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
return func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
return func(schema *yang.Entry, root interface{}, path *gpb.Path, val interface{}, opts ...ytypes.SetNodeOpt) error {
if err := ytypes.SetNode(schema, root.(*arista.Device), path, val, opts...); err != nil {
if err := ytypes.SetNode(schema, root.(*arista.Device), path, val, opts...); err != nil {
return err
return err
Loading