diff --git a/VERSION b/VERSION
index 8f87ff7..e70b452 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.6.0-dev
+2.6.0
diff --git a/go.mod b/go.mod
index a10cc84..8618262 100644
--- a/go.mod
+++ b/go.mod
@@ -7,7 +7,7 @@
 	github.com/golang/protobuf v1.3.2
 	github.com/google/uuid v1.1.1
 	github.com/opencord/voltha-lib-go/v3 v3.2.10
-	github.com/opencord/voltha-protos/v3 v3.4.1
+	github.com/opencord/voltha-protos/v3 v3.4.2
 	github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2
 	github.com/stretchr/testify v1.4.0
 	google.golang.org/grpc v1.24.0
diff --git a/go.sum b/go.sum
index 475fa00..3ddfadb 100644
--- a/go.sum
+++ b/go.sum
@@ -200,8 +200,9 @@
 github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/opencord/voltha-lib-go/v3 v3.2.10 h1:nPOYyR+WsnL0YawstDUExDF3taKtAEqBu1VuPCvwScE=
 github.com/opencord/voltha-lib-go/v3 v3.2.10/go.mod h1:MIWsmMGxIRLK8dG+CNVcE/cJCzOondyRbwJ1708BYgU=
-github.com/opencord/voltha-protos/v3 v3.4.1 h1:Nrr0jKy7WiMiFlXYiK8z73RvI4K4L5b/top7d3htQQI=
 github.com/opencord/voltha-protos/v3 v3.4.1/go.mod h1:nl1ETp5Iw3avxOaKD8BJlYY5wYI4KeV95aT1pL63nto=
+github.com/opencord/voltha-protos/v3 v3.4.2 h1:ufdFWJz9Gqp+eBJoCPA6LzKpf5lMfhCmf8BLE7dw7kU=
+github.com/opencord/voltha-protos/v3 v3.4.2/go.mod h1:nl1ETp5Iw3avxOaKD8BJlYY5wYI4KeV95aT1pL63nto=
 github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU=
 github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
 github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
@@ -345,7 +346,6 @@
 google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 google.golang.org/grpc v1.24.0 h1:vb/1TCsVn3DcJlQ0Gs1yB1pKI6Do2/QNwxdKqmc/b0s=
 google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
diff --git a/rw_core/core/device/agent.go b/rw_core/core/device/agent.go
index 03cc3b8..053d9f3 100755
--- a/rw_core/core/device/agent.go
+++ b/rw_core/core/device/agent.go
@@ -26,6 +26,7 @@
 	"time"
 
 	"github.com/golang/protobuf/ptypes"
+	"github.com/golang/protobuf/ptypes/empty"
 	"github.com/opencord/voltha-go/rw_core/core/adapter"
 	"github.com/opencord/voltha-go/rw_core/core/device/flow"
 	"github.com/opencord/voltha-go/rw_core/core/device/group"
@@ -792,3 +793,30 @@
 	logger.Debugw(ctx, "getExtValue-Success-device-agent", log.Fields{"Resp": Resp})
 	return Resp, nil
 }
+
+func (agent *Agent) setExtValue(ctx context.Context, device *voltha.Device, value *voltha.ValueSet) (*empty.Empty, error) {
+	logger.Debugw(ctx, "setExtValue", log.Fields{"device-id": value.Id})
+	if err := agent.requestQueue.WaitForGreenLight(ctx); err != nil {
+		return nil, err
+	}
+
+	//send request to adapter
+	ch, err := agent.adapterProxy.SetExtValue(ctx, device, value)
+	agent.requestQueue.RequestComplete()
+	if err != nil {
+		return nil, err
+	}
+
+	// Wait for the adapter response
+	rpcResponse, ok := <-ch
+	if !ok {
+		return nil, status.Errorf(codes.Aborted, "channel-closed-device-id-%s", agent.deviceID)
+	}
+	if rpcResponse.Err != nil {
+		return nil, rpcResponse.Err
+	}
+
+	// Unmarshal and return the response
+	logger.Debug(ctx, "setExtValue-Success-device-agent")
+	return &empty.Empty{}, nil
+}
diff --git a/rw_core/core/device/manager.go b/rw_core/core/device/manager.go
index 345255f..fc6a3dd 100755
--- a/rw_core/core/device/manager.go
+++ b/rw_core/core/device/manager.go
@@ -1563,3 +1563,22 @@
 	return nil, status.Errorf(codes.NotFound, "%s", value.Id)
 
 }
+
+// SetExtValue  set some given configs or value
+func (dMgr *Manager) SetExtValue(ctx context.Context, value *voltha.ValueSet) (*empty.Empty, error) {
+	logger.Debugw(ctx, "setExtValue", log.Fields{"onu-id": value.Id})
+	device, err := dMgr.getDeviceReadOnly(ctx, value.Id)
+	if err != nil {
+		return nil, status.Errorf(codes.Aborted, "%s", err.Error())
+	}
+	if agent := dMgr.getDeviceAgent(ctx, device.Id); agent != nil {
+		resp, err := agent.setExtValue(ctx, device, value)
+		if err != nil {
+			return nil, err
+		}
+		logger.Debugw(ctx, "setExtValue-result", log.Fields{"result": resp})
+		return resp, nil
+	}
+	return nil, status.Errorf(codes.NotFound, "%s", value.Id)
+
+}
diff --git a/rw_core/core/device/remote/adapter_proxy.go b/rw_core/core/device/remote/adapter_proxy.go
index e8681c4..f3d3358 100755
--- a/rw_core/core/device/remote/adapter_proxy.go
+++ b/rw_core/core/device/remote/adapter_proxy.go
@@ -454,3 +454,23 @@
 	replyToTopic := ap.getCoreTopic()
 	return ap.sendRPC(ctx, rpc, toTopic, &replyToTopic, true, pdevice.Id, args...)
 }
+
+// SetExtValue  set some given configs or value
+func (ap *AdapterProxy) SetExtValue(ctx context.Context, device *voltha.Device, value *voltha.ValueSet) (chan *kafka.RpcResponse, error) {
+	logger.Debugw(ctx, "SetExtValue", log.Fields{"device-id": value.Id})
+	rpc := "set_ext_value"
+	toTopic, err := ap.getAdapterTopic(ctx, value.Id, device.Adapter)
+	if err != nil {
+		return nil, err
+	}
+	// Use a device specific topic to send the request.  The adapter handling the device creates a device
+	// specific topic
+	args := []*kafka.KVArg{
+		{
+			Key:   "value",
+			Value: value,
+		},
+	}
+	replyToTopic := ap.getCoreTopic()
+	return ap.sendRPC(ctx, rpc, toTopic, &replyToTopic, true, value.Id, args...)
+}
diff --git a/vendor/github.com/opencord/voltha-protos/v3/go/ext/config/ext_config.pb.go b/vendor/github.com/opencord/voltha-protos/v3/go/ext/config/ext_config.pb.go
new file mode 100644
index 0000000..4f68fd0
--- /dev/null
+++ b/vendor/github.com/opencord/voltha-protos/v3/go/ext/config/ext_config.pb.go
@@ -0,0 +1,523 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: voltha_protos/ext_config.proto
+
+package config
+
+import (
+	fmt "fmt"
+	proto "github.com/golang/protobuf/proto"
+	math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type OnuItuPonAlarm_AlarmID int32
+
+const (
+	OnuItuPonAlarm_RDI_ERRORS OnuItuPonAlarm_AlarmID = 0
+)
+
+var OnuItuPonAlarm_AlarmID_name = map[int32]string{
+	0: "RDI_ERRORS",
+}
+
+var OnuItuPonAlarm_AlarmID_value = map[string]int32{
+	"RDI_ERRORS": 0,
+}
+
+func (x OnuItuPonAlarm_AlarmID) String() string {
+	return proto.EnumName(OnuItuPonAlarm_AlarmID_name, int32(x))
+}
+
+func (OnuItuPonAlarm_AlarmID) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_fb43b44b7fa3aba9, []int{1, 0}
+}
+
+type OnuItuPonAlarm_AlarmReportingCondition int32
+
+const (
+	OnuItuPonAlarm_RATE_THRESHOLD  OnuItuPonAlarm_AlarmReportingCondition = 0
+	OnuItuPonAlarm_RATE_RANGE      OnuItuPonAlarm_AlarmReportingCondition = 1
+	OnuItuPonAlarm_VALUE_THRESHOLD OnuItuPonAlarm_AlarmReportingCondition = 2
+)
+
+var OnuItuPonAlarm_AlarmReportingCondition_name = map[int32]string{
+	0: "RATE_THRESHOLD",
+	1: "RATE_RANGE",
+	2: "VALUE_THRESHOLD",
+}
+
+var OnuItuPonAlarm_AlarmReportingCondition_value = map[string]int32{
+	"RATE_THRESHOLD":  0,
+	"RATE_RANGE":      1,
+	"VALUE_THRESHOLD": 2,
+}
+
+func (x OnuItuPonAlarm_AlarmReportingCondition) String() string {
+	return proto.EnumName(OnuItuPonAlarm_AlarmReportingCondition_name, int32(x))
+}
+
+func (OnuItuPonAlarm_AlarmReportingCondition) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_fb43b44b7fa3aba9, []int{1, 1}
+}
+
+type AlarmConfig struct {
+	// Types that are valid to be assigned to Config:
+	//	*AlarmConfig_OnuItuPonAlarmConfig
+	Config               isAlarmConfig_Config `protobuf_oneof:"config"`
+	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
+	XXX_unrecognized     []byte               `json:"-"`
+	XXX_sizecache        int32                `json:"-"`
+}
+
+func (m *AlarmConfig) Reset()         { *m = AlarmConfig{} }
+func (m *AlarmConfig) String() string { return proto.CompactTextString(m) }
+func (*AlarmConfig) ProtoMessage()    {}
+func (*AlarmConfig) Descriptor() ([]byte, []int) {
+	return fileDescriptor_fb43b44b7fa3aba9, []int{0}
+}
+
+func (m *AlarmConfig) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_AlarmConfig.Unmarshal(m, b)
+}
+func (m *AlarmConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_AlarmConfig.Marshal(b, m, deterministic)
+}
+func (m *AlarmConfig) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_AlarmConfig.Merge(m, src)
+}
+func (m *AlarmConfig) XXX_Size() int {
+	return xxx_messageInfo_AlarmConfig.Size(m)
+}
+func (m *AlarmConfig) XXX_DiscardUnknown() {
+	xxx_messageInfo_AlarmConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_AlarmConfig proto.InternalMessageInfo
+
+type isAlarmConfig_Config interface {
+	isAlarmConfig_Config()
+}
+
+type AlarmConfig_OnuItuPonAlarmConfig struct {
+	OnuItuPonAlarmConfig *OnuItuPonAlarm `protobuf:"bytes,1,opt,name=onu_itu_pon_alarm_config,json=onuItuPonAlarmConfig,proto3,oneof"`
+}
+
+func (*AlarmConfig_OnuItuPonAlarmConfig) isAlarmConfig_Config() {}
+
+func (m *AlarmConfig) GetConfig() isAlarmConfig_Config {
+	if m != nil {
+		return m.Config
+	}
+	return nil
+}
+
+func (m *AlarmConfig) GetOnuItuPonAlarmConfig() *OnuItuPonAlarm {
+	if x, ok := m.GetConfig().(*AlarmConfig_OnuItuPonAlarmConfig); ok {
+		return x.OnuItuPonAlarmConfig
+	}
+	return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*AlarmConfig) XXX_OneofWrappers() []interface{} {
+	return []interface{}{
+		(*AlarmConfig_OnuItuPonAlarmConfig)(nil),
+	}
+}
+
+type OnuItuPonAlarm struct {
+	PonNi                   uint32                                 `protobuf:"fixed32,1,opt,name=pon_ni,json=ponNi,proto3" json:"pon_ni,omitempty"`
+	OnuId                   uint32                                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	AlarmId                 OnuItuPonAlarm_AlarmID                 `protobuf:"varint,3,opt,name=alarm_id,json=alarmId,proto3,enum=config.OnuItuPonAlarm_AlarmID" json:"alarm_id,omitempty"`
+	AlarmReportingCondition OnuItuPonAlarm_AlarmReportingCondition `protobuf:"varint,4,opt,name=alarm_reporting_condition,json=alarmReportingCondition,proto3,enum=config.OnuItuPonAlarm_AlarmReportingCondition" json:"alarm_reporting_condition,omitempty"`
+	// Types that are valid to be assigned to Config:
+	//	*OnuItuPonAlarm_RateThresholdConfig_
+	//	*OnuItuPonAlarm_RateRangeConfig_
+	//	*OnuItuPonAlarm_ValueThresholdConfig_
+	Config               isOnuItuPonAlarm_Config `protobuf_oneof:"config"`
+	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
+	XXX_unrecognized     []byte                  `json:"-"`
+	XXX_sizecache        int32                   `json:"-"`
+}
+
+func (m *OnuItuPonAlarm) Reset()         { *m = OnuItuPonAlarm{} }
+func (m *OnuItuPonAlarm) String() string { return proto.CompactTextString(m) }
+func (*OnuItuPonAlarm) ProtoMessage()    {}
+func (*OnuItuPonAlarm) Descriptor() ([]byte, []int) {
+	return fileDescriptor_fb43b44b7fa3aba9, []int{1}
+}
+
+func (m *OnuItuPonAlarm) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_OnuItuPonAlarm.Unmarshal(m, b)
+}
+func (m *OnuItuPonAlarm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_OnuItuPonAlarm.Marshal(b, m, deterministic)
+}
+func (m *OnuItuPonAlarm) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_OnuItuPonAlarm.Merge(m, src)
+}
+func (m *OnuItuPonAlarm) XXX_Size() int {
+	return xxx_messageInfo_OnuItuPonAlarm.Size(m)
+}
+func (m *OnuItuPonAlarm) XXX_DiscardUnknown() {
+	xxx_messageInfo_OnuItuPonAlarm.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OnuItuPonAlarm proto.InternalMessageInfo
+
+func (m *OnuItuPonAlarm) GetPonNi() uint32 {
+	if m != nil {
+		return m.PonNi
+	}
+	return 0
+}
+
+func (m *OnuItuPonAlarm) GetOnuId() uint32 {
+	if m != nil {
+		return m.OnuId
+	}
+	return 0
+}
+
+func (m *OnuItuPonAlarm) GetAlarmId() OnuItuPonAlarm_AlarmID {
+	if m != nil {
+		return m.AlarmId
+	}
+	return OnuItuPonAlarm_RDI_ERRORS
+}
+
+func (m *OnuItuPonAlarm) GetAlarmReportingCondition() OnuItuPonAlarm_AlarmReportingCondition {
+	if m != nil {
+		return m.AlarmReportingCondition
+	}
+	return OnuItuPonAlarm_RATE_THRESHOLD
+}
+
+type isOnuItuPonAlarm_Config interface {
+	isOnuItuPonAlarm_Config()
+}
+
+type OnuItuPonAlarm_RateThresholdConfig_ struct {
+	RateThresholdConfig *OnuItuPonAlarm_RateThresholdConfig `protobuf:"bytes,5,opt,name=rate_threshold_config,json=rateThresholdConfig,proto3,oneof"`
+}
+
+type OnuItuPonAlarm_RateRangeConfig_ struct {
+	RateRangeConfig *OnuItuPonAlarm_RateRangeConfig `protobuf:"bytes,6,opt,name=rate_range_config,json=rateRangeConfig,proto3,oneof"`
+}
+
+type OnuItuPonAlarm_ValueThresholdConfig_ struct {
+	ValueThresholdConfig *OnuItuPonAlarm_ValueThresholdConfig `protobuf:"bytes,7,opt,name=value_threshold_config,json=valueThresholdConfig,proto3,oneof"`
+}
+
+func (*OnuItuPonAlarm_RateThresholdConfig_) isOnuItuPonAlarm_Config() {}
+
+func (*OnuItuPonAlarm_RateRangeConfig_) isOnuItuPonAlarm_Config() {}
+
+func (*OnuItuPonAlarm_ValueThresholdConfig_) isOnuItuPonAlarm_Config() {}
+
+func (m *OnuItuPonAlarm) GetConfig() isOnuItuPonAlarm_Config {
+	if m != nil {
+		return m.Config
+	}
+	return nil
+}
+
+func (m *OnuItuPonAlarm) GetRateThresholdConfig() *OnuItuPonAlarm_RateThresholdConfig {
+	if x, ok := m.GetConfig().(*OnuItuPonAlarm_RateThresholdConfig_); ok {
+		return x.RateThresholdConfig
+	}
+	return nil
+}
+
+func (m *OnuItuPonAlarm) GetRateRangeConfig() *OnuItuPonAlarm_RateRangeConfig {
+	if x, ok := m.GetConfig().(*OnuItuPonAlarm_RateRangeConfig_); ok {
+		return x.RateRangeConfig
+	}
+	return nil
+}
+
+func (m *OnuItuPonAlarm) GetValueThresholdConfig() *OnuItuPonAlarm_ValueThresholdConfig {
+	if x, ok := m.GetConfig().(*OnuItuPonAlarm_ValueThresholdConfig_); ok {
+		return x.ValueThresholdConfig
+	}
+	return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*OnuItuPonAlarm) XXX_OneofWrappers() []interface{} {
+	return []interface{}{
+		(*OnuItuPonAlarm_RateThresholdConfig_)(nil),
+		(*OnuItuPonAlarm_RateRangeConfig_)(nil),
+		(*OnuItuPonAlarm_ValueThresholdConfig_)(nil),
+	}
+}
+
+type OnuItuPonAlarm_SoakTime struct {
+	ActiveSoakTime       uint32   `protobuf:"fixed32,1,opt,name=active_soak_time,json=activeSoakTime,proto3" json:"active_soak_time,omitempty"`
+	ClearSoakTime        uint32   `protobuf:"fixed32,2,opt,name=clear_soak_time,json=clearSoakTime,proto3" json:"clear_soak_time,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *OnuItuPonAlarm_SoakTime) Reset()         { *m = OnuItuPonAlarm_SoakTime{} }
+func (m *OnuItuPonAlarm_SoakTime) String() string { return proto.CompactTextString(m) }
+func (*OnuItuPonAlarm_SoakTime) ProtoMessage()    {}
+func (*OnuItuPonAlarm_SoakTime) Descriptor() ([]byte, []int) {
+	return fileDescriptor_fb43b44b7fa3aba9, []int{1, 0}
+}
+
+func (m *OnuItuPonAlarm_SoakTime) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_OnuItuPonAlarm_SoakTime.Unmarshal(m, b)
+}
+func (m *OnuItuPonAlarm_SoakTime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_OnuItuPonAlarm_SoakTime.Marshal(b, m, deterministic)
+}
+func (m *OnuItuPonAlarm_SoakTime) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_OnuItuPonAlarm_SoakTime.Merge(m, src)
+}
+func (m *OnuItuPonAlarm_SoakTime) XXX_Size() int {
+	return xxx_messageInfo_OnuItuPonAlarm_SoakTime.Size(m)
+}
+func (m *OnuItuPonAlarm_SoakTime) XXX_DiscardUnknown() {
+	xxx_messageInfo_OnuItuPonAlarm_SoakTime.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OnuItuPonAlarm_SoakTime proto.InternalMessageInfo
+
+func (m *OnuItuPonAlarm_SoakTime) GetActiveSoakTime() uint32 {
+	if m != nil {
+		return m.ActiveSoakTime
+	}
+	return 0
+}
+
+func (m *OnuItuPonAlarm_SoakTime) GetClearSoakTime() uint32 {
+	if m != nil {
+		return m.ClearSoakTime
+	}
+	return 0
+}
+
+type OnuItuPonAlarm_RateThresholdConfig struct {
+	RateThresholdRising  uint64                   `protobuf:"fixed64,1,opt,name=rate_threshold_rising,json=rateThresholdRising,proto3" json:"rate_threshold_rising,omitempty"`
+	RateThresholdFalling uint64                   `protobuf:"fixed64,2,opt,name=rate_threshold_falling,json=rateThresholdFalling,proto3" json:"rate_threshold_falling,omitempty"`
+	SoakTime             *OnuItuPonAlarm_SoakTime `protobuf:"bytes,3,opt,name=soak_time,json=soakTime,proto3" json:"soak_time,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
+	XXX_unrecognized     []byte                   `json:"-"`
+	XXX_sizecache        int32                    `json:"-"`
+}
+
+func (m *OnuItuPonAlarm_RateThresholdConfig) Reset()         { *m = OnuItuPonAlarm_RateThresholdConfig{} }
+func (m *OnuItuPonAlarm_RateThresholdConfig) String() string { return proto.CompactTextString(m) }
+func (*OnuItuPonAlarm_RateThresholdConfig) ProtoMessage()    {}
+func (*OnuItuPonAlarm_RateThresholdConfig) Descriptor() ([]byte, []int) {
+	return fileDescriptor_fb43b44b7fa3aba9, []int{1, 1}
+}
+
+func (m *OnuItuPonAlarm_RateThresholdConfig) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_OnuItuPonAlarm_RateThresholdConfig.Unmarshal(m, b)
+}
+func (m *OnuItuPonAlarm_RateThresholdConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_OnuItuPonAlarm_RateThresholdConfig.Marshal(b, m, deterministic)
+}
+func (m *OnuItuPonAlarm_RateThresholdConfig) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_OnuItuPonAlarm_RateThresholdConfig.Merge(m, src)
+}
+func (m *OnuItuPonAlarm_RateThresholdConfig) XXX_Size() int {
+	return xxx_messageInfo_OnuItuPonAlarm_RateThresholdConfig.Size(m)
+}
+func (m *OnuItuPonAlarm_RateThresholdConfig) XXX_DiscardUnknown() {
+	xxx_messageInfo_OnuItuPonAlarm_RateThresholdConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OnuItuPonAlarm_RateThresholdConfig proto.InternalMessageInfo
+
+func (m *OnuItuPonAlarm_RateThresholdConfig) GetRateThresholdRising() uint64 {
+	if m != nil {
+		return m.RateThresholdRising
+	}
+	return 0
+}
+
+func (m *OnuItuPonAlarm_RateThresholdConfig) GetRateThresholdFalling() uint64 {
+	if m != nil {
+		return m.RateThresholdFalling
+	}
+	return 0
+}
+
+func (m *OnuItuPonAlarm_RateThresholdConfig) GetSoakTime() *OnuItuPonAlarm_SoakTime {
+	if m != nil {
+		return m.SoakTime
+	}
+	return nil
+}
+
+type OnuItuPonAlarm_RateRangeConfig struct {
+	RateRangeLower       uint64                   `protobuf:"fixed64,1,opt,name=rate_range_lower,json=rateRangeLower,proto3" json:"rate_range_lower,omitempty"`
+	RateRangeUpper       uint64                   `protobuf:"fixed64,2,opt,name=rate_range_upper,json=rateRangeUpper,proto3" json:"rate_range_upper,omitempty"`
+	SoakTime             *OnuItuPonAlarm_SoakTime `protobuf:"bytes,3,opt,name=soak_time,json=soakTime,proto3" json:"soak_time,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
+	XXX_unrecognized     []byte                   `json:"-"`
+	XXX_sizecache        int32                    `json:"-"`
+}
+
+func (m *OnuItuPonAlarm_RateRangeConfig) Reset()         { *m = OnuItuPonAlarm_RateRangeConfig{} }
+func (m *OnuItuPonAlarm_RateRangeConfig) String() string { return proto.CompactTextString(m) }
+func (*OnuItuPonAlarm_RateRangeConfig) ProtoMessage()    {}
+func (*OnuItuPonAlarm_RateRangeConfig) Descriptor() ([]byte, []int) {
+	return fileDescriptor_fb43b44b7fa3aba9, []int{1, 2}
+}
+
+func (m *OnuItuPonAlarm_RateRangeConfig) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_OnuItuPonAlarm_RateRangeConfig.Unmarshal(m, b)
+}
+func (m *OnuItuPonAlarm_RateRangeConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_OnuItuPonAlarm_RateRangeConfig.Marshal(b, m, deterministic)
+}
+func (m *OnuItuPonAlarm_RateRangeConfig) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_OnuItuPonAlarm_RateRangeConfig.Merge(m, src)
+}
+func (m *OnuItuPonAlarm_RateRangeConfig) XXX_Size() int {
+	return xxx_messageInfo_OnuItuPonAlarm_RateRangeConfig.Size(m)
+}
+func (m *OnuItuPonAlarm_RateRangeConfig) XXX_DiscardUnknown() {
+	xxx_messageInfo_OnuItuPonAlarm_RateRangeConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OnuItuPonAlarm_RateRangeConfig proto.InternalMessageInfo
+
+func (m *OnuItuPonAlarm_RateRangeConfig) GetRateRangeLower() uint64 {
+	if m != nil {
+		return m.RateRangeLower
+	}
+	return 0
+}
+
+func (m *OnuItuPonAlarm_RateRangeConfig) GetRateRangeUpper() uint64 {
+	if m != nil {
+		return m.RateRangeUpper
+	}
+	return 0
+}
+
+func (m *OnuItuPonAlarm_RateRangeConfig) GetSoakTime() *OnuItuPonAlarm_SoakTime {
+	if m != nil {
+		return m.SoakTime
+	}
+	return nil
+}
+
+type OnuItuPonAlarm_ValueThresholdConfig struct {
+	ThresholdLimit       uint64                   `protobuf:"fixed64,1,opt,name=threshold_limit,json=thresholdLimit,proto3" json:"threshold_limit,omitempty"`
+	SoakTime             *OnuItuPonAlarm_SoakTime `protobuf:"bytes,2,opt,name=soak_time,json=soakTime,proto3" json:"soak_time,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
+	XXX_unrecognized     []byte                   `json:"-"`
+	XXX_sizecache        int32                    `json:"-"`
+}
+
+func (m *OnuItuPonAlarm_ValueThresholdConfig) Reset()         { *m = OnuItuPonAlarm_ValueThresholdConfig{} }
+func (m *OnuItuPonAlarm_ValueThresholdConfig) String() string { return proto.CompactTextString(m) }
+func (*OnuItuPonAlarm_ValueThresholdConfig) ProtoMessage()    {}
+func (*OnuItuPonAlarm_ValueThresholdConfig) Descriptor() ([]byte, []int) {
+	return fileDescriptor_fb43b44b7fa3aba9, []int{1, 3}
+}
+
+func (m *OnuItuPonAlarm_ValueThresholdConfig) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_OnuItuPonAlarm_ValueThresholdConfig.Unmarshal(m, b)
+}
+func (m *OnuItuPonAlarm_ValueThresholdConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_OnuItuPonAlarm_ValueThresholdConfig.Marshal(b, m, deterministic)
+}
+func (m *OnuItuPonAlarm_ValueThresholdConfig) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_OnuItuPonAlarm_ValueThresholdConfig.Merge(m, src)
+}
+func (m *OnuItuPonAlarm_ValueThresholdConfig) XXX_Size() int {
+	return xxx_messageInfo_OnuItuPonAlarm_ValueThresholdConfig.Size(m)
+}
+func (m *OnuItuPonAlarm_ValueThresholdConfig) XXX_DiscardUnknown() {
+	xxx_messageInfo_OnuItuPonAlarm_ValueThresholdConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OnuItuPonAlarm_ValueThresholdConfig proto.InternalMessageInfo
+
+func (m *OnuItuPonAlarm_ValueThresholdConfig) GetThresholdLimit() uint64 {
+	if m != nil {
+		return m.ThresholdLimit
+	}
+	return 0
+}
+
+func (m *OnuItuPonAlarm_ValueThresholdConfig) GetSoakTime() *OnuItuPonAlarm_SoakTime {
+	if m != nil {
+		return m.SoakTime
+	}
+	return nil
+}
+
+func init() {
+	proto.RegisterEnum("config.OnuItuPonAlarm_AlarmID", OnuItuPonAlarm_AlarmID_name, OnuItuPonAlarm_AlarmID_value)
+	proto.RegisterEnum("config.OnuItuPonAlarm_AlarmReportingCondition", OnuItuPonAlarm_AlarmReportingCondition_name, OnuItuPonAlarm_AlarmReportingCondition_value)
+	proto.RegisterType((*AlarmConfig)(nil), "config.AlarmConfig")
+	proto.RegisterType((*OnuItuPonAlarm)(nil), "config.OnuItuPonAlarm")
+	proto.RegisterType((*OnuItuPonAlarm_SoakTime)(nil), "config.OnuItuPonAlarm.SoakTime")
+	proto.RegisterType((*OnuItuPonAlarm_RateThresholdConfig)(nil), "config.OnuItuPonAlarm.RateThresholdConfig")
+	proto.RegisterType((*OnuItuPonAlarm_RateRangeConfig)(nil), "config.OnuItuPonAlarm.RateRangeConfig")
+	proto.RegisterType((*OnuItuPonAlarm_ValueThresholdConfig)(nil), "config.OnuItuPonAlarm.ValueThresholdConfig")
+}
+
+func init() { proto.RegisterFile("voltha_protos/ext_config.proto", fileDescriptor_fb43b44b7fa3aba9) }
+
+var fileDescriptor_fb43b44b7fa3aba9 = []byte{
+	// 609 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xd1, 0x4e, 0x1a, 0x41,
+	0x14, 0x05, 0xac, 0x80, 0xd7, 0x14, 0xe8, 0x80, 0x8a, 0x3e, 0x58, 0xe3, 0x83, 0x35, 0x6d, 0xba,
+	0x24, 0xd8, 0x97, 0x26, 0x7d, 0x41, 0xa5, 0x85, 0x84, 0xa8, 0x19, 0xd1, 0x87, 0xa6, 0xc9, 0x76,
+	0x64, 0xc7, 0x65, 0xea, 0x32, 0xb3, 0x19, 0x66, 0x69, 0x5f, 0xfa, 0x35, 0xfd, 0x8e, 0xf6, 0xdb,
+	0x9a, 0x99, 0xd9, 0x05, 0x81, 0xc5, 0xa4, 0xe9, 0x0b, 0xc9, 0x9e, 0x7b, 0xcf, 0xb9, 0x87, 0x73,
+	0x67, 0x06, 0xf6, 0x27, 0x22, 0x50, 0x43, 0xe2, 0x86, 0x52, 0x28, 0x31, 0x6e, 0xd0, 0x1f, 0xca,
+	0x1d, 0x08, 0x7e, 0xcf, 0x7c, 0xc7, 0x20, 0x28, 0x6f, 0xbf, 0x0e, 0x19, 0x6c, 0xb6, 0x02, 0x22,
+	0x47, 0x67, 0xe6, 0x13, 0x5d, 0x41, 0x5d, 0xf0, 0xc8, 0x65, 0x2a, 0x72, 0x43, 0xc1, 0x5d, 0xa2,
+	0x4b, 0x31, 0xb1, 0x9e, 0x3d, 0xc8, 0x1e, 0x6f, 0x36, 0xb7, 0x9d, 0x58, 0xe7, 0x92, 0x47, 0x5d,
+	0x15, 0x5d, 0x09, 0x6e, 0xf8, 0x9d, 0x0c, 0xae, 0x89, 0x39, 0xc4, 0x2a, 0x9e, 0x16, 0x21, 0x19,
+	0xf5, 0x67, 0x03, 0x4a, 0xf3, 0x24, 0xb4, 0x05, 0x79, 0x3d, 0x86, 0x33, 0x23, 0x5e, 0xc0, 0xeb,
+	0xa1, 0xe0, 0x17, 0x4c, 0xc3, 0xc6, 0x85, 0x57, 0xcf, 0x59, 0x58, 0x2b, 0x7b, 0xe8, 0x3d, 0x14,
+	0xad, 0x21, 0xe6, 0xd5, 0xd7, 0x0e, 0xb2, 0xc7, 0xa5, 0xe6, 0x7e, 0xba, 0x19, 0xc7, 0xfc, 0x76,
+	0xcf, 0x71, 0xc1, 0xf4, 0x77, 0x3d, 0xf4, 0x0d, 0x76, 0x2d, 0x55, 0xd2, 0x50, 0x48, 0xc5, 0xb8,
+	0xaf, 0xff, 0x95, 0xc7, 0x14, 0x13, 0xbc, 0xfe, 0xcc, 0x68, 0x39, 0x4f, 0x69, 0xe1, 0x84, 0x76,
+	0x96, 0xb0, 0xf0, 0x0e, 0x49, 0x2f, 0xa0, 0xaf, 0xb0, 0x25, 0x89, 0xa2, 0xae, 0x1a, 0x4a, 0x3a,
+	0x1e, 0x8a, 0xc0, 0x4b, 0x02, 0x5c, 0x37, 0x01, 0xbe, 0x5e, 0x31, 0x07, 0x13, 0x45, 0xfb, 0x09,
+	0xc5, 0x86, 0xd7, 0xc9, 0xe0, 0xaa, 0x5c, 0x86, 0x51, 0x1f, 0x5e, 0x98, 0x09, 0x92, 0x70, 0x9f,
+	0x26, 0xea, 0x79, 0xa3, 0x7e, 0xf4, 0x84, 0x3a, 0xd6, 0xed, 0x53, 0xe5, 0xb2, 0x9c, 0x87, 0xd0,
+	0x00, 0xb6, 0x27, 0x24, 0x88, 0x52, 0x8c, 0x17, 0x8c, 0xf4, 0x9b, 0x15, 0xd2, 0xb7, 0x9a, 0xb4,
+	0xec, 0xbc, 0x36, 0x49, 0xc1, 0xf7, 0xbe, 0x40, 0xf1, 0x5a, 0x90, 0x87, 0x3e, 0x1b, 0x51, 0x74,
+	0x0c, 0x15, 0x32, 0x50, 0x6c, 0x42, 0xdd, 0xb1, 0x20, 0x0f, 0xae, 0x62, 0x23, 0x1a, 0x9f, 0x83,
+	0x92, 0xc5, 0xa7, 0x9d, 0x47, 0x50, 0x1e, 0x04, 0x94, 0xc8, 0x47, 0x8d, 0xf6, 0x64, 0x3c, 0x37,
+	0x70, 0xd2, 0xb7, 0xf7, 0x3b, 0x0b, 0xd5, 0x94, 0x1c, 0x51, 0x73, 0x69, 0x25, 0x92, 0x8d, 0x19,
+	0xb7, 0x67, 0x3a, 0xbf, 0x10, 0x32, 0x36, 0x25, 0xf4, 0x0e, 0xb6, 0x17, 0x38, 0xf7, 0x24, 0x08,
+	0x34, 0x29, 0x67, 0x48, 0xb5, 0x39, 0xd2, 0x47, 0x5b, 0x43, 0x1f, 0x60, 0x63, 0xe6, 0x71, 0xcd,
+	0xe4, 0xf6, 0x72, 0x45, 0x6e, 0x89, 0x6b, 0x5c, 0x1c, 0x27, 0xfe, 0x7f, 0x65, 0xa1, 0xbc, 0xb0,
+	0x29, 0x9d, 0xd2, 0xa3, 0x65, 0x07, 0xe2, 0x3b, 0x95, 0xb1, 0xed, 0xd2, 0x74, 0x83, 0x3d, 0x8d,
+	0x2e, 0x74, 0x46, 0x61, 0x48, 0x65, 0xec, 0x75, 0xd6, 0x79, 0xa3, 0xd1, 0xff, 0x74, 0xf9, 0x13,
+	0x6a, 0x69, 0x3b, 0x47, 0xaf, 0xa0, 0x3c, 0x0b, 0x2b, 0x60, 0x23, 0xa6, 0x12, 0xa3, 0x53, 0xb8,
+	0xa7, 0xd1, 0xf9, 0xf1, 0xb9, 0x7f, 0x1c, 0x7f, 0xb8, 0x0b, 0x85, 0xf8, 0x7e, 0xa3, 0x12, 0x00,
+	0x3e, 0xef, 0xba, 0x6d, 0x8c, 0x2f, 0xf1, 0x75, 0x25, 0x73, 0x88, 0x61, 0x67, 0xc5, 0x75, 0x45,
+	0x08, 0x4a, 0xb8, 0xd5, 0x6f, 0xbb, 0xfd, 0x0e, 0x6e, 0x5f, 0x77, 0x2e, 0x7b, 0xe7, 0x95, 0x8c,
+	0xa1, 0x6b, 0x0c, 0xb7, 0x2e, 0x3e, 0xb5, 0x2b, 0x59, 0x54, 0x85, 0xf2, 0x6d, 0xab, 0x77, 0xf3,
+	0xb8, 0x29, 0x37, 0x7b, 0xc0, 0x4e, 0xbb, 0x50, 0x15, 0xd2, 0x77, 0x44, 0x48, 0xf9, 0x40, 0x48,
+	0xcf, 0xb1, 0x4f, 0xec, 0xe7, 0xa6, 0xcf, 0xd4, 0x30, 0xba, 0x73, 0x06, 0x62, 0xd4, 0x48, 0x6a,
+	0x0d, 0x5b, 0x7b, 0x1b, 0x3f, 0xbf, 0x93, 0x93, 0x86, 0x2f, 0xf4, 0x23, 0xdc, 0xb0, 0x52, 0x77,
+	0x79, 0x53, 0x38, 0xf9, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x4c, 0xef, 0xae, 0x7e, 0xa7, 0x05, 0x00,
+	0x00,
+}
diff --git a/vendor/github.com/opencord/voltha-protos/v3/go/inter_container/inter_container.pb.go b/vendor/github.com/opencord/voltha-protos/v3/go/inter_container/inter_container.pb.go
index 5425d79..535c435 100644
--- a/vendor/github.com/opencord/voltha-protos/v3/go/inter_container/inter_container.pb.go
+++ b/vendor/github.com/opencord/voltha-protos/v3/go/inter_container/inter_container.pb.go
@@ -145,6 +145,10 @@
 // TestResponse from public import voltha_protos/voltha.proto
 type TestResponse = voltha.TestResponse
 
+// ValueSet from public import voltha_protos/voltha.proto
+type ValueSet = voltha.ValueSet
+type ValueSet_AlarmConfig = voltha.ValueSet_AlarmConfig
+
 // Voltha from public import voltha_protos/voltha.proto
 type Voltha = voltha.Voltha
 
diff --git a/vendor/github.com/opencord/voltha-protos/v3/go/voltha/voltha.pb.go b/vendor/github.com/opencord/voltha-protos/v3/go/voltha/voltha.pb.go
index e9a70e3..7010792 100644
--- a/vendor/github.com/opencord/voltha-protos/v3/go/voltha/voltha.pb.go
+++ b/vendor/github.com/opencord/voltha-protos/v3/go/voltha/voltha.pb.go
@@ -9,6 +9,7 @@
 	proto "github.com/golang/protobuf/proto"
 	empty "github.com/golang/protobuf/ptypes/empty"
 	common "github.com/opencord/voltha-protos/v3/go/common"
+	config "github.com/opencord/voltha-protos/v3/go/ext/config"
 	omci "github.com/opencord/voltha-protos/v3/go/omci"
 	openflow_13 "github.com/opencord/voltha-protos/v3/go/openflow_13"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
@@ -1353,7 +1354,7 @@
 }
 
 func (SelfTestResponse_SelfTestResult) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e084f1a60ce7016c, []int{11, 0}
+	return fileDescriptor_e084f1a60ce7016c, []int{12, 0}
 }
 
 type DeviceGroup struct {
@@ -1812,6 +1813,79 @@
 	return TestResponse_SUCCESS
 }
 
+type ValueSet struct {
+	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	// Types that are valid to be assigned to Value:
+	//	*ValueSet_AlarmConfig
+	Value                isValueSet_Value `protobuf_oneof:"value"`
+	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
+	XXX_unrecognized     []byte           `json:"-"`
+	XXX_sizecache        int32            `json:"-"`
+}
+
+func (m *ValueSet) Reset()         { *m = ValueSet{} }
+func (m *ValueSet) String() string { return proto.CompactTextString(m) }
+func (*ValueSet) ProtoMessage()    {}
+func (*ValueSet) Descriptor() ([]byte, []int) {
+	return fileDescriptor_e084f1a60ce7016c, []int{10}
+}
+
+func (m *ValueSet) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ValueSet.Unmarshal(m, b)
+}
+func (m *ValueSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ValueSet.Marshal(b, m, deterministic)
+}
+func (m *ValueSet) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ValueSet.Merge(m, src)
+}
+func (m *ValueSet) XXX_Size() int {
+	return xxx_messageInfo_ValueSet.Size(m)
+}
+func (m *ValueSet) XXX_DiscardUnknown() {
+	xxx_messageInfo_ValueSet.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ValueSet proto.InternalMessageInfo
+
+func (m *ValueSet) GetId() string {
+	if m != nil {
+		return m.Id
+	}
+	return ""
+}
+
+type isValueSet_Value interface {
+	isValueSet_Value()
+}
+
+type ValueSet_AlarmConfig struct {
+	AlarmConfig *config.AlarmConfig `protobuf:"bytes,2,opt,name=alarm_config,json=alarmConfig,proto3,oneof"`
+}
+
+func (*ValueSet_AlarmConfig) isValueSet_Value() {}
+
+func (m *ValueSet) GetValue() isValueSet_Value {
+	if m != nil {
+		return m.Value
+	}
+	return nil
+}
+
+func (m *ValueSet) GetAlarmConfig() *config.AlarmConfig {
+	if x, ok := m.GetValue().(*ValueSet_AlarmConfig); ok {
+		return x.AlarmConfig
+	}
+	return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*ValueSet) XXX_OneofWrappers() []interface{} {
+	return []interface{}{
+		(*ValueSet_AlarmConfig)(nil),
+	}
+}
+
 // Voltha represents the Voltha cluster data.  Each Core instance will hold a subset of
 // the entire cluster. However, some items (e.g. adapters) will be held by all cores
 // for better performance
@@ -1834,7 +1908,7 @@
 func (m *Voltha) String() string { return proto.CompactTextString(m) }
 func (*Voltha) ProtoMessage()    {}
 func (*Voltha) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e084f1a60ce7016c, []int{10}
+	return fileDescriptor_e084f1a60ce7016c, []int{11}
 }
 
 func (m *Voltha) XXX_Unmarshal(b []byte) error {
@@ -1930,7 +2004,7 @@
 func (m *SelfTestResponse) String() string { return proto.CompactTextString(m) }
 func (*SelfTestResponse) ProtoMessage()    {}
 func (*SelfTestResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e084f1a60ce7016c, []int{11}
+	return fileDescriptor_e084f1a60ce7016c, []int{12}
 }
 
 func (m *SelfTestResponse) XXX_Unmarshal(b []byte) error {
@@ -1972,7 +2046,7 @@
 func (m *OfAgentSubscriber) String() string { return proto.CompactTextString(m) }
 func (*OfAgentSubscriber) ProtoMessage()    {}
 func (*OfAgentSubscriber) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e084f1a60ce7016c, []int{12}
+	return fileDescriptor_e084f1a60ce7016c, []int{13}
 }
 
 func (m *OfAgentSubscriber) XXX_Unmarshal(b []byte) error {
@@ -2022,7 +2096,7 @@
 func (m *Membership) String() string { return proto.CompactTextString(m) }
 func (*Membership) ProtoMessage()    {}
 func (*Membership) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e084f1a60ce7016c, []int{13}
+	return fileDescriptor_e084f1a60ce7016c, []int{14}
 }
 
 func (m *Membership) XXX_Unmarshal(b []byte) error {
@@ -2070,7 +2144,7 @@
 func (m *FlowMetadata) String() string { return proto.CompactTextString(m) }
 func (*FlowMetadata) ProtoMessage()    {}
 func (*FlowMetadata) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e084f1a60ce7016c, []int{14}
+	return fileDescriptor_e084f1a60ce7016c, []int{15}
 }
 
 func (m *FlowMetadata) XXX_Unmarshal(b []byte) error {
@@ -2112,6 +2186,7 @@
 	proto.RegisterType((*CoreInstances)(nil), "voltha.CoreInstances")
 	proto.RegisterType((*OmciTestRequest)(nil), "voltha.OmciTestRequest")
 	proto.RegisterType((*TestResponse)(nil), "voltha.TestResponse")
+	proto.RegisterType((*ValueSet)(nil), "voltha.ValueSet")
 	proto.RegisterType((*Voltha)(nil), "voltha.Voltha")
 	proto.RegisterType((*SelfTestResponse)(nil), "voltha.SelfTestResponse")
 	proto.RegisterType((*OfAgentSubscriber)(nil), "voltha.OfAgentSubscriber")
@@ -2122,166 +2197,169 @@
 func init() { proto.RegisterFile("voltha_protos/voltha.proto", fileDescriptor_e084f1a60ce7016c) }
 
 var fileDescriptor_e084f1a60ce7016c = []byte{
-	// 2530 bytes of a gzipped FileDescriptorProto
+	// 2589 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4b, 0x73, 0x1b, 0xc7,
-	0x11, 0xe6, 0xf2, 0xcd, 0x26, 0x48, 0x02, 0x03, 0x3e, 0x20, 0x90, 0xb4, 0xa4, 0xb1, 0x2d, 0x31,
-	0xb4, 0x05, 0x48, 0xa2, 0xa4, 0x4a, 0xa4, 0xb8, 0x62, 0xbe, 0xc4, 0x20, 0x12, 0x05, 0x64, 0x21,
-	0x4a, 0x4e, 0x62, 0x15, 0x6a, 0x81, 0x1d, 0x80, 0x5b, 0x5a, 0x60, 0x91, 0xdd, 0x01, 0x25, 0x96,
-	0xca, 0x95, 0x2a, 0xe7, 0xe1, 0xdc, 0x7d, 0xc8, 0x2d, 0xa7, 0xa4, 0x52, 0x95, 0xff, 0xe2, 0x53,
-	0x4e, 0xb9, 0xa6, 0x72, 0xc8, 0x2f, 0xf0, 0x39, 0x35, 0x3d, 0xb3, 0xc0, 0x2e, 0x76, 0x97, 0x0f,
-	0xc7, 0x55, 0x39, 0x91, 0x3b, 0xdd, 0xf3, 0x7d, 0x3d, 0xdd, 0x33, 0x3d, 0xbd, 0xbd, 0x80, 0xfc,
-	0x89, 0x63, 0xf3, 0x63, 0xa3, 0xd6, 0x75, 0x1d, 0xee, 0x78, 0x45, 0xf9, 0x54, 0xc0, 0x27, 0x32,
-	0x29, 0x9f, 0xf2, 0x6b, 0x2d, 0xc7, 0x69, 0xd9, 0xac, 0x68, 0x74, 0xad, 0xa2, 0xd1, 0xe9, 0x38,
-	0xdc, 0xe0, 0x96, 0xd3, 0xf1, 0xa4, 0x56, 0x7e, 0x55, 0x49, 0xf1, 0xa9, 0xde, 0x6b, 0x16, 0x59,
-	0xbb, 0xcb, 0x4f, 0x95, 0x30, 0x17, 0x86, 0x6f, 0x33, 0xae, 0xc0, 0xf3, 0x43, 0xc4, 0x0d, 0xa7,
-	0xdd, 0x76, 0x3a, 0xf1, 0xb2, 0x63, 0x66, 0xd8, 0xfc, 0x58, 0xc9, 0x68, 0x58, 0x66, 0x3b, 0x2d,
-	0xab, 0x61, 0xd8, 0x35, 0x93, 0x9d, 0x58, 0x0d, 0x16, 0x3f, 0x3f, 0x24, 0x5b, 0x0d, 0xcb, 0x0c,
-	0xd3, 0xe8, 0x72, 0xe6, 0x2a, 0xe1, 0xd5, 0xb0, 0xd0, 0xe9, 0xb2, 0x4e, 0xd3, 0x76, 0xde, 0xd4,
-	0xee, 0x6c, 0x25, 0x28, 0xb4, 0x1b, 0x56, 0xad, 0x6d, 0xd5, 0x6b, 0x66, 0x5d, 0x29, 0x5c, 0x8f,
-	0x51, 0x30, 0x6c, 0xc3, 0x6d, 0xf7, 0x55, 0xe8, 0x5f, 0x34, 0x98, 0xdd, 0x43, 0x93, 0x0e, 0x5c,
-	0xa7, 0xd7, 0x25, 0x4b, 0x30, 0x6a, 0x99, 0x39, 0xed, 0x9a, 0xb6, 0x31, 0xb3, 0x33, 0xf1, 0x9f,
-	0x6f, 0xbf, 0x59, 0xd7, 0xf4, 0x51, 0xcb, 0x24, 0x25, 0x58, 0x08, 0x2f, 0xce, 0xcb, 0x8d, 0x5e,
-	0x1b, 0xdb, 0x98, 0xbd, 0xbb, 0x54, 0x50, 0x51, 0x7a, 0x2a, 0xc5, 0x12, 0x6b, 0x67, 0xe6, 0x5f,
-	0xdf, 0x7e, 0xb3, 0x3e, 0x2e, 0xb0, 0xf4, 0x79, 0x3b, 0x28, 0xf1, 0xc8, 0x16, 0x4c, 0xf9, 0x10,
-	0x63, 0x08, 0x31, 0xef, 0x43, 0x44, 0xe7, 0xfa, 0x9a, 0xf4, 0x47, 0x90, 0x0a, 0x58, 0xe9, 0x91,
-	0x1f, 0xc0, 0x84, 0xc5, 0x59, 0xdb, 0xcb, 0x69, 0x08, 0x91, 0x0d, 0x43, 0xa0, 0x92, 0x2e, 0x35,
-	0xe8, 0x9f, 0x35, 0x20, 0xfb, 0x27, 0xac, 0xc3, 0x1f, 0x5b, 0x36, 0x67, 0xae, 0xde, 0xb3, 0xd9,
-	0x13, 0x76, 0x4a, 0xbf, 0xd2, 0x20, 0x3b, 0x34, 0xfc, 0xfc, 0xb4, 0xcb, 0xc8, 0x3c, 0x40, 0x13,
-	0x47, 0x6a, 0x86, 0x6d, 0xa7, 0x47, 0x48, 0x0a, 0xa6, 0x1b, 0x06, 0x67, 0x2d, 0xc7, 0x3d, 0x4d,
-	0x6b, 0x24, 0x0d, 0x29, 0xaf, 0x57, 0xaf, 0xf5, 0x47, 0x46, 0x09, 0x81, 0xf9, 0xd7, 0x5d, 0xab,
-	0xc6, 0x04, 0x54, 0x8d, 0x9f, 0x76, 0x59, 0x7a, 0x8c, 0x2c, 0x41, 0xa6, 0xe1, 0x74, 0x9a, 0x56,
-	0x2b, 0x38, 0x3c, 0x2e, 0x86, 0xe5, 0x7a, 0x82, 0xc3, 0x13, 0xd4, 0x82, 0x85, 0x21, 0x43, 0xc8,
-	0xa7, 0x30, 0xf6, 0x9a, 0x9d, 0x62, 0x18, 0xe6, 0xef, 0x16, 0xfc, 0xc5, 0x45, 0x57, 0x51, 0x88,
-	0x59, 0x81, 0x2e, 0xa6, 0x92, 0x45, 0x98, 0x38, 0x31, 0xec, 0x1e, 0xcb, 0x8d, 0x8a, 0x50, 0xea,
-	0xf2, 0x81, 0xfe, 0x4d, 0x83, 0xd9, 0xc0, 0x94, 0xa4, 0x68, 0x2f, 0xc3, 0x24, 0xeb, 0x18, 0x75,
-	0x5b, 0xce, 0x9e, 0xd6, 0xd5, 0x13, 0x59, 0x85, 0x19, 0xb5, 0x00, 0xcb, 0xcc, 0x8d, 0x21, 0xf0,
-	0xb4, 0x1c, 0x28, 0x99, 0x64, 0x1d, 0x60, 0xb0, 0xac, 0xdc, 0x38, 0x4a, 0x67, 0x70, 0x04, 0xfd,
-	0x7a, 0x0b, 0x26, 0xdc, 0x9e, 0xcd, 0xbc, 0xdc, 0x04, 0x46, 0x6c, 0x25, 0x61, 0x51, 0xba, 0xd4,
-	0xa2, 0x9f, 0x40, 0x2a, 0x20, 0xf1, 0xc8, 0x2d, 0x98, 0x92, 0x61, 0x89, 0x84, 0x3c, 0x08, 0xe0,
-	0xeb, 0xd0, 0xd7, 0x90, 0xda, 0x75, 0x5c, 0x56, 0xea, 0x78, 0xdc, 0xe8, 0x34, 0x18, 0xb9, 0x01,
-	0xb3, 0x96, 0xfa, 0xbf, 0x36, 0xbc, 0x62, 0xf0, 0x25, 0x25, 0x93, 0x6c, 0xc1, 0xa4, 0x3c, 0xe0,
-	0xb8, 0xf2, 0xd9, 0xbb, 0x8b, 0x3e, 0xcb, 0x4f, 0x71, 0xb4, 0xca, 0x0d, 0xde, 0xf3, 0x76, 0x26,
-	0xc4, 0x0e, 0x1d, 0xd1, 0x95, 0x2a, 0x7d, 0x04, 0x73, 0x41, 0x32, 0x8f, 0x6c, 0x86, 0x77, 0x67,
-	0x1f, 0x24, 0xa8, 0xe5, 0x6f, 0xcf, 0xfb, 0xb0, 0x50, 0x6e, 0x37, 0xac, 0xe7, 0xcc, 0xe3, 0x3a,
-	0xfb, 0x75, 0x8f, 0x79, 0x9c, 0xcc, 0x0f, 0xa2, 0x82, 0xe1, 0x20, 0x30, 0xde, 0xeb, 0x59, 0xa6,
-	0x0a, 0x25, 0xfe, 0x4f, 0x7f, 0x03, 0x29, 0x39, 0xc5, 0xeb, 0x3a, 0x1d, 0x8f, 0x91, 0x9f, 0xc0,
-	0xa4, 0xcb, 0xbc, 0x9e, 0xcd, 0xd5, 0xa6, 0xb9, 0xe9, 0x73, 0x06, 0xb5, 0x42, 0x0f, 0x3a, 0xaa,
-	0xeb, 0x6a, 0x1a, 0x2d, 0x00, 0x89, 0x4a, 0xc9, 0x2c, 0x4c, 0x55, 0x8f, 0x76, 0x77, 0xf7, 0xab,
-	0xd5, 0xf4, 0x88, 0x78, 0x78, 0xbc, 0x5d, 0x7a, 0x7a, 0xa4, 0xef, 0xa7, 0x35, 0xfa, 0xcf, 0x71,
-	0x98, 0x7c, 0x81, 0x14, 0xe4, 0x2a, 0x4c, 0x9d, 0x30, 0xd7, 0xb3, 0x9c, 0x4e, 0xd8, 0xb1, 0xfe,
-	0x28, 0x79, 0x00, 0xd3, 0x2a, 0xb5, 0xf9, 0x69, 0x63, 0xc1, 0x37, 0x6f, 0x5b, 0x8e, 0x07, 0x0f,
-	0x7d, 0x5f, 0x37, 0x2e, 0xeb, 0x8c, 0xfd, 0xef, 0x59, 0x67, 0xfc, 0xa2, 0x59, 0x87, 0x7c, 0x0a,
-	0x29, 0xb5, 0xdf, 0xc5, 0x9e, 0xf6, 0xb7, 0x2e, 0x09, 0xcf, 0x14, 0xbb, 0x3b, 0x38, 0x7b, 0xd6,
-	0xec, 0x0f, 0x7b, 0x64, 0x17, 0xe6, 0x14, 0x42, 0x0b, 0x13, 0x57, 0x6e, 0x32, 0x31, 0x5f, 0x05,
-	0x31, 0x14, 0xad, 0x4a, 0x76, 0xbb, 0x30, 0x27, 0x4f, 0x96, 0x7f, 0x02, 0xa6, 0x12, 0x4f, 0x40,
-	0x08, 0x84, 0x05, 0x0f, 0xd0, 0xcf, 0x21, 0x33, 0xb8, 0x20, 0x0c, 0x6e, 0xd4, 0x0d, 0x8f, 0xe5,
-	0xd6, 0x14, 0x90, 0x90, 0x14, 0x0e, 0xad, 0xba, 0x34, 0x67, 0xcf, 0xe0, 0xc6, 0x4e, 0x5a, 0x00,
-	0xcd, 0x06, 0x0e, 0xbc, 0xbe, 0x20, 0xb4, 0x84, 0x92, 0x9a, 0x4d, 0x5e, 0x42, 0x36, 0x78, 0xa5,
-	0xf8, 0xa0, 0xeb, 0x2a, 0x44, 0x08, 0xba, 0x2d, 0x64, 0x67, 0xc2, 0xa2, 0x59, 0x52, 0x4d, 0x21,
-	0xd0, 0xbf, 0x6a, 0x90, 0xae, 0x32, 0xbb, 0x79, 0xb1, 0x1d, 0x3e, 0xac, 0x19, 0x1c, 0x08, 0xee,
-	0xf0, 0x0a, 0xcc, 0x87, 0x25, 0xc9, 0xbb, 0x9b, 0x64, 0x60, 0xee, 0x59, 0xf9, 0x79, 0xad, 0x7a,
-	0x54, 0xa9, 0x94, 0xf5, 0xe7, 0xfb, 0x7b, 0xe9, 0x51, 0x31, 0x74, 0xf4, 0xec, 0xc9, 0xb3, 0xf2,
-	0xcb, 0x67, 0xb5, 0x7d, 0x5d, 0x2f, 0xeb, 0xe9, 0x31, 0x5a, 0x86, 0x4c, 0xb9, 0xb9, 0xdd, 0x62,
-	0x1d, 0x5e, 0xed, 0xd5, 0xbd, 0x86, 0x6b, 0xd5, 0x99, 0x2b, 0xf2, 0xa0, 0xd3, 0x34, 0xc4, 0x60,
-	0x3f, 0xd3, 0xe8, 0x33, 0x6a, 0xa4, 0x64, 0x8a, 0x1c, 0xaa, 0x6e, 0xe5, 0xfe, 0x89, 0x9e, 0x96,
-	0x03, 0x25, 0x93, 0x3e, 0x02, 0x38, 0x64, 0xed, 0x3a, 0x73, 0xbd, 0x63, 0xab, 0x2b, 0x90, 0x70,
-	0xd7, 0xd4, 0x3a, 0x46, 0x9b, 0xf9, 0x48, 0x38, 0xf2, 0xcc, 0x68, 0x33, 0x95, 0x26, 0x46, 0xfd,
-	0x34, 0x41, 0xf7, 0x21, 0xf5, 0xd8, 0x76, 0xde, 0x1c, 0x32, 0x6e, 0x88, 0x58, 0x90, 0xfb, 0x30,
-	0xd9, 0x66, 0x81, 0x8c, 0xb9, 0x5e, 0x08, 0x96, 0x10, 0x4e, 0xb3, 0x5b, 0x43, 0x71, 0x4d, 0x5e,
-	0x55, 0xba, 0x52, 0xbe, 0xfb, 0xa7, 0x22, 0xcc, 0xc9, 0x83, 0x5d, 0x65, 0xae, 0x08, 0x12, 0x79,
-	0x09, 0x73, 0x07, 0x8c, 0x07, 0x0c, 0x5b, 0x2e, 0xc8, 0x32, 0xab, 0xe0, 0x97, 0x59, 0x85, 0x7d,
-	0x51, 0x66, 0xe5, 0xfb, 0x27, 0x63, 0xa0, 0x4b, 0xf3, 0x5f, 0xfe, 0xe3, 0xdf, 0x5f, 0x8f, 0x2e,
-	0x12, 0x82, 0x15, 0xdb, 0xc9, 0x9d, 0x62, 0x7b, 0x80, 0xf3, 0x0a, 0xd2, 0x47, 0x5d, 0xd3, 0xe0,
-	0x2c, 0x80, 0x1d, 0x83, 0x91, 0x4f, 0xe0, 0xa3, 0xeb, 0x88, 0xbd, 0x42, 0x63, 0xb0, 0x1f, 0x6a,
-	0x9b, 0x64, 0x0f, 0x66, 0x0e, 0x18, 0x57, 0x49, 0x2a, 0xc9, 0xe6, 0x7e, 0x1e, 0x90, 0x7a, 0x74,
-	0x01, 0x31, 0x67, 0xc8, 0x94, 0xc2, 0x24, 0xaf, 0x20, 0xf3, 0xd4, 0xf2, 0x78, 0x38, 0xc3, 0x27,
-	0xa1, 0x2d, 0xc5, 0xa5, 0x7a, 0x8f, 0x5e, 0x41, 0xd0, 0x2c, 0xc9, 0xf8, 0x86, 0x5a, 0x7d, 0xa4,
-	0x2a, 0x2c, 0x1c, 0xb0, 0x10, 0x3a, 0x81, 0x82, 0x2a, 0x40, 0x4b, 0x7b, 0xf9, 0xd8, 0xbb, 0x83,
-	0xbe, 0x87, 0x78, 0x39, 0xb2, 0x1c, 0xc1, 0x2b, 0xbe, 0xb3, 0xcc, 0x2f, 0x88, 0x0e, 0x29, 0x61,
-	0xf3, 0xb6, 0x9f, 0x48, 0x93, 0xcc, 0x4d, 0x0f, 0xa5, 0x61, 0x8f, 0xe6, 0x10, 0x99, 0x90, 0xb4,
-	0x8f, 0xdc, 0x4f, 0xc6, 0x0c, 0x88, 0xc0, 0x7c, 0x1a, 0xce, 0xab, 0x49, 0xc8, 0xcb, 0xb1, 0x19,
-	0xda, 0xa3, 0x57, 0x11, 0xff, 0x0a, 0x59, 0xf1, 0xf1, 0x87, 0x12, 0x3c, 0xf9, 0x15, 0xa4, 0x0f,
-	0x58, 0x98, 0x25, 0xe4, 0x90, 0xf8, 0xd4, 0x4f, 0x3f, 0x40, 0xdc, 0xf7, 0xc8, 0x5a, 0x02, 0xae,
-	0xf4, 0x4b, 0x13, 0x96, 0x23, 0x6b, 0xa8, 0x38, 0x2e, 0xf7, 0xe2, 0x7d, 0xae, 0xf4, 0x50, 0x83,
-	0x6e, 0x22, 0xc3, 0x07, 0x84, 0x9e, 0xc5, 0x50, 0xec, 0x22, 0xda, 0x5b, 0x58, 0x1c, 0x5e, 0x84,
-	0x00, 0x21, 0x4b, 0x31, 0xc8, 0x25, 0x33, 0x9f, 0x8d, 0x19, 0xa6, 0xf7, 0x90, 0xaf, 0x40, 0x3e,
-	0x3e, 0x9f, 0xaf, 0xf8, 0x4e, 0xfc, 0xa9, 0x89, 0x15, 0xfe, 0x5e, 0x83, 0x95, 0x7d, 0xac, 0xd6,
-	0x2e, 0xcc, 0x9e, 0x74, 0xba, 0x1e, 0xa1, 0x01, 0xf7, 0xe9, 0xd6, 0x65, 0x0c, 0x28, 0xaa, 0x52,
-	0xf1, 0x2b, 0x0d, 0x72, 0x7b, 0x96, 0xf7, 0xbd, 0x18, 0xf2, 0x63, 0x34, 0xe4, 0x01, 0xbd, 0x77,
-	0x29, 0x43, 0x4c, 0xc9, 0x4e, 0xcc, 0x98, 0x98, 0x8b, 0x3c, 0x19, 0x8e, 0x39, 0x09, 0x25, 0x47,
-	0x94, 0x5f, 0x30, 0xe2, 0x4d, 0xc4, 0xfa, 0xad, 0x06, 0x6b, 0x32, 0x97, 0x45, 0x88, 0x9e, 0xa3,
-	0x19, 0x6b, 0x11, 0x02, 0x1c, 0x97, 0x73, 0x12, 0x97, 0x7e, 0x0b, 0x4d, 0xb8, 0x49, 0x2f, 0x60,
-	0x82, 0xc8, 0x78, 0xbf, 0xd3, 0x60, 0x3d, 0xc6, 0x8a, 0x43, 0x91, 0xd9, 0xa5, 0x19, 0xab, 0x21,
-	0x33, 0x50, 0x70, 0xe8, 0x98, 0xe7, 0x58, 0x51, 0x40, 0x2b, 0x36, 0xe8, 0xfb, 0x67, 0x5a, 0x21,
-	0xef, 0x0f, 0x61, 0x46, 0x0b, 0x56, 0x22, 0x2e, 0x47, 0xaa, 0xb0, 0xcf, 0xb3, 0x51, 0x5b, 0x3c,
-	0xfa, 0x11, 0x72, 0x7d, 0x48, 0x2e, 0xc2, 0x45, 0x38, 0xac, 0xc6, 0xc6, 0x56, 0x15, 0x4e, 0x41,
-	0xb2, 0x95, 0x88, 0xff, 0xa5, 0x12, 0xbd, 0x8d, 0x84, 0x9b, 0x64, 0xe3, 0x5c, 0x17, 0xab, 0x1a,
-	0x8e, 0x7c, 0xad, 0xc1, 0xf5, 0x84, 0x58, 0x23, 0xa6, 0xf4, 0xf4, 0xf5, 0x78, 0xc2, 0x8b, 0x44,
-	0x7d, 0x0b, 0x4d, 0xba, 0x45, 0x2f, 0x6c, 0x92, 0x70, 0x7a, 0x19, 0x66, 0x85, 0x2f, 0xce, 0x4b,
-	0xcc, 0x0b, 0xe1, 0xd2, 0xd3, 0xa3, 0x2b, 0x48, 0x96, 0x21, 0x0b, 0x3e, 0x99, 0x9f, 0x89, 0xcb,
-	0x30, 0x37, 0x00, 0x2c, 0x99, 0xc9, 0x90, 0xb3, 0x03, 0x37, 0xc7, 0x5c, 0x75, 0x12, 0xce, 0x32,
-	0x3d, 0x72, 0x04, 0x69, 0x9d, 0x35, 0x9c, 0x4e, 0xc3, 0xb2, 0x99, 0x6f, 0x66, 0x70, 0x6e, 0xa2,
-	0x3f, 0xd6, 0x10, 0x73, 0x99, 0x46, 0x31, 0xc5, 0xc2, 0xf7, 0xf1, 0x9a, 0x8f, 0xb9, 0x2a, 0x86,
-	0x4a, 0x7c, 0x1f, 0x86, 0x2c, 0x0e, 0xad, 0x54, 0xde, 0x0d, 0x3f, 0x83, 0xd4, 0xae, 0xcb, 0x0c,
-	0xae, 0x4c, 0x23, 0x43, 0xb3, 0x23, 0x68, 0xaa, 0xb0, 0xa1, 0xc3, 0x7e, 0x13, 0x26, 0xbd, 0x84,
-	0x94, 0x4c, 0xc2, 0x31, 0x56, 0x25, 0x2d, 0xf2, 0x7d, 0xc4, 0x5b, 0xa7, 0xab, 0x71, 0xd6, 0xf9,
-	0x69, 0xf5, 0x17, 0x30, 0xa7, 0xb2, 0xea, 0x25, 0x90, 0xd5, 0xdd, 0x48, 0xd7, 0x62, 0x91, 0xfd,
-	0x3c, 0xf9, 0x12, 0x52, 0x3a, 0xab, 0x3b, 0x0e, 0xff, 0xde, 0x6c, 0x76, 0x11, 0x4e, 0x00, 0xef,
-	0x31, 0x9b, 0xf1, 0xef, 0xe0, 0x8c, 0xcd, 0x78, 0x60, 0x13, 0xe1, 0x48, 0x0f, 0xe6, 0xf6, 0x9c,
-	0x37, 0x1d, 0xdb, 0x31, 0xcc, 0x52, 0xdb, 0x68, 0xb1, 0xc1, 0xbd, 0x82, 0x8f, 0xbe, 0x2c, 0xbf,
-	0xe4, 0x13, 0x96, 0xbb, 0xcc, 0xc5, 0x76, 0xa1, 0x78, 0x55, 0xa0, 0x0f, 0x90, 0xe3, 0x36, 0xfd,
-	0x28, 0x96, 0xc3, 0x12, 0x10, 0x35, 0x53, 0x61, 0x78, 0xc5, 0x77, 0xa2, 0x08, 0xff, 0x42, 0x04,
-	0xf7, 0x4b, 0x0d, 0x96, 0x0f, 0x18, 0x0f, 0x71, 0xc8, 0xc6, 0x40, 0xb2, 0x01, 0x71, 0xc3, 0xf4,
-	0x21, 0x1a, 0x70, 0x8f, 0xdc, 0xbd, 0x84, 0x01, 0x45, 0x4f, 0x32, 0xf5, 0xb0, 0x4c, 0x0a, 0xe1,
-	0x5d, 0x92, 0x5d, 0x25, 0x19, 0x72, 0x99, 0xe5, 0x93, 0xa6, 0x2c, 0x02, 0x43, 0x48, 0xde, 0x50,
-	0x44, 0xe3, 0xd8, 0x3c, 0xfa, 0x31, 0xd2, 0xdd, 0x20, 0x1f, 0x5c, 0x84, 0x8e, 0xbc, 0x85, 0xec,
-	0xae, 0xa8, 0x67, 0xed, 0x0b, 0xae, 0x30, 0x36, 0xc0, 0x6a, 0x85, 0x9b, 0x97, 0x5a, 0xe1, 0x1f,
-	0x35, 0xc8, 0x6e, 0x37, 0xb8, 0x75, 0x62, 0x70, 0x86, 0x2c, 0x32, 0x57, 0x5f, 0x92, 0x7a, 0x17,
-	0xa9, 0x3f, 0xa1, 0x3f, 0xbc, 0x4c, 0x68, 0xe5, 0x70, 0x0f, 0xf9, 0xc4, 0x46, 0xfb, 0x83, 0x06,
-	0x19, 0x9d, 0x9d, 0x30, 0x97, 0xff, 0x5f, 0x0c, 0x71, 0x91, 0x5a, 0x18, 0x52, 0x81, 0x85, 0xc1,
-	0x4d, 0x10, 0xad, 0x97, 0xe7, 0x7c, 0x8b, 0x64, 0xa1, 0x4c, 0x91, 0x72, 0x8d, 0xe4, 0x63, 0x29,
-	0x65, 0x81, 0xfc, 0x0a, 0xb2, 0x01, 0xc4, 0xf6, 0x2e, 0xbe, 0x82, 0x86, 0x51, 0x33, 0x7d, 0x54,
-	0x5f, 0x4c, 0x6f, 0x22, 0xf2, 0x75, 0x72, 0x35, 0x1e, 0xb9, 0xad, 0x5e, 0x65, 0x3d, 0xd2, 0x81,
-	0x25, 0xe9, 0xad, 0x61, 0x82, 0x28, 0x68, 0x62, 0x0a, 0x52, 0xd5, 0x1f, 0x3d, 0x8f, 0x4c, 0x38,
-	0xe8, 0x28, 0xe8, 0xa0, 0x8b, 0x15, 0x97, 0x67, 0x7b, 0x49, 0x16, 0x95, 0x0c, 0x16, 0xc3, 0xb0,
-	0x97, 0xa9, 0x6b, 0x36, 0x90, 0x80, 0x92, 0x6b, 0x89, 0x04, 0x7e, 0x3d, 0xf3, 0x79, 0xd0, 0x7a,
-	0xd9, 0xb7, 0x4a, 0xba, 0xea, 0xb3, 0xd1, 0xde, 0x97, 0x97, 0x74, 0xaf, 0xca, 0xa6, 0x19, 0xd1,
-	0xb1, 0x7b, 0x30, 0xd0, 0x1f, 0xf2, 0x4c, 0x04, 0x8f, 0x5e, 0x47, 0xb8, 0x55, 0x72, 0x25, 0x0e,
-	0x4e, 0xde, 0xd5, 0x35, 0x48, 0x0f, 0x2c, 0x56, 0x4e, 0x49, 0x32, 0x79, 0x31, 0xa6, 0xd7, 0xe6,
-	0xf9, 0xad, 0x03, 0xb2, 0x34, 0x44, 0xa2, 0x5c, 0xf2, 0x18, 0xd2, 0x55, 0xee, 0x32, 0xa3, 0x5d,
-	0x31, 0x1a, 0xaf, 0x19, 0xf7, 0xca, 0x3d, 0x4e, 0x96, 0x43, 0x9e, 0x96, 0x82, 0x72, 0x8f, 0x27,
-	0x6e, 0xa0, 0x91, 0x0d, 0x8d, 0xec, 0x63, 0xc9, 0xc3, 0xac, 0x13, 0xa6, 0x80, 0x4a, 0x9d, 0x33,
-	0x7a, 0x07, 0x51, 0xfc, 0x52, 0x87, 0x8e, 0xdc, 0xd6, 0xc8, 0x13, 0xc8, 0x2a, 0x98, 0xdd, 0x63,
-	0xa3, 0xd3, 0x62, 0xd8, 0xf1, 0x4b, 0x5e, 0x72, 0x2e, 0x84, 0x14, 0x98, 0x82, 0x60, 0x47, 0x30,
-	0xdf, 0x0f, 0x88, 0xfc, 0xe8, 0x13, 0x2e, 0xca, 0xa3, 0xee, 0x4a, 0xda, 0xac, 0xca, 0x5b, 0x7e,
-	0x4c, 0x32, 0xb2, 0x7e, 0x0a, 0x7e, 0x60, 0x88, 0xeb, 0x51, 0xe6, 0xe3, 0x06, 0xe9, 0x35, 0xa4,
-	0xc8, 0xd3, 0x7e, 0x40, 0x42, 0x2d, 0x4f, 0x71, 0xc8, 0x5e, 0xa0, 0xdd, 0x41, 0xf4, 0xd8, 0x97,
-	0xf6, 0xe0, 0x67, 0x83, 0xa8, 0xe1, 0x21, 0x54, 0x69, 0xb8, 0x09, 0x19, 0x99, 0x2c, 0xbe, 0x9b,
-	0xe1, 0x1f, 0x22, 0xc5, 0xd5, 0xfc, 0x19, 0x14, 0xc2, 0x7a, 0x13, 0x32, 0xb2, 0x0a, 0x3a, 0x97,
-	0x25, 0x69, 0x3f, 0xa9, 0xb5, 0x6c, 0x9e, 0xb5, 0x16, 0x75, 0x30, 0x42, 0x9f, 0x4e, 0xce, 0x3d,
-	0x18, 0x21, 0x8f, 0x45, 0x0e, 0x46, 0x88, 0x85, 0x3c, 0xc5, 0x62, 0x1b, 0xaf, 0x1e, 0x2f, 0xbe,
-	0xd8, 0x96, 0x32, 0xbf, 0x82, 0x23, 0xab, 0xc9, 0x17, 0x8f, 0x47, 0x3e, 0x83, 0x69, 0xbf, 0x25,
-	0x1b, 0x02, 0xcb, 0x25, 0xf5, 0x76, 0xe9, 0x0d, 0x84, 0xbd, 0x46, 0xdf, 0x8b, 0x85, 0xf5, 0x98,
-	0xdd, 0xac, 0x71, 0x81, 0xf6, 0x02, 0xeb, 0xa3, 0x50, 0x4b, 0x7b, 0xf8, 0xdd, 0x33, 0xd2, 0xf3,
-	0x8e, 0x66, 0x1e, 0x71, 0x8c, 0x84, 0x9e, 0x7a, 0xe9, 0xb4, 0xea, 0xe4, 0x73, 0x20, 0x07, 0x8c,
-	0x0f, 0x75, 0xb5, 0x87, 0x1a, 0x54, 0x71, 0x8d, 0xef, 0xa8, 0x3f, 0xc2, 0xd8, 0xd8, 0x43, 0x27,
-	0x1e, 0xcc, 0x55, 0xad, 0x76, 0xcf, 0x36, 0x38, 0xc3, 0xf9, 0x64, 0xad, 0xef, 0x88, 0xe0, 0xb0,
-	0xfa, 0x50, 0x94, 0x74, 0xe7, 0x47, 0x9a, 0x06, 0x61, 0x1f, 0x29, 0xa4, 0x9a, 0x40, 0x12, 0x3b,
-	0x73, 0x17, 0x66, 0xfa, 0xed, 0x6b, 0x72, 0xc5, 0x27, 0x8c, 0x34, 0xb6, 0xf3, 0xc9, 0x22, 0x3a,
-	0x42, 0x0e, 0x01, 0xe4, 0x1b, 0x0f, 0x36, 0x78, 0x52, 0xc1, 0x8a, 0x20, 0x71, 0x43, 0xab, 0x57,
-	0x45, 0x3a, 0x2f, 0x6c, 0x1c, 0xcc, 0x56, 0x2f, 0xb3, 0xea, 0x3d, 0xe7, 0x12, 0x78, 0x83, 0x37,
-	0xb2, 0x93, 0x3b, 0xc5, 0xc0, 0x74, 0x01, 0xf8, 0x19, 0xcc, 0x8a, 0xe4, 0xf1, 0x96, 0xbf, 0x30,
-	0xec, 0x1e, 0x23, 0xcb, 0xbe, 0xe7, 0xf0, 0xb1, 0xda, 0x65, 0x0d, 0xab, 0x69, 0x31, 0x37, 0xbf,
-	0xe8, 0x8f, 0xeb, 0x8c, 0xf7, 0xdc, 0x0e, 0x4a, 0x3d, 0xba, 0x8a, 0xc0, 0x4b, 0x24, 0xeb, 0x3b,
-	0x34, 0x08, 0x75, 0x0c, 0xd9, 0x2a, 0x37, 0x5c, 0xee, 0x7f, 0xc5, 0x13, 0xc5, 0xa3, 0xd3, 0x21,
-	0xfd, 0x0f, 0x9c, 0x43, 0x5f, 0xf7, 0x06, 0xc7, 0x2e, 0xb4, 0xaf, 0xd5, 0xe1, 0xa6, 0xfd, 0xbe,
-	0xa8, 0x27, 0x30, 0x6b, 0xf8, 0x7d, 0x45, 0x6c, 0xe8, 0x87, 0xda, 0xe6, 0x8e, 0x0d, 0x59, 0xc7,
-	0x6d, 0x61, 0x6e, 0x6f, 0x38, 0xae, 0xa9, 0x70, 0x76, 0x52, 0xb2, 0x73, 0x5d, 0xc1, 0x8f, 0xfc,
-	0xbf, 0x2c, 0xb4, 0x2c, 0x7e, 0xdc, 0xab, 0x8b, 0x75, 0x14, 0x7d, 0x4d, 0xf5, 0x4b, 0x8a, 0x5b,
-	0xfe, 0xef, 0x2a, 0xb6, 0x8a, 0x2d, 0x47, 0x8d, 0xfd, 0x7d, 0x74, 0xb9, 0xec, 0xe3, 0xbd, 0x08,
-	0x36, 0xc2, 0x2b, 0xa3, 0x95, 0xb1, 0xca, 0x78, 0x65, 0xa2, 0x32, 0x59, 0x99, 0xaa, 0x4c, 0xd7,
-	0x27, 0x71, 0xee, 0xd6, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x17, 0x64, 0x56, 0xa3, 0x21,
-	0x00, 0x00,
+	0x11, 0x26, 0xf8, 0x66, 0x03, 0x24, 0x81, 0x01, 0x1f, 0x10, 0x48, 0xea, 0x31, 0xb6, 0x25, 0x86,
+	0xb6, 0x00, 0x49, 0x94, 0x54, 0x8e, 0x14, 0x57, 0xcc, 0x97, 0x68, 0x44, 0xa2, 0x80, 0x2c, 0x48,
+	0xc9, 0x49, 0xac, 0x42, 0x2d, 0xb0, 0x03, 0x70, 0x4b, 0x0b, 0x2c, 0xb2, 0x3b, 0xa0, 0xc4, 0x52,
+	0xb9, 0x52, 0xe5, 0x3c, 0x9c, 0xbb, 0xef, 0x39, 0x25, 0x95, 0xaa, 0xfc, 0x17, 0x9f, 0x72, 0xca,
+	0x35, 0x95, 0x43, 0x2e, 0xb9, 0xfa, 0x9c, 0x9a, 0x9e, 0x59, 0x60, 0x17, 0xbb, 0xcb, 0x87, 0xe3,
+	0xaa, 0x9c, 0xc8, 0xed, 0xee, 0xf9, 0xfa, 0x35, 0xd3, 0xd3, 0xdb, 0x0b, 0xc8, 0x9f, 0xd8, 0x16,
+	0x3f, 0xd6, 0x6b, 0x5d, 0xc7, 0xe6, 0xb6, 0x5b, 0x94, 0x4f, 0x05, 0x7c, 0x22, 0x93, 0xf2, 0x29,
+	0xbf, 0xda, 0xb2, 0xed, 0x96, 0xc5, 0x8a, 0x7a, 0xd7, 0x2c, 0xea, 0x9d, 0x8e, 0xcd, 0x75, 0x6e,
+	0xda, 0x1d, 0x57, 0x4a, 0xe5, 0x57, 0x14, 0x17, 0x9f, 0xea, 0xbd, 0x66, 0x91, 0xb5, 0xbb, 0xfc,
+	0x54, 0x31, 0x73, 0x41, 0xf8, 0x36, 0xe3, 0x0a, 0x3c, 0x3f, 0xa4, 0xb8, 0x61, 0xb7, 0xdb, 0x76,
+	0x27, 0x9a, 0x77, 0xcc, 0x74, 0x8b, 0x1f, 0x2b, 0x1e, 0x0d, 0xf2, 0x2c, 0xbb, 0x65, 0x36, 0x74,
+	0xab, 0x66, 0xb0, 0x13, 0xb3, 0xc1, 0xa2, 0xd7, 0x07, 0x78, 0x2b, 0x41, 0x9e, 0x6e, 0xe8, 0x5d,
+	0xce, 0x1c, 0xc5, 0xbc, 0x16, 0x64, 0xda, 0x5d, 0xd6, 0x69, 0x5a, 0xf6, 0x9b, 0xda, 0xdd, 0xcd,
+	0x18, 0x81, 0x76, 0xc3, 0xac, 0xb5, 0xcd, 0x7a, 0xcd, 0xa8, 0x2b, 0x81, 0x1b, 0x11, 0x02, 0xba,
+	0xa5, 0x3b, 0xed, 0x81, 0xc8, 0xd5, 0xa0, 0x08, 0x7b, 0xcb, 0x6b, 0x0d, 0xbb, 0xd3, 0x34, 0x5b,
+	0x92, 0x4f, 0xff, 0x9c, 0x80, 0xe4, 0x2e, 0x9a, 0xbc, 0xef, 0xd8, 0xbd, 0x2e, 0x59, 0x84, 0x51,
+	0xd3, 0xc8, 0x25, 0xae, 0x27, 0xd6, 0x67, 0xb6, 0x27, 0xfe, 0xfd, 0xdd, 0xb7, 0x6b, 0x09, 0x6d,
+	0xd4, 0x34, 0x48, 0x09, 0xe6, 0x83, 0xce, 0xbb, 0xb9, 0xd1, 0xeb, 0x63, 0xeb, 0xc9, 0x7b, 0x8b,
+	0x05, 0x95, 0xc5, 0x67, 0x92, 0x2d, 0xb1, 0xb6, 0x67, 0xfe, 0xf9, 0xdd, 0xb7, 0x6b, 0xe3, 0x02,
+	0x4b, 0x9b, 0xb3, 0xfc, 0x1c, 0x97, 0x6c, 0xc2, 0x94, 0x07, 0x31, 0x86, 0x10, 0x73, 0x1e, 0x44,
+	0x78, 0xad, 0x27, 0x49, 0x7f, 0x0c, 0x29, 0x9f, 0x95, 0x2e, 0xf9, 0x11, 0x4c, 0x98, 0x9c, 0xb5,
+	0xdd, 0x5c, 0x02, 0x21, 0xb2, 0x41, 0x08, 0x14, 0xd2, 0xa4, 0x04, 0xfd, 0x53, 0x02, 0xc8, 0xde,
+	0x09, 0xeb, 0xf0, 0x27, 0xa6, 0xc5, 0x99, 0xa3, 0xf5, 0x2c, 0xf6, 0x94, 0x9d, 0xd2, 0xaf, 0x13,
+	0x90, 0x1d, 0x22, 0x1f, 0x9e, 0x76, 0x19, 0x99, 0x03, 0x68, 0x22, 0xa5, 0xa6, 0x5b, 0x56, 0x7a,
+	0x84, 0xa4, 0x60, 0xba, 0xa1, 0x73, 0xd6, 0xb2, 0x9d, 0xd3, 0x74, 0x82, 0xa4, 0x21, 0xe5, 0xf6,
+	0xea, 0xb5, 0x3e, 0x65, 0x94, 0x10, 0x98, 0x7b, 0xdd, 0x35, 0x6b, 0x4c, 0x40, 0xd5, 0xf8, 0x69,
+	0x97, 0xa5, 0xc7, 0xc8, 0x22, 0x64, 0x64, 0x90, 0xfd, 0xe4, 0x71, 0x41, 0x96, 0xfe, 0xf8, 0xc9,
+	0x13, 0xd4, 0x84, 0xf9, 0x21, 0x43, 0xc8, 0xa7, 0x30, 0xf6, 0x9a, 0x9d, 0x62, 0x1a, 0xe6, 0xee,
+	0x15, 0x3c, 0xe7, 0xc2, 0x5e, 0x14, 0x22, 0x3c, 0xd0, 0xc4, 0x52, 0xb2, 0x00, 0x13, 0x27, 0xba,
+	0xd5, 0x63, 0xb9, 0x51, 0x91, 0x4a, 0x4d, 0x3e, 0xd0, 0xbf, 0x26, 0x20, 0xe9, 0x5b, 0x12, 0x97,
+	0xed, 0x25, 0x98, 0x64, 0x1d, 0xbd, 0x6e, 0xc9, 0xd5, 0xd3, 0x9a, 0x7a, 0x22, 0x2b, 0x30, 0xa3,
+	0x1c, 0x30, 0x8d, 0xdc, 0x18, 0x02, 0x4f, 0x4b, 0x42, 0xc9, 0x20, 0x6b, 0x00, 0x03, 0xb7, 0x72,
+	0xe3, 0xc8, 0x9d, 0x41, 0x0a, 0xc6, 0xf5, 0x36, 0x4c, 0x38, 0x3d, 0x8b, 0xb9, 0xb9, 0x09, 0xcc,
+	0xd8, 0x72, 0x8c, 0x53, 0x9a, 0x94, 0xa2, 0x9f, 0x40, 0xca, 0xc7, 0x71, 0xc9, 0x6d, 0x98, 0x92,
+	0x69, 0x09, 0xa5, 0xdc, 0x0f, 0xe0, 0xc9, 0xd0, 0xd7, 0x90, 0xda, 0xb1, 0x1d, 0x56, 0xea, 0xb8,
+	0x5c, 0xef, 0x34, 0x18, 0xb9, 0x09, 0x49, 0x53, 0xfd, 0x5f, 0x1b, 0xf6, 0x18, 0x3c, 0x4e, 0xc9,
+	0x20, 0x9b, 0x30, 0x29, 0x0b, 0x00, 0x7a, 0x9e, 0xbc, 0xb7, 0xe0, 0x69, 0xf9, 0x0c, 0xa9, 0x55,
+	0xae, 0xf3, 0x9e, 0xbb, 0x3d, 0x21, 0x76, 0xe8, 0x88, 0xa6, 0x44, 0xe9, 0x63, 0x98, 0xf5, 0x2b,
+	0x73, 0xc9, 0x46, 0x70, 0x77, 0xf6, 0x41, 0xfc, 0x52, 0xde, 0xf6, 0x7c, 0x00, 0xf3, 0xe5, 0x76,
+	0xc3, 0x3c, 0x64, 0x2e, 0xd7, 0xd8, 0xaf, 0x7b, 0xcc, 0xe5, 0x64, 0x6e, 0x90, 0x15, 0x4c, 0x07,
+	0x81, 0xf1, 0x5e, 0xcf, 0x34, 0x54, 0x2a, 0xf1, 0x7f, 0xfa, 0x1b, 0x48, 0xc9, 0x25, 0x6e, 0xd7,
+	0xee, 0xb8, 0x8c, 0xfc, 0x14, 0x26, 0x1d, 0xe6, 0xf6, 0x2c, 0xae, 0x36, 0xcd, 0x2d, 0x4f, 0xa7,
+	0x5f, 0x2a, 0xf0, 0xa0, 0xa1, 0xb8, 0xa6, 0x96, 0xd1, 0x02, 0x90, 0x30, 0x97, 0x24, 0x61, 0xaa,
+	0x7a, 0xb4, 0xb3, 0xb3, 0x57, 0xad, 0xa6, 0x47, 0xc4, 0xc3, 0x93, 0xad, 0xd2, 0xb3, 0x23, 0x6d,
+	0x2f, 0x9d, 0xa0, 0xaf, 0x60, 0xfa, 0x85, 0xd8, 0x53, 0x55, 0x16, 0x36, 0xf8, 0x63, 0x48, 0xc9,
+	0x32, 0x24, 0x4f, 0x81, 0x8a, 0x65, 0xb6, 0xa0, 0x2a, 0xcf, 0x96, 0xe0, 0xed, 0xe0, 0xff, 0x9f,
+	0x8d, 0x68, 0x49, 0x7d, 0xf0, 0xb8, 0x3d, 0xa5, 0xb6, 0x2d, 0xfd, 0xc7, 0x38, 0x4c, 0xbe, 0x40,
+	0x0f, 0xc8, 0x35, 0x98, 0x3a, 0x61, 0x8e, 0x6b, 0xda, 0x9d, 0x60, 0xde, 0x3c, 0x2a, 0x79, 0x08,
+	0xd3, 0xaa, 0xb2, 0x7a, 0x55, 0x69, 0xde, 0xf3, 0x7e, 0x4b, 0xd2, 0xfd, 0x35, 0xa5, 0x2f, 0x1b,
+	0x55, 0xd4, 0xc6, 0xfe, 0xf7, 0xa2, 0x36, 0x7e, 0xd1, 0xa2, 0x46, 0x3e, 0x85, 0x94, 0x3a, 0x4e,
+	0xe2, 0xc8, 0x78, 0x27, 0x83, 0x04, 0x57, 0x8a, 0xc3, 0xe3, 0x5f, 0x9d, 0x34, 0xfa, 0x64, 0x97,
+	0xec, 0xc0, 0xac, 0x42, 0x68, 0x61, 0x5d, 0xcc, 0x4d, 0xc6, 0x96, 0x43, 0x3f, 0x86, 0x52, 0xab,
+	0x6a, 0xe9, 0x0e, 0xcc, 0xca, 0x83, 0xeb, 0x1d, 0xb0, 0xa9, 0xd8, 0x03, 0x16, 0x00, 0x61, 0xfe,
+	0xf3, 0xf9, 0x73, 0xc8, 0x0c, 0xee, 0x27, 0x9d, 0xeb, 0x75, 0xdd, 0x65, 0xb9, 0x55, 0x05, 0x24,
+	0x38, 0x85, 0x03, 0xb3, 0x2e, 0xcd, 0xd9, 0xd5, 0xb9, 0xbe, 0x9d, 0x16, 0x40, 0x49, 0x5f, 0x3d,
+	0xd1, 0xe6, 0x85, 0x94, 0x10, 0x52, 0xab, 0xc9, 0x4b, 0xc8, 0xfa, 0x6f, 0x34, 0x0f, 0x74, 0x4d,
+	0xa5, 0x08, 0x41, 0x71, 0x2b, 0x9d, 0x09, 0x8b, 0x66, 0x49, 0x31, 0x85, 0x40, 0xff, 0x92, 0x80,
+	0x74, 0x95, 0x59, 0xcd, 0x8b, 0x1d, 0xa0, 0x61, 0x49, 0x3f, 0xc1, 0x7f, 0x80, 0x2a, 0x30, 0x17,
+	0xe4, 0xc4, 0x1f, 0x1e, 0x92, 0x81, 0xd9, 0xe7, 0xe5, 0xc3, 0x5a, 0xf5, 0xa8, 0x52, 0x29, 0x6b,
+	0x87, 0x7b, 0xbb, 0xe9, 0x51, 0x41, 0x3a, 0x7a, 0xfe, 0xf4, 0x79, 0xf9, 0xe5, 0xf3, 0xda, 0x9e,
+	0xa6, 0x95, 0xb5, 0xf4, 0x18, 0x2d, 0x43, 0xa6, 0xdc, 0xdc, 0x6a, 0xb1, 0x0e, 0xaf, 0xf6, 0xea,
+	0x6e, 0xc3, 0x31, 0xeb, 0xcc, 0x11, 0x65, 0xd6, 0x6e, 0xea, 0x82, 0xd8, 0x2f, 0x64, 0xda, 0x8c,
+	0xa2, 0x94, 0x0c, 0x51, 0xa2, 0xd5, 0x8d, 0xdf, 0x2f, 0x18, 0xd3, 0x92, 0x50, 0x32, 0xe8, 0x63,
+	0x80, 0x03, 0xd6, 0xae, 0x33, 0xc7, 0x3d, 0x36, 0xbb, 0x02, 0x09, 0x77, 0x4d, 0xad, 0xa3, 0xb7,
+	0x99, 0x87, 0x84, 0x94, 0xe7, 0x7a, 0x9b, 0xa9, 0x43, 0x3d, 0xea, 0x1d, 0x6a, 0xba, 0x07, 0xa9,
+	0x27, 0x96, 0xfd, 0xe6, 0x80, 0x71, 0x5d, 0xe4, 0x82, 0x3c, 0x80, 0xc9, 0x36, 0xf3, 0x15, 0xe4,
+	0xb5, 0x82, 0xbf, 0x83, 0xb1, 0x9b, 0xdd, 0x1a, 0xb2, 0x55, 0x0d, 0xd0, 0x94, 0xf0, 0xbd, 0xff,
+	0x14, 0x61, 0x56, 0x1e, 0xec, 0x2a, 0x73, 0x44, 0x92, 0xc8, 0x4b, 0x98, 0xdd, 0x67, 0xdc, 0x67,
+	0xd8, 0x52, 0x41, 0x76, 0x79, 0x05, 0xaf, 0xcb, 0x2b, 0xec, 0x89, 0x2e, 0x2f, 0xdf, 0x3f, 0x19,
+	0x03, 0x59, 0x9a, 0xff, 0xea, 0xef, 0xff, 0xfa, 0x66, 0x74, 0x81, 0x10, 0x6c, 0x18, 0x4f, 0xee,
+	0x16, 0xdb, 0x03, 0x9c, 0x57, 0x90, 0x3e, 0xea, 0x1a, 0x3a, 0x67, 0x3e, 0xec, 0x08, 0x8c, 0x7c,
+	0x8c, 0x3e, 0xba, 0x86, 0xd8, 0xcb, 0x34, 0x02, 0xfb, 0x51, 0x62, 0x83, 0xec, 0xc2, 0xcc, 0x3e,
+	0xe3, 0xaa, 0x48, 0xc5, 0xd9, 0xdc, 0xaf, 0x03, 0x52, 0x8e, 0xce, 0x23, 0xe6, 0x0c, 0x99, 0x52,
+	0x98, 0xe4, 0x15, 0x64, 0x9e, 0x99, 0x2e, 0x0f, 0x5e, 0x20, 0x71, 0x68, 0x8b, 0x51, 0x37, 0x89,
+	0x4b, 0xaf, 0x20, 0x68, 0x96, 0x64, 0x3c, 0x43, 0xcd, 0x3e, 0x52, 0x15, 0xe6, 0xf7, 0x59, 0x00,
+	0x9d, 0x40, 0x41, 0xf5, 0xbf, 0xa5, 0xdd, 0x7c, 0xe4, 0xd5, 0x44, 0xaf, 0x22, 0x5e, 0x8e, 0x2c,
+	0x85, 0xf0, 0x8a, 0xef, 0x4c, 0xe3, 0x4b, 0xa2, 0x41, 0x4a, 0xd8, 0xbc, 0xe5, 0x15, 0xd2, 0x38,
+	0x73, 0xd3, 0x43, 0x65, 0xd8, 0xa5, 0x39, 0x44, 0x26, 0x24, 0xed, 0x21, 0xf7, 0x8b, 0x31, 0x03,
+	0x22, 0x30, 0x9f, 0x05, 0xeb, 0x6a, 0x1c, 0xf2, 0x52, 0x64, 0x85, 0x76, 0xe9, 0x35, 0xc4, 0xbf,
+	0x42, 0x96, 0x3d, 0xfc, 0xa1, 0x02, 0x4f, 0x7e, 0x05, 0xe9, 0x7d, 0x16, 0xd4, 0x12, 0x08, 0x48,
+	0x74, 0xe9, 0xa7, 0xef, 0x23, 0xee, 0x55, 0xb2, 0x1a, 0x83, 0x2b, 0xe3, 0xd2, 0x84, 0xa5, 0x90,
+	0x0f, 0x15, 0xdb, 0xe1, 0x6e, 0x74, 0xcc, 0x95, 0x1c, 0x4a, 0xd0, 0x0d, 0xd4, 0xf0, 0x3e, 0xa1,
+	0x67, 0x69, 0x28, 0x76, 0x11, 0xed, 0x2d, 0x2c, 0x0c, 0x3b, 0x21, 0x40, 0xc8, 0x62, 0x04, 0x72,
+	0xc9, 0xc8, 0x67, 0x23, 0xc8, 0xf4, 0x3e, 0xea, 0x2b, 0x90, 0x8f, 0xce, 0xd7, 0x57, 0x7c, 0x27,
+	0xfe, 0xd4, 0x84, 0x87, 0xbf, 0x4f, 0xc0, 0xf2, 0x1e, 0x36, 0x83, 0x17, 0xd6, 0x1e, 0x77, 0xba,
+	0x1e, 0xa3, 0x01, 0x0f, 0xe8, 0xe6, 0x65, 0x0c, 0x28, 0xaa, 0x4e, 0xf4, 0xeb, 0x04, 0xe4, 0x76,
+	0x4d, 0xf7, 0x07, 0x31, 0xe4, 0x27, 0x68, 0xc8, 0x43, 0x7a, 0xff, 0x52, 0x86, 0x18, 0x52, 0x3b,
+	0x31, 0x22, 0x72, 0x2e, 0xea, 0x64, 0x30, 0xe7, 0x24, 0x50, 0x1c, 0x91, 0x7f, 0xc1, 0x8c, 0x37,
+	0x11, 0xeb, 0xb7, 0x09, 0x58, 0x95, 0xb5, 0x2c, 0xa4, 0xe8, 0x10, 0xcd, 0x58, 0x0d, 0x29, 0x40,
+	0xba, 0x5c, 0x13, 0xeb, 0xfa, 0x6d, 0x34, 0xe1, 0x16, 0xbd, 0x80, 0x09, 0xa2, 0xe2, 0xfd, 0x2e,
+	0x01, 0x6b, 0x11, 0x56, 0x1c, 0x88, 0xca, 0x2e, 0xcd, 0x58, 0x09, 0x98, 0x81, 0x8c, 0x03, 0xdb,
+	0x38, 0xc7, 0x8a, 0x02, 0x5a, 0xb1, 0x4e, 0xdf, 0x3b, 0xd3, 0x0a, 0x79, 0x7f, 0x08, 0x33, 0x5a,
+	0xb0, 0x1c, 0x0a, 0x39, 0xaa, 0x0a, 0xc6, 0x3c, 0x1b, 0xb6, 0xc5, 0xa5, 0x1f, 0xa2, 0xae, 0x0f,
+	0xc8, 0x45, 0x74, 0x11, 0x0e, 0x2b, 0x91, 0xb9, 0x55, 0x8d, 0x93, 0x5f, 0xd9, 0x72, 0x28, 0xfe,
+	0x52, 0x88, 0xde, 0x41, 0x85, 0x1b, 0x64, 0xfd, 0xdc, 0x10, 0xab, 0x1e, 0x8e, 0x7c, 0x93, 0x80,
+	0x1b, 0x31, 0xb9, 0x46, 0x4c, 0x19, 0xe9, 0x1b, 0xd1, 0x0a, 0x2f, 0x92, 0xf5, 0x4d, 0x34, 0xe9,
+	0x36, 0xbd, 0xb0, 0x49, 0x22, 0xe8, 0x65, 0x48, 0x8a, 0x58, 0x9c, 0x57, 0x98, 0xe7, 0x83, 0xad,
+	0xa7, 0x4b, 0x97, 0x51, 0x59, 0x86, 0xcc, 0x7b, 0xca, 0xbc, 0x4a, 0x5c, 0x86, 0xd9, 0x01, 0x60,
+	0xc9, 0x88, 0x87, 0x4c, 0x0e, 0xc2, 0x1c, 0x71, 0xd5, 0x49, 0x38, 0xd3, 0x70, 0xc9, 0x11, 0xa4,
+	0x35, 0xd6, 0xb0, 0x3b, 0x0d, 0xd3, 0x62, 0x9e, 0x99, 0xfe, 0xb5, 0xb1, 0xf1, 0x58, 0x45, 0xcc,
+	0x25, 0x1a, 0xc6, 0x14, 0x8e, 0xef, 0xe1, 0x35, 0x1f, 0x71, 0x55, 0x0c, 0xb5, 0xf8, 0x1e, 0x0c,
+	0x59, 0x18, 0xf2, 0x54, 0xde, 0x0d, 0x3f, 0x83, 0xd4, 0x8e, 0xc3, 0x74, 0xae, 0x4c, 0x23, 0x43,
+	0xab, 0x43, 0x68, 0xaa, 0xb1, 0xa1, 0xc3, 0x71, 0x13, 0x26, 0xbd, 0x84, 0x94, 0x2c, 0xc2, 0x11,
+	0x56, 0xc5, 0x39, 0xf9, 0x1e, 0xe2, 0xad, 0xd1, 0x95, 0x28, 0xeb, 0xbc, 0xb2, 0xfa, 0x0b, 0x98,
+	0x55, 0x55, 0xf5, 0x12, 0xc8, 0xea, 0x6e, 0xa4, 0xab, 0x91, 0xc8, 0x5e, 0x9d, 0x7c, 0x09, 0x29,
+	0x8d, 0xd5, 0x6d, 0x9b, 0xff, 0x60, 0x36, 0x3b, 0x08, 0x27, 0x80, 0x77, 0x99, 0xc5, 0xf8, 0xf7,
+	0x08, 0xc6, 0x46, 0x34, 0xb0, 0x81, 0x70, 0xa4, 0x07, 0xb3, 0xbb, 0xf6, 0x9b, 0x8e, 0x65, 0xeb,
+	0x46, 0xa9, 0xad, 0xb7, 0xd8, 0xe0, 0x5e, 0xc1, 0x47, 0x8f, 0x97, 0x5f, 0xf4, 0x14, 0x96, 0xbb,
+	0xcc, 0xc1, 0x69, 0xa5, 0x78, 0x55, 0xa0, 0x0f, 0x51, 0xc7, 0x1d, 0xfa, 0x61, 0xa4, 0x0e, 0x53,
+	0x40, 0xd4, 0x0c, 0x85, 0xe1, 0x16, 0xdf, 0x89, 0x26, 0xfc, 0x4b, 0x91, 0xdc, 0xaf, 0x12, 0xb0,
+	0xb4, 0xcf, 0x78, 0x40, 0x87, 0x9c, 0x3b, 0xc4, 0x1b, 0x10, 0x45, 0xa6, 0x8f, 0xd0, 0x80, 0xfb,
+	0xe4, 0xde, 0x25, 0x0c, 0x28, 0xba, 0x52, 0x53, 0x0f, 0xdb, 0xa4, 0x00, 0xde, 0x25, 0xb5, 0xab,
+	0x22, 0x43, 0x2e, 0xe3, 0x3e, 0x69, 0xca, 0x26, 0x30, 0x80, 0xe4, 0x0e, 0x65, 0x34, 0x4a, 0x9b,
+	0x4b, 0x3f, 0x42, 0x75, 0x37, 0xc9, 0xfb, 0x17, 0x51, 0x47, 0xde, 0x42, 0x76, 0x47, 0xf4, 0xb3,
+	0xd6, 0x05, 0x3d, 0x8c, 0x4c, 0xb0, 0xf2, 0x70, 0xe3, 0x52, 0x1e, 0xfe, 0x31, 0x01, 0xd9, 0xad,
+	0x06, 0x37, 0x4f, 0x74, 0xce, 0x50, 0x8b, 0xac, 0xd5, 0x97, 0x54, 0xbd, 0x83, 0xaa, 0x3f, 0xa1,
+	0x1f, 0x5f, 0x26, 0xb5, 0x92, 0xdc, 0x43, 0x7d, 0x62, 0xa3, 0xfd, 0x21, 0x01, 0x19, 0x8d, 0x9d,
+	0x30, 0x87, 0xff, 0x5f, 0x0c, 0x71, 0x50, 0xb5, 0x30, 0xa4, 0x02, 0xf3, 0x83, 0x9b, 0x20, 0xdc,
+	0x2f, 0xcf, 0x7a, 0x16, 0xc9, 0x46, 0x99, 0xa2, 0xca, 0x55, 0x92, 0x8f, 0x54, 0x29, 0x1b, 0xe4,
+	0x57, 0x90, 0xf5, 0x21, 0xaa, 0xe1, 0x52, 0x10, 0x35, 0xd3, 0x47, 0xf5, 0xd8, 0xf4, 0x16, 0x22,
+	0xdf, 0x20, 0xd7, 0xa2, 0x91, 0xbd, 0x71, 0x96, 0x4b, 0x3a, 0xb0, 0x28, 0xa3, 0x35, 0xac, 0x20,
+	0x0c, 0x1a, 0x5b, 0x82, 0x54, 0xf7, 0x47, 0xcf, 0x53, 0x26, 0x02, 0x74, 0xe4, 0x0f, 0xd0, 0xc5,
+	0x9a, 0xcb, 0xb3, 0xa3, 0x24, 0x9b, 0x4a, 0x06, 0x0b, 0x41, 0xd8, 0xcb, 0xf4, 0x35, 0xeb, 0xa8,
+	0x80, 0x92, 0xeb, 0xb1, 0x0a, 0xbc, 0x7e, 0xe6, 0x0b, 0xbf, 0xf5, 0x72, 0x6e, 0x15, 0x77, 0xd5,
+	0x67, 0xc3, 0xb3, 0x2f, 0x37, 0xee, 0x5e, 0x95, 0x43, 0x33, 0xa2, 0xe1, 0xf4, 0x60, 0x20, 0x3f,
+	0x14, 0x99, 0x10, 0x1e, 0xbd, 0x81, 0x70, 0x2b, 0xe4, 0x4a, 0x14, 0x9c, 0xbc, 0xab, 0x6b, 0x90,
+	0x1e, 0x58, 0xac, 0x82, 0x12, 0x67, 0xf2, 0x42, 0xc4, 0xac, 0xcd, 0xf5, 0x46, 0x07, 0x64, 0x71,
+	0x48, 0x89, 0x0a, 0xc9, 0x13, 0x48, 0x57, 0xb9, 0xc3, 0xf4, 0x76, 0x45, 0x6f, 0xbc, 0x66, 0xdc,
+	0x2d, 0xf7, 0x38, 0x59, 0x0a, 0x44, 0x5a, 0x32, 0xca, 0x3d, 0x1e, 0xbb, 0x81, 0x46, 0xd6, 0x13,
+	0x64, 0x0f, 0x5b, 0x1e, 0x66, 0x9e, 0x30, 0x05, 0x54, 0xea, 0x9c, 0x31, 0x3b, 0x08, 0xe3, 0x97,
+	0x3a, 0x74, 0xe4, 0x4e, 0x82, 0x3c, 0x85, 0xac, 0x82, 0xd9, 0x39, 0xd6, 0x3b, 0x2d, 0x86, 0x13,
+	0xbf, 0x78, 0x97, 0x73, 0x01, 0x24, 0xdf, 0x12, 0x04, 0x3b, 0x82, 0xb9, 0x7e, 0x42, 0xe4, 0x37,
+	0xa5, 0x60, 0x53, 0x1e, 0x0e, 0x57, 0xdc, 0x66, 0x55, 0xd1, 0xf2, 0x72, 0x92, 0x91, 0xfd, 0x93,
+	0xff, 0xfb, 0x45, 0xd4, 0x8c, 0x32, 0x1f, 0x45, 0xa4, 0xd7, 0x51, 0x45, 0x9e, 0xf6, 0x13, 0x12,
+	0x18, 0x79, 0x8a, 0x43, 0xf6, 0x02, 0xed, 0xf6, 0xa3, 0x47, 0xbe, 0xb4, 0xfb, 0xbf, 0x4a, 0x84,
+	0x0d, 0x0f, 0xa0, 0x4a, 0xc3, 0x0d, 0xc8, 0xc8, 0x62, 0xf1, 0xfd, 0x0c, 0xff, 0x00, 0x55, 0x5c,
+	0xcb, 0x9f, 0xa1, 0x42, 0x58, 0x6f, 0x40, 0x46, 0x76, 0x41, 0xe7, 0x6a, 0x89, 0xdb, 0x4f, 0xca,
+	0x97, 0x8d, 0xb3, 0x7c, 0x51, 0x07, 0x23, 0xf0, 0x65, 0xe6, 0xdc, 0x83, 0x11, 0x88, 0x58, 0xe8,
+	0x60, 0x04, 0xb4, 0x90, 0x67, 0xd8, 0x6c, 0xe3, 0xd5, 0xe3, 0x46, 0x37, 0xdb, 0x92, 0xe7, 0x75,
+	0x70, 0x64, 0x25, 0xfe, 0xe2, 0x71, 0xc9, 0xe7, 0x30, 0xed, 0x8d, 0x64, 0x03, 0x60, 0xb9, 0xb8,
+	0xd9, 0x2e, 0xbd, 0x89, 0xb0, 0xd7, 0xe9, 0xd5, 0x48, 0x58, 0x97, 0x59, 0xcd, 0x1a, 0x17, 0x68,
+	0x2f, 0xb0, 0x3f, 0x0a, 0x8c, 0xb4, 0x87, 0xdf, 0x3d, 0x43, 0x33, 0xef, 0x70, 0xe5, 0x11, 0xc7,
+	0x48, 0xc8, 0xa9, 0x97, 0x4e, 0xb3, 0x4e, 0xbe, 0x00, 0xb2, 0xcf, 0xf8, 0xd0, 0x54, 0x7b, 0x68,
+	0x40, 0x15, 0x35, 0xf8, 0x0e, 0xc7, 0x23, 0x88, 0x8d, 0x33, 0x74, 0xe2, 0xc2, 0x6c, 0xd5, 0x6c,
+	0xf7, 0x2c, 0x9d, 0x33, 0x5c, 0x4f, 0x56, 0xfb, 0x81, 0xf0, 0x93, 0xd5, 0x77, 0xa8, 0xb8, 0x3b,
+	0x3f, 0x34, 0x34, 0x08, 0xc6, 0x48, 0x21, 0xd5, 0x04, 0x92, 0xd8, 0x99, 0x3b, 0x30, 0xd3, 0x1f,
+	0x5f, 0x93, 0x2b, 0x9e, 0xc2, 0xd0, 0x60, 0x3b, 0x1f, 0xcf, 0xa2, 0x23, 0xe4, 0x00, 0x40, 0xbe,
+	0xf1, 0xe0, 0x80, 0x27, 0xe5, 0xef, 0x08, 0x62, 0x37, 0xb4, 0x7a, 0x55, 0xa4, 0x73, 0xc2, 0xc6,
+	0xc1, 0x6a, 0xf5, 0x32, 0xab, 0xde, 0x73, 0x2e, 0x81, 0x37, 0x78, 0x23, 0x3b, 0xb9, 0x5b, 0xf4,
+	0x2d, 0x17, 0x80, 0x9f, 0x43, 0x52, 0x14, 0x8f, 0xb7, 0x1c, 0xbf, 0x89, 0x91, 0x25, 0x2f, 0x72,
+	0xf2, 0x13, 0x59, 0x97, 0x35, 0xcc, 0xa6, 0xc9, 0x9c, 0xfc, 0x82, 0x47, 0xd7, 0x18, 0xef, 0x39,
+	0x1d, 0xe4, 0xba, 0x74, 0x05, 0x81, 0x17, 0x49, 0xd6, 0x0b, 0xa8, 0x1f, 0xea, 0x10, 0x92, 0x55,
+	0xdf, 0x63, 0x7f, 0xa4, 0xea, 0x7d, 0x7c, 0x8b, 0x35, 0x37, 0x84, 0xea, 0x87, 0x39, 0x86, 0x6c,
+	0x95, 0xeb, 0x0e, 0xf7, 0x3e, 0x3d, 0x8a, 0x96, 0xd4, 0xee, 0x90, 0xfe, 0x57, 0xd9, 0xa1, 0x4f,
+	0x92, 0x83, 0xc3, 0x1c, 0x38, 0x2d, 0xaa, 0x64, 0xd0, 0xfe, 0xb4, 0xd5, 0x15, 0x98, 0x35, 0xfc,
+	0x6a, 0x23, 0x8e, 0xc9, 0xa3, 0xc4, 0xc6, 0xb6, 0x05, 0x59, 0xdb, 0x69, 0xe1, 0x8d, 0xd1, 0xb0,
+	0x1d, 0x43, 0xe1, 0x6c, 0xa7, 0xe4, 0x3c, 0xbc, 0x82, 0x3f, 0x4b, 0xf8, 0x65, 0xa1, 0x65, 0xf2,
+	0xe3, 0x5e, 0x5d, 0x44, 0xa7, 0xe8, 0x49, 0xaa, 0x9f, 0x87, 0xdc, 0xf6, 0x7e, 0x2c, 0xb2, 0x59,
+	0x6c, 0xd9, 0x8a, 0xf6, 0xb7, 0xd1, 0xa5, 0xb2, 0x87, 0xf7, 0xc2, 0x3f, 0x5e, 0xaf, 0x8c, 0x56,
+	0xc6, 0x2a, 0xe3, 0x95, 0x89, 0xca, 0x64, 0x65, 0xaa, 0x32, 0x5d, 0x9f, 0xc4, 0xb5, 0x9b, 0xff,
+	0x0d, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x88, 0xe2, 0x00, 0x78, 0x22, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -2423,6 +2501,7 @@
 	EnablePort(ctx context.Context, in *Port, opts ...grpc.CallOption) (*empty.Empty, error)
 	DisablePort(ctx context.Context, in *Port, opts ...grpc.CallOption) (*empty.Empty, error)
 	GetExtValue(ctx context.Context, in *common.ValueSpecifier, opts ...grpc.CallOption) (*common.ReturnValues, error)
+	SetExtValue(ctx context.Context, in *ValueSet, opts ...grpc.CallOption) (*empty.Empty, error)
 	// omci start and stop cli implementation
 	StartOmciTestAction(ctx context.Context, in *OmciTestRequest, opts ...grpc.CallOption) (*TestResponse, error)
 }
@@ -3046,6 +3125,15 @@
 	return out, nil
 }
 
+func (c *volthaServiceClient) SetExtValue(ctx context.Context, in *ValueSet, opts ...grpc.CallOption) (*empty.Empty, error) {
+	out := new(empty.Empty)
+	err := c.cc.Invoke(ctx, "/voltha.VolthaService/SetExtValue", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *volthaServiceClient) StartOmciTestAction(ctx context.Context, in *OmciTestRequest, opts ...grpc.CallOption) (*TestResponse, error) {
 	out := new(TestResponse)
 	err := c.cc.Invoke(ctx, "/voltha.VolthaService/StartOmciTestAction", in, out, opts...)
@@ -3184,6 +3272,7 @@
 	EnablePort(context.Context, *Port) (*empty.Empty, error)
 	DisablePort(context.Context, *Port) (*empty.Empty, error)
 	GetExtValue(context.Context, *common.ValueSpecifier) (*common.ReturnValues, error)
+	SetExtValue(context.Context, *ValueSet) (*empty.Empty, error)
 	// omci start and stop cli implementation
 	StartOmciTestAction(context.Context, *OmciTestRequest) (*TestResponse, error)
 }
@@ -4286,6 +4375,24 @@
 	return interceptor(ctx, in, info, handler)
 }
 
+func _VolthaService_SetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ValueSet)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).SetExtValue(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/voltha.VolthaService/SetExtValue",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).SetExtValue(ctx, req.(*ValueSet))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _VolthaService_StartOmciTestAction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(OmciTestRequest)
 	if err := dec(in); err != nil {
@@ -4537,6 +4644,10 @@
 			Handler:    _VolthaService_GetExtValue_Handler,
 		},
 		{
+			MethodName: "SetExtValue",
+			Handler:    _VolthaService_SetExtValue_Handler,
+		},
+		{
 			MethodName: "StartOmciTestAction",
 			Handler:    _VolthaService_StartOmciTestAction_Handler,
 		},
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 0e5ebad..693b6fb 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -117,8 +117,9 @@
 github.com/opencord/voltha-lib-go/v3/pkg/mocks/kafka
 github.com/opencord/voltha-lib-go/v3/pkg/probe
 github.com/opencord/voltha-lib-go/v3/pkg/version
-# github.com/opencord/voltha-protos/v3 v3.4.1
+# github.com/opencord/voltha-protos/v3 v3.4.2
 github.com/opencord/voltha-protos/v3/go/common
+github.com/opencord/voltha-protos/v3/go/ext/config
 github.com/opencord/voltha-protos/v3/go/inter_container
 github.com/opencord/voltha-protos/v3/go/omci
 github.com/opencord/voltha-protos/v3/go/openflow_13
