diff --git a/VERSION b/VERSION
index f0bb29e..3a3cd8c 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.3.0
+1.3.1
diff --git a/go.mod b/go.mod
index d9895c0..4df3993 100644
--- a/go.mod
+++ b/go.mod
@@ -10,7 +10,7 @@
 	github.com/jessevdk/go-flags v1.4.0
 	github.com/jhump/protoreflect v1.5.0
 	github.com/opencord/voltha-lib-go/v3 v3.2.8
-	github.com/opencord/voltha-protos/v3 v3.4.1
+	github.com/opencord/voltha-protos/v3 v3.4.6
 	github.com/stretchr/testify v1.4.0
 	golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 // indirect
 	golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 // indirect
diff --git a/go.sum b/go.sum
index e2cc218..6fd9747 100644
--- a/go.sum
+++ b/go.sum
@@ -235,6 +235,8 @@
 github.com/opencord/voltha-lib-go/v3 v3.2.8/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.6 h1:Tx76po8uEHEqPtdqzIPC1AXlgZiXodQaTNVEiqZo2pw=
+github.com/opencord/voltha-protos/v3 v3.4.6/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=
diff --git a/internal/pkg/commands/devices.go b/internal/pkg/commands/devices.go
index 2f0d8a8..d41b9ac 100644
--- a/internal/pkg/commands/devices.go
+++ b/internal/pkg/commands/devices.go
@@ -66,7 +66,8 @@
 type ValueFlag string
 
 type DeviceDelete struct {
-	Args struct {
+	Force bool `long:"force" description:"Delete device forcefully"`
+	Args  struct {
 		Ids []DeviceId `positional-arg-name:"DEVICE_ID" required:"yes"`
 	} `positional-args:"yes"`
 }
@@ -537,15 +538,18 @@
 	defer conn.Close()
 
 	client := voltha.NewVolthaServiceClient(conn)
-
 	var lastErr error
 	for _, i := range options.Args.Ids {
 		ctx, cancel := context.WithTimeout(context.Background(), GlobalConfig.Grpc.Timeout)
 		defer cancel()
 
 		id := voltha.ID{Id: string(i)}
+		if options.Force {
+			_, err = client.ForceDeleteDevice(ctx, &id)
+		} else {
+			_, err = client.DeleteDevice(ctx, &id)
+		}
 
-		_, err := client.DeleteDevice(ctx, &id)
 		if err != nil {
 			Error.Printf("Error while deleting '%s': %s\n", i, err)
 			lastErr = err
diff --git a/vendor/github.com/opencord/voltha-protos/v3/go/common/common.pb.go b/vendor/github.com/opencord/voltha-protos/v3/go/common/common.pb.go
index 3975047..1227e58 100644
--- a/vendor/github.com/opencord/voltha-protos/v3/go/common/common.pb.go
+++ b/vendor/github.com/opencord/voltha-protos/v3/go/common/common.pb.go
@@ -59,6 +59,8 @@
 	AdminState_DOWNLOADING_IMAGE AdminState_Types = 4
 	// The device is marked to be deleted
 	AdminState_DELETED AdminState_Types = 5
+	// The device is marked to be in deleting state
+	AdminState_DELETING AdminState_Types = 6
 )
 
 var AdminState_Types_name = map[int32]string{
@@ -68,6 +70,7 @@
 	3: "DISABLED",
 	4: "DOWNLOADING_IMAGE",
 	5: "DELETED",
+	6: "DELETING",
 }
 
 var AdminState_Types_value = map[string]int32{
@@ -77,6 +80,7 @@
 	"DISABLED":          3,
 	"DOWNLOADING_IMAGE": 4,
 	"DELETED":           5,
+	"DELETING":          6,
 }
 
 func (x AdminState_Types) String() string {
@@ -600,43 +604,44 @@
 func init() { proto.RegisterFile("voltha_protos/common.proto", fileDescriptor_c2e3fd231961e826) }
 
 var fileDescriptor_c2e3fd231961e826 = []byte{
-	// 606 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x53, 0x4d, 0x4f, 0xdb, 0x4a,
-	0x14, 0x8d, 0x9d, 0x8f, 0x47, 0x6e, 0x88, 0xf1, 0x1b, 0xe0, 0x29, 0x0f, 0x55, 0x6a, 0xe4, 0x0d,
-	0xb4, 0xa2, 0x89, 0x04, 0xdd, 0x76, 0x61, 0xec, 0x29, 0x1d, 0x11, 0xc6, 0xd1, 0xd8, 0x0e, 0xa2,
-	0x8b, 0x46, 0x26, 0x1e, 0x82, 0x25, 0xe2, 0xb1, 0xec, 0x09, 0x12, 0xbf, 0xb4, 0x7f, 0xa7, 0x9a,
-	0x71, 0xf8, 0xaa, 0xd8, 0x24, 0x3e, 0xf7, 0xdc, 0xb9, 0xc7, 0xe7, 0x8c, 0x2f, 0x1c, 0x3c, 0x88,
-	0x7b, 0x79, 0x97, 0xcc, 0x8b, 0x52, 0x48, 0x51, 0x8d, 0x17, 0x62, 0xb5, 0x12, 0xf9, 0x48, 0x23,
-	0xd4, 0xa9, 0x91, 0xb3, 0x07, 0x26, 0xf1, 0x91, 0x05, 0x66, 0x96, 0x0e, 0x8c, 0xa1, 0x71, 0xd4,
-	0x65, 0x66, 0x96, 0x3a, 0x87, 0xd0, 0x24, 0x7e, 0x85, 0x86, 0xd0, 0xce, 0x24, 0x5f, 0x55, 0x03,
-	0x63, 0xd8, 0x3c, 0xea, 0x9d, 0xc0, 0x68, 0x33, 0x82, 0xf8, 0xac, 0x26, 0x9c, 0x35, 0x80, 0x9b,
-	0xae, 0xb2, 0x3c, 0x94, 0x89, 0xe4, 0xce, 0x12, 0xda, 0xd1, 0x63, 0xc1, 0x2b, 0xd4, 0x83, 0x7f,
-	0x62, 0x7a, 0x41, 0x83, 0x2b, 0x6a, 0x37, 0x10, 0x02, 0x6b, 0xca, 0xf0, 0x94, 0x05, 0x33, 0x12,
-	0x92, 0x80, 0x62, 0xdf, 0x36, 0x54, 0x03, 0xa6, 0xee, 0xd9, 0x04, 0xfb, 0xb6, 0x89, 0xb6, 0x61,
-	0xcb, 0x27, 0x61, 0x8d, 0x9a, 0x68, 0x1f, 0xfe, 0xf5, 0x83, 0x2b, 0x3a, 0x09, 0x5c, 0x9f, 0xd0,
-	0xf3, 0x39, 0xb9, 0x74, 0xcf, 0xb1, 0xdd, 0x52, 0x27, 0x7c, 0x3c, 0xc1, 0x11, 0xf6, 0xed, 0xb6,
-	0xb3, 0x04, 0x08, 0x0a, 0x5e, 0x2a, 0xd5, 0x75, 0xe5, 0x5c, 0xbf, 0x2b, 0x6b, 0x01, 0xf8, 0x24,
-	0xf4, 0x82, 0x19, 0x66, 0x5a, 0xd2, 0x02, 0x70, 0xbd, 0x88, 0xcc, 0xdc, 0x88, 0xd0, 0x73, 0xdb,
-	0x54, 0xcd, 0x11, 0x0e, 0x35, 0x68, 0x22, 0x80, 0x8e, 0x26, 0x95, 0x12, 0x40, 0xe7, 0xbb, 0x4b,
-	0x26, 0x5a, 0x08, 0x43, 0xdf, 0x13, 0x79, 0xce, 0x17, 0x72, 0xa3, 0xf5, 0xf5, 0x5d, 0xad, 0x1d,
-	0xe8, 0xc5, 0x94, 0x61, 0xd7, 0xfb, 0xa1, 0x5c, 0xd8, 0x06, 0xea, 0x43, 0xf7, 0x05, 0x9a, 0xce,
-	0x6f, 0x03, 0xfa, 0xea, 0x85, 0x13, 0x99, 0x89, 0x9c, 0xf1, 0xaa, 0x40, 0xdf, 0xa0, 0xb5, 0x10,
-	0x29, 0xd7, 0x99, 0x5b, 0x27, 0x9f, 0x9e, 0x92, 0x7d, 0xd3, 0xf4, 0x1a, 0xc9, 0x75, 0x99, 0x7b,
-	0x22, 0xe5, 0x4c, 0x1f, 0x43, 0x87, 0xb0, 0x93, 0xa4, 0x69, 0xa6, 0xb8, 0xe4, 0x7e, 0x9e, 0xe5,
-	0xb7, 0x62, 0x60, 0xea, 0xdb, 0xb3, 0x5e, 0xca, 0x24, 0xbf, 0x15, 0xce, 0x2f, 0xd8, 0x7d, 0x67,
-	0x8a, 0x0a, 0x39, 0x98, 0x62, 0xe6, 0x46, 0x24, 0xa0, 0xf3, 0x30, 0xf6, 0x3c, 0x1c, 0x86, 0x76,
-	0xe3, 0x6d, 0x59, 0x85, 0x10, 0x33, 0xe5, 0xe6, 0x7f, 0xd8, 0x7f, 0x29, 0xc7, 0x34, 0x8c, 0xa7,
-	0xd3, 0x80, 0xa9, 0x9b, 0x30, 0x9d, 0x63, 0xe8, 0xce, 0x92, 0xfb, 0x35, 0x57, 0xa1, 0x38, 0x1f,
-	0xa1, 0xa5, 0xfe, 0x51, 0x17, 0xda, 0xf8, 0x72, 0x1a, 0x5d, 0xdb, 0x8d, 0xcd, 0xdd, 0x46, 0x2e,
-	0xf5, 0xb0, 0x6d, 0x38, 0x14, 0x2c, 0xdd, 0x1d, 0x16, 0x7c, 0x91, 0xdd, 0x66, 0xbc, 0xfc, 0xfb,
-	0xcb, 0x43, 0xc7, 0xd0, 0x7e, 0x50, 0x1d, 0xda, 0x8e, 0x75, 0xf2, 0xdf, 0x53, 0x30, 0xcf, 0x22,
-	0x23, 0xf5, 0xc3, 0xea, 0x26, 0x47, 0xc2, 0x76, 0x6d, 0x4a, 0xd3, 0x15, 0xb2, 0xa1, 0x19, 0x72,
-	0xa9, 0xc7, 0xf5, 0x99, 0x7a, 0x44, 0x43, 0xe8, 0xc5, 0x79, 0xb5, 0x2e, 0x0a, 0x51, 0x4a, 0x9e,
-	0xea, 0xa9, 0x7d, 0xf6, 0xba, 0x84, 0xf6, 0xa0, 0x8d, 0xcb, 0x52, 0x94, 0x83, 0xa6, 0xe6, 0x6a,
-	0x80, 0x0e, 0x60, 0xcb, 0xcf, 0x2a, 0x99, 0xe4, 0x0b, 0x3e, 0x68, 0x69, 0xe2, 0x19, 0x7f, 0xfe,
-	0x00, 0xdb, 0x11, 0xaf, 0xe4, 0xa5, 0x48, 0xf9, 0x05, 0x7f, 0xac, 0x94, 0xc7, 0xa4, 0xc8, 0xe6,
-	0x92, 0x57, 0xd2, 0x6e, 0x9c, 0x61, 0xd8, 0x15, 0xe5, 0x72, 0x24, 0x0a, 0x9e, 0x2f, 0x44, 0x99,
-	0x8e, 0xea, 0x25, 0xfc, 0x39, 0x5a, 0x66, 0xf2, 0x6e, 0x7d, 0xa3, 0xfc, 0x8c, 0x9f, 0xb8, 0x71,
-	0xcd, 0x7d, 0xd9, 0x2c, 0xe8, 0xc3, 0xe9, 0x78, 0x29, 0x36, 0x6b, 0x7a, 0xd3, 0xd1, 0xc5, 0xd3,
-	0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xb5, 0x2a, 0xdd, 0x48, 0xc5, 0x03, 0x00, 0x00,
+	// 614 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x53, 0x4f, 0x4f, 0xdb, 0x4e,
+	0x10, 0x8d, 0x9d, 0x3f, 0x3f, 0x32, 0x21, 0xc6, 0xbf, 0x05, 0xaa, 0x14, 0x55, 0x6a, 0xe4, 0x0b,
+	0xb4, 0xa2, 0x89, 0x04, 0xbd, 0xf6, 0x60, 0xec, 0x2d, 0x5d, 0x01, 0xeb, 0x68, 0x6d, 0x07, 0xd1,
+	0x43, 0x23, 0x13, 0x2f, 0xc1, 0x12, 0xf1, 0x5a, 0xf6, 0x06, 0x89, 0x73, 0x3f, 0x64, 0xbf, 0x4e,
+	0xb5, 0xeb, 0xf0, 0xaf, 0xe2, 0x62, 0xfb, 0xcd, 0x7b, 0x3b, 0x33, 0x6f, 0xc6, 0x0b, 0x7b, 0xf7,
+	0xe2, 0x4e, 0xde, 0x26, 0xb3, 0xa2, 0x14, 0x52, 0x54, 0xe3, 0xb9, 0x58, 0x2e, 0x45, 0x3e, 0xd2,
+	0x08, 0x75, 0x6a, 0xe4, 0xec, 0x80, 0x49, 0x7c, 0x64, 0x81, 0x99, 0xa5, 0x03, 0x63, 0x68, 0x1c,
+	0x74, 0x99, 0x99, 0xa5, 0xce, 0x3e, 0x34, 0x89, 0x5f, 0xa1, 0x21, 0xb4, 0x33, 0xc9, 0x97, 0xd5,
+	0xc0, 0x18, 0x36, 0x0f, 0x7a, 0x47, 0x30, 0x5a, 0xa7, 0x20, 0x3e, 0xab, 0x09, 0xe7, 0xb7, 0x01,
+	0xe0, 0xa6, 0xcb, 0x2c, 0x0f, 0x65, 0x22, 0xb9, 0xb3, 0x82, 0x76, 0xf4, 0x50, 0xf0, 0x0a, 0xf5,
+	0xe0, 0xbf, 0x98, 0x9e, 0xd1, 0xe0, 0x92, 0xda, 0x0d, 0x84, 0xc0, 0x9a, 0x30, 0x3c, 0x61, 0xc1,
+	0x94, 0x84, 0x24, 0xa0, 0xd8, 0xb7, 0x0d, 0x25, 0xc0, 0xd4, 0x3d, 0x39, 0xc7, 0xbe, 0x6d, 0xa2,
+	0x4d, 0xd8, 0xf0, 0x49, 0x58, 0xa3, 0x26, 0xda, 0x85, 0xff, 0xfd, 0xe0, 0x92, 0x9e, 0x07, 0xae,
+	0x4f, 0xe8, 0xe9, 0x8c, 0x5c, 0xb8, 0xa7, 0xd8, 0x6e, 0xa9, 0x13, 0x3e, 0x3e, 0xc7, 0x11, 0xf6,
+	0xed, 0xb6, 0x3e, 0xa1, 0x00, 0xa1, 0xa7, 0x76, 0xc7, 0x59, 0x00, 0x04, 0x05, 0x2f, 0x55, 0x0f,
+	0xab, 0xca, 0xb9, 0x7a, 0xb3, 0x09, 0x0b, 0xc0, 0x27, 0xa1, 0x17, 0x4c, 0x31, 0xd3, 0x0d, 0x58,
+	0x00, 0xae, 0x17, 0x91, 0xa9, 0xab, 0x73, 0x98, 0x4a, 0x1c, 0xe1, 0x50, 0x83, 0x26, 0x02, 0xe8,
+	0x68, 0x52, 0xd5, 0x05, 0xe8, 0x7c, 0x77, 0x89, 0x6a, 0xad, 0xed, 0x60, 0xe8, 0x7b, 0x22, 0xcf,
+	0xf9, 0x5c, 0xae, 0x6b, 0x7d, 0x7d, 0xb3, 0xd6, 0x16, 0xf4, 0x62, 0xca, 0xb0, 0xeb, 0xfd, 0x50,
+	0x9e, 0x6c, 0x03, 0xf5, 0xa1, 0xfb, 0x0c, 0x4d, 0xe7, 0x8f, 0x01, 0x7d, 0xd5, 0x70, 0x22, 0x33,
+	0x91, 0x33, 0x5e, 0x15, 0xe8, 0x1b, 0xb4, 0xe6, 0x22, 0xe5, 0x7a, 0x05, 0xd6, 0xd1, 0xa7, 0xc7,
+	0x41, 0xbf, 0x12, 0xbd, 0x44, 0x72, 0x55, 0xe6, 0x9e, 0x48, 0x39, 0xd3, 0xc7, 0xd0, 0x3e, 0x6c,
+	0x25, 0x69, 0x9a, 0x29, 0x2e, 0xb9, 0x9b, 0x65, 0xf9, 0x8d, 0x18, 0x98, 0x7a, 0x99, 0xd6, 0x73,
+	0x98, 0xe4, 0x37, 0xc2, 0xf9, 0x05, 0xdb, 0x6f, 0x64, 0x51, 0x23, 0x0f, 0x26, 0x98, 0xb9, 0x11,
+	0x09, 0xe8, 0x2c, 0x8c, 0x3d, 0x0f, 0x87, 0xa1, 0xdd, 0x78, 0x1d, 0x56, 0x43, 0x88, 0x99, 0x72,
+	0xf3, 0x1e, 0x76, 0x9f, 0xc3, 0x31, 0x0d, 0xe3, 0xc9, 0x24, 0x60, 0x6a, 0x2f, 0xa6, 0x73, 0x08,
+	0xdd, 0x69, 0x72, 0xb7, 0xe2, 0x6a, 0x28, 0xce, 0x47, 0x68, 0xa9, 0x37, 0xea, 0x42, 0x1b, 0x5f,
+	0x4c, 0xa2, 0x2b, 0xbb, 0xb1, 0xde, 0x74, 0xe4, 0x52, 0x0f, 0xdb, 0x86, 0x43, 0xc1, 0xd2, 0xea,
+	0xb0, 0xe0, 0xf3, 0xec, 0x26, 0xe3, 0xe5, 0xbf, 0x3f, 0x22, 0x3a, 0x84, 0xf6, 0xbd, 0x52, 0x68,
+	0x3b, 0xd6, 0xd1, 0xbb, 0xc7, 0xc1, 0x3c, 0x15, 0x19, 0xa9, 0x07, 0xab, 0x45, 0x8e, 0x84, 0xcd,
+	0xda, 0x94, 0xa6, 0x2b, 0x64, 0x43, 0x33, 0xe4, 0x52, 0xa7, 0xeb, 0x33, 0xf5, 0x89, 0x86, 0xd0,
+	0x8b, 0xf3, 0x6a, 0x55, 0x14, 0xa2, 0x94, 0x3c, 0xd5, 0x59, 0xfb, 0xec, 0x65, 0x08, 0xed, 0x40,
+	0x1b, 0x97, 0xa5, 0x28, 0x07, 0x4d, 0xcd, 0xd5, 0x00, 0xed, 0xc1, 0x86, 0x9f, 0x55, 0x32, 0xc9,
+	0xe7, 0x7c, 0xd0, 0xd2, 0xc4, 0x13, 0xfe, 0xfc, 0x01, 0x36, 0x23, 0x5e, 0xc9, 0x0b, 0x91, 0xf2,
+	0x33, 0xfe, 0x50, 0x29, 0x8f, 0x49, 0x91, 0xcd, 0x24, 0xaf, 0xa4, 0xdd, 0x38, 0xc1, 0xb0, 0x2d,
+	0xca, 0xc5, 0x48, 0x14, 0x3c, 0x9f, 0x8b, 0x32, 0x1d, 0xd5, 0x77, 0xf2, 0xe7, 0x68, 0x91, 0xc9,
+	0xdb, 0xd5, 0xb5, 0xf2, 0x33, 0x7e, 0xe4, 0xc6, 0x35, 0xf7, 0x65, 0x7d, 0x5f, 0xef, 0x8f, 0xc7,
+	0x0b, 0xb1, 0xbe, 0xb5, 0xd7, 0x1d, 0x1d, 0x3c, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x48,
+	0xb2, 0xfa, 0xd4, 0x03, 0x00, 0x00,
 }
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..93cb133 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
@@ -72,6 +72,7 @@
 const AdminState_DISABLED = AdminState_Types(common.AdminState_DISABLED)
 const AdminState_DOWNLOADING_IMAGE = AdminState_Types(common.AdminState_DOWNLOADING_IMAGE)
 const AdminState_DELETED = AdminState_Types(common.AdminState_DELETED)
+const AdminState_DELETING = AdminState_Types(common.AdminState_DELETING)
 
 // OperStatus_Types from public import voltha_protos/common.proto
 type OperStatus_Types = common.OperStatus_Types
@@ -145,6 +146,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/events.pb.go b/vendor/github.com/opencord/voltha-protos/v3/go/voltha/events.pb.go
index fd6eba6..30a817f 100644
--- a/vendor/github.com/opencord/voltha-protos/v3/go/voltha/events.pb.go
+++ b/vendor/github.com/opencord/voltha-protos/v3/go/voltha/events.pb.go
@@ -76,136 +76,6 @@
 	return fileDescriptor_e63e6c07044fd2c4, []int{2, 0}
 }
 
-type AlarmEventType_Types int32
-
-const (
-	AlarmEventType_COMMUNICATION AlarmEventType_Types = 0
-	AlarmEventType_ENVIRONMENT   AlarmEventType_Types = 1
-	AlarmEventType_EQUIPMENT     AlarmEventType_Types = 2
-	AlarmEventType_SERVICE       AlarmEventType_Types = 3
-	AlarmEventType_PROCESSING    AlarmEventType_Types = 4
-	AlarmEventType_SECURITY      AlarmEventType_Types = 5
-)
-
-var AlarmEventType_Types_name = map[int32]string{
-	0: "COMMUNICATION",
-	1: "ENVIRONMENT",
-	2: "EQUIPMENT",
-	3: "SERVICE",
-	4: "PROCESSING",
-	5: "SECURITY",
-}
-
-var AlarmEventType_Types_value = map[string]int32{
-	"COMMUNICATION": 0,
-	"ENVIRONMENT":   1,
-	"EQUIPMENT":     2,
-	"SERVICE":       3,
-	"PROCESSING":    4,
-	"SECURITY":      5,
-}
-
-func (x AlarmEventType_Types) String() string {
-	return proto.EnumName(AlarmEventType_Types_name, int32(x))
-}
-
-func (AlarmEventType_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{8, 0}
-}
-
-type AlarmEventCategory_Types int32
-
-const (
-	AlarmEventCategory_PON AlarmEventCategory_Types = 0
-	AlarmEventCategory_OLT AlarmEventCategory_Types = 1
-	AlarmEventCategory_ONT AlarmEventCategory_Types = 2
-	AlarmEventCategory_ONU AlarmEventCategory_Types = 3
-	AlarmEventCategory_NNI AlarmEventCategory_Types = 4
-)
-
-var AlarmEventCategory_Types_name = map[int32]string{
-	0: "PON",
-	1: "OLT",
-	2: "ONT",
-	3: "ONU",
-	4: "NNI",
-}
-
-var AlarmEventCategory_Types_value = map[string]int32{
-	"PON": 0,
-	"OLT": 1,
-	"ONT": 2,
-	"ONU": 3,
-	"NNI": 4,
-}
-
-func (x AlarmEventCategory_Types) String() string {
-	return proto.EnumName(AlarmEventCategory_Types_name, int32(x))
-}
-
-func (AlarmEventCategory_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{9, 0}
-}
-
-type AlarmEventState_Types int32
-
-const (
-	AlarmEventState_RAISED  AlarmEventState_Types = 0
-	AlarmEventState_CLEARED AlarmEventState_Types = 1
-)
-
-var AlarmEventState_Types_name = map[int32]string{
-	0: "RAISED",
-	1: "CLEARED",
-}
-
-var AlarmEventState_Types_value = map[string]int32{
-	"RAISED":  0,
-	"CLEARED": 1,
-}
-
-func (x AlarmEventState_Types) String() string {
-	return proto.EnumName(AlarmEventState_Types_name, int32(x))
-}
-
-func (AlarmEventState_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{10, 0}
-}
-
-type AlarmEventSeverity_Types int32
-
-const (
-	AlarmEventSeverity_INDETERMINATE AlarmEventSeverity_Types = 0
-	AlarmEventSeverity_WARNING       AlarmEventSeverity_Types = 1
-	AlarmEventSeverity_MINOR         AlarmEventSeverity_Types = 2
-	AlarmEventSeverity_MAJOR         AlarmEventSeverity_Types = 3
-	AlarmEventSeverity_CRITICAL      AlarmEventSeverity_Types = 4
-)
-
-var AlarmEventSeverity_Types_name = map[int32]string{
-	0: "INDETERMINATE",
-	1: "WARNING",
-	2: "MINOR",
-	3: "MAJOR",
-	4: "CRITICAL",
-}
-
-var AlarmEventSeverity_Types_value = map[string]int32{
-	"INDETERMINATE": 0,
-	"WARNING":       1,
-	"MINOR":         2,
-	"MAJOR":         3,
-	"CRITICAL":      4,
-}
-
-func (x AlarmEventSeverity_Types) String() string {
-	return proto.EnumName(AlarmEventSeverity_Types_name, int32(x))
-}
-
-func (AlarmEventSeverity_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{11, 0}
-}
-
 type EventCategory_Types int32
 
 const (
@@ -240,7 +110,7 @@
 }
 
 func (EventCategory_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{14, 0}
+	return fileDescriptor_e63e6c07044fd2c4, []int{9, 0}
 }
 
 type EventSubCategory_Types int32
@@ -274,7 +144,7 @@
 }
 
 func (EventSubCategory_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{15, 0}
+	return fileDescriptor_e63e6c07044fd2c4, []int{10, 0}
 }
 
 type EventType_Types int32
@@ -305,7 +175,7 @@
 }
 
 func (EventType_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{16, 0}
+	return fileDescriptor_e63e6c07044fd2c4, []int{11, 0}
 }
 
 type ConfigEventType struct {
@@ -727,303 +597,6 @@
 }
 
 //
-// Identify to the area of the system impacted by the alarm
-// To be deprecated once python version of OpenOLT adapter
-// moves to the new event defination for device alarms
-type AlarmEventType struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *AlarmEventType) Reset()         { *m = AlarmEventType{} }
-func (m *AlarmEventType) String() string { return proto.CompactTextString(m) }
-func (*AlarmEventType) ProtoMessage()    {}
-func (*AlarmEventType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{8}
-}
-
-func (m *AlarmEventType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmEventType.Unmarshal(m, b)
-}
-func (m *AlarmEventType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmEventType.Marshal(b, m, deterministic)
-}
-func (m *AlarmEventType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmEventType.Merge(m, src)
-}
-func (m *AlarmEventType) XXX_Size() int {
-	return xxx_messageInfo_AlarmEventType.Size(m)
-}
-func (m *AlarmEventType) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmEventType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmEventType proto.InternalMessageInfo
-
-//
-// Identify to the functional category originating the alarm
-// To be deprecated once python version of OpenOLT adapter
-// as well as OpenONU adapter moves to the new event
-// defination for device alarms
-type AlarmEventCategory struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *AlarmEventCategory) Reset()         { *m = AlarmEventCategory{} }
-func (m *AlarmEventCategory) String() string { return proto.CompactTextString(m) }
-func (*AlarmEventCategory) ProtoMessage()    {}
-func (*AlarmEventCategory) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{9}
-}
-
-func (m *AlarmEventCategory) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmEventCategory.Unmarshal(m, b)
-}
-func (m *AlarmEventCategory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmEventCategory.Marshal(b, m, deterministic)
-}
-func (m *AlarmEventCategory) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmEventCategory.Merge(m, src)
-}
-func (m *AlarmEventCategory) XXX_Size() int {
-	return xxx_messageInfo_AlarmEventCategory.Size(m)
-}
-func (m *AlarmEventCategory) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmEventCategory.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmEventCategory proto.InternalMessageInfo
-
-//
-// Active state of the alarm
-// To be deprecated once python version of OpenOLT adapter
-// as well as OpenONU adapter moves to the new event
-// defination for device alarms
-type AlarmEventState struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *AlarmEventState) Reset()         { *m = AlarmEventState{} }
-func (m *AlarmEventState) String() string { return proto.CompactTextString(m) }
-func (*AlarmEventState) ProtoMessage()    {}
-func (*AlarmEventState) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{10}
-}
-
-func (m *AlarmEventState) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmEventState.Unmarshal(m, b)
-}
-func (m *AlarmEventState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmEventState.Marshal(b, m, deterministic)
-}
-func (m *AlarmEventState) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmEventState.Merge(m, src)
-}
-func (m *AlarmEventState) XXX_Size() int {
-	return xxx_messageInfo_AlarmEventState.Size(m)
-}
-func (m *AlarmEventState) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmEventState.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmEventState proto.InternalMessageInfo
-
-//
-// Identify the overall impact of the alarm on the system
-// To be deprecated once python version of OpenOLT adapter
-// as well as OpenONU adapter moves to the new event
-// defination for device alarms
-type AlarmEventSeverity struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *AlarmEventSeverity) Reset()         { *m = AlarmEventSeverity{} }
-func (m *AlarmEventSeverity) String() string { return proto.CompactTextString(m) }
-func (*AlarmEventSeverity) ProtoMessage()    {}
-func (*AlarmEventSeverity) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{11}
-}
-
-func (m *AlarmEventSeverity) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmEventSeverity.Unmarshal(m, b)
-}
-func (m *AlarmEventSeverity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmEventSeverity.Marshal(b, m, deterministic)
-}
-func (m *AlarmEventSeverity) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmEventSeverity.Merge(m, src)
-}
-func (m *AlarmEventSeverity) XXX_Size() int {
-	return xxx_messageInfo_AlarmEventSeverity.Size(m)
-}
-func (m *AlarmEventSeverity) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmEventSeverity.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmEventSeverity proto.InternalMessageInfo
-
-//
-// To be deprecated once python version of OpenOLT adapter
-// as well as OpenONU adapter moves to the new event
-// defination for device alarms
-type AlarmEvent struct {
-	// Unique ID for this alarm.  e.g. voltha.some_olt.1234
-	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	// Refers to the area of the system impacted by the alarm
-	Type AlarmEventType_Types `protobuf:"varint,2,opt,name=type,proto3,enum=voltha.AlarmEventType_Types" json:"type,omitempty"`
-	// Refers to functional category of the alarm
-	Category AlarmEventCategory_Types `protobuf:"varint,3,opt,name=category,proto3,enum=voltha.AlarmEventCategory_Types" json:"category,omitempty"`
-	// Current active state of the alarm
-	State AlarmEventState_Types `protobuf:"varint,4,opt,name=state,proto3,enum=voltha.AlarmEventState_Types" json:"state,omitempty"`
-	// Overall impact of the alarm on the system
-	Severity AlarmEventSeverity_Types `protobuf:"varint,5,opt,name=severity,proto3,enum=voltha.AlarmEventSeverity_Types" json:"severity,omitempty"`
-	// Timestamp at which the alarm was first raised
-	// TODO: Is this obsolete? Eventheader already has a raised_ts
-	RaisedTs *timestamp.Timestamp `protobuf:"bytes,6,opt,name=raised_ts,json=raisedTs,proto3" json:"raised_ts,omitempty"`
-	// Timestamp at which the alarm was reported
-	// TODO: Is this obsolete? Eventheader already has a reported_ts
-	ReportedTs *timestamp.Timestamp `protobuf:"bytes,7,opt,name=reported_ts,json=reportedTs,proto3" json:"reported_ts,omitempty"`
-	// Timestamp at which the alarm has changed since it was raised
-	ChangedTs *timestamp.Timestamp `protobuf:"bytes,8,opt,name=changed_ts,json=changedTs,proto3" json:"changed_ts,omitempty"`
-	// Identifier of the originating resource of the alarm
-	ResourceId string `protobuf:"bytes,9,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"`
-	// Textual explanation of the alarm
-	Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"`
-	// Key/Value storage for extra information that may give context to the alarm
-	Context map[string]string `protobuf:"bytes,11,rep,name=context,proto3" json:"context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	// logical device id
-	LogicalDeviceId string `protobuf:"bytes,12,opt,name=logical_device_id,json=logicalDeviceId,proto3" json:"logical_device_id,omitempty"`
-	// alarm_type  name indicates clearly the name of the alarm
-	AlarmTypeName        string   `protobuf:"bytes,13,opt,name=alarm_type_name,json=alarmTypeName,proto3" json:"alarm_type_name,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *AlarmEvent) Reset()         { *m = AlarmEvent{} }
-func (m *AlarmEvent) String() string { return proto.CompactTextString(m) }
-func (*AlarmEvent) ProtoMessage()    {}
-func (*AlarmEvent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{12}
-}
-
-func (m *AlarmEvent) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmEvent.Unmarshal(m, b)
-}
-func (m *AlarmEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmEvent.Marshal(b, m, deterministic)
-}
-func (m *AlarmEvent) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmEvent.Merge(m, src)
-}
-func (m *AlarmEvent) XXX_Size() int {
-	return xxx_messageInfo_AlarmEvent.Size(m)
-}
-func (m *AlarmEvent) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmEvent.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmEvent proto.InternalMessageInfo
-
-func (m *AlarmEvent) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *AlarmEvent) GetType() AlarmEventType_Types {
-	if m != nil {
-		return m.Type
-	}
-	return AlarmEventType_COMMUNICATION
-}
-
-func (m *AlarmEvent) GetCategory() AlarmEventCategory_Types {
-	if m != nil {
-		return m.Category
-	}
-	return AlarmEventCategory_PON
-}
-
-func (m *AlarmEvent) GetState() AlarmEventState_Types {
-	if m != nil {
-		return m.State
-	}
-	return AlarmEventState_RAISED
-}
-
-func (m *AlarmEvent) GetSeverity() AlarmEventSeverity_Types {
-	if m != nil {
-		return m.Severity
-	}
-	return AlarmEventSeverity_INDETERMINATE
-}
-
-func (m *AlarmEvent) GetRaisedTs() *timestamp.Timestamp {
-	if m != nil {
-		return m.RaisedTs
-	}
-	return nil
-}
-
-func (m *AlarmEvent) GetReportedTs() *timestamp.Timestamp {
-	if m != nil {
-		return m.ReportedTs
-	}
-	return nil
-}
-
-func (m *AlarmEvent) GetChangedTs() *timestamp.Timestamp {
-	if m != nil {
-		return m.ChangedTs
-	}
-	return nil
-}
-
-func (m *AlarmEvent) GetResourceId() string {
-	if m != nil {
-		return m.ResourceId
-	}
-	return ""
-}
-
-func (m *AlarmEvent) GetDescription() string {
-	if m != nil {
-		return m.Description
-	}
-	return ""
-}
-
-func (m *AlarmEvent) GetContext() map[string]string {
-	if m != nil {
-		return m.Context
-	}
-	return nil
-}
-
-func (m *AlarmEvent) GetLogicalDeviceId() string {
-	if m != nil {
-		return m.LogicalDeviceId
-	}
-	return ""
-}
-
-func (m *AlarmEvent) GetAlarmTypeName() string {
-	if m != nil {
-		return m.AlarmTypeName
-	}
-	return ""
-}
-
-//
 // Describes the events specific to device
 type DeviceEvent struct {
 	// Identifier of the originating resource of the event, for ex: device_id
@@ -1043,7 +616,7 @@
 func (m *DeviceEvent) String() string { return proto.CompactTextString(m) }
 func (*DeviceEvent) ProtoMessage()    {}
 func (*DeviceEvent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{13}
+	return fileDescriptor_e63e6c07044fd2c4, []int{8}
 }
 
 func (m *DeviceEvent) XXX_Unmarshal(b []byte) error {
@@ -1104,7 +677,7 @@
 func (m *EventCategory) String() string { return proto.CompactTextString(m) }
 func (*EventCategory) ProtoMessage()    {}
 func (*EventCategory) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{14}
+	return fileDescriptor_e63e6c07044fd2c4, []int{9}
 }
 
 func (m *EventCategory) XXX_Unmarshal(b []byte) error {
@@ -1137,7 +710,7 @@
 func (m *EventSubCategory) String() string { return proto.CompactTextString(m) }
 func (*EventSubCategory) ProtoMessage()    {}
 func (*EventSubCategory) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{15}
+	return fileDescriptor_e63e6c07044fd2c4, []int{10}
 }
 
 func (m *EventSubCategory) XXX_Unmarshal(b []byte) error {
@@ -1170,7 +743,7 @@
 func (m *EventType) String() string { return proto.CompactTextString(m) }
 func (*EventType) ProtoMessage()    {}
 func (*EventType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{16}
+	return fileDescriptor_e63e6c07044fd2c4, []int{11}
 }
 
 func (m *EventType) XXX_Unmarshal(b []byte) error {
@@ -1228,7 +801,7 @@
 func (m *EventHeader) String() string { return proto.CompactTextString(m) }
 func (*EventHeader) ProtoMessage()    {}
 func (*EventHeader) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{17}
+	return fileDescriptor_e63e6c07044fd2c4, []int{12}
 }
 
 func (m *EventHeader) XXX_Unmarshal(b []byte) error {
@@ -1320,7 +893,7 @@
 func (m *Event) String() string { return proto.CompactTextString(m) }
 func (*Event) ProtoMessage()    {}
 func (*Event) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{18}
+	return fileDescriptor_e63e6c07044fd2c4, []int{13}
 }
 
 func (m *Event) XXX_Unmarshal(b []byte) error {
@@ -1424,10 +997,6 @@
 func init() {
 	proto.RegisterEnum("voltha.ConfigEventType_Types", ConfigEventType_Types_name, ConfigEventType_Types_value)
 	proto.RegisterEnum("voltha.KpiEventType_Types", KpiEventType_Types_name, KpiEventType_Types_value)
-	proto.RegisterEnum("voltha.AlarmEventType_Types", AlarmEventType_Types_name, AlarmEventType_Types_value)
-	proto.RegisterEnum("voltha.AlarmEventCategory_Types", AlarmEventCategory_Types_name, AlarmEventCategory_Types_value)
-	proto.RegisterEnum("voltha.AlarmEventState_Types", AlarmEventState_Types_name, AlarmEventState_Types_value)
-	proto.RegisterEnum("voltha.AlarmEventSeverity_Types", AlarmEventSeverity_Types_name, AlarmEventSeverity_Types_value)
 	proto.RegisterEnum("voltha.EventCategory_Types", EventCategory_Types_name, EventCategory_Types_value)
 	proto.RegisterEnum("voltha.EventSubCategory_Types", EventSubCategory_Types_name, EventSubCategory_Types_value)
 	proto.RegisterEnum("voltha.EventType_Types", EventType_Types_name, EventType_Types_value)
@@ -1443,12 +1012,6 @@
 	proto.RegisterType((*KpiEvent)(nil), "voltha.KpiEvent")
 	proto.RegisterMapType((map[string]*MetricValuePairs)(nil), "voltha.KpiEvent.PrefixesEntry")
 	proto.RegisterType((*KpiEvent2)(nil), "voltha.KpiEvent2")
-	proto.RegisterType((*AlarmEventType)(nil), "voltha.AlarmEventType")
-	proto.RegisterType((*AlarmEventCategory)(nil), "voltha.AlarmEventCategory")
-	proto.RegisterType((*AlarmEventState)(nil), "voltha.AlarmEventState")
-	proto.RegisterType((*AlarmEventSeverity)(nil), "voltha.AlarmEventSeverity")
-	proto.RegisterType((*AlarmEvent)(nil), "voltha.AlarmEvent")
-	proto.RegisterMapType((map[string]string)(nil), "voltha.AlarmEvent.ContextEntry")
 	proto.RegisterType((*DeviceEvent)(nil), "voltha.DeviceEvent")
 	proto.RegisterMapType((map[string]string)(nil), "voltha.DeviceEvent.ContextEntry")
 	proto.RegisterType((*EventCategory)(nil), "voltha.EventCategory")
@@ -1461,92 +1024,76 @@
 func init() { proto.RegisterFile("voltha_protos/events.proto", fileDescriptor_e63e6c07044fd2c4) }
 
 var fileDescriptor_e63e6c07044fd2c4 = []byte{
-	// 1388 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0x5d, 0x6e, 0xdb, 0xc6,
-	0x16, 0x16, 0xa9, 0xff, 0x43, 0xd9, 0xa6, 0x27, 0x17, 0xf7, 0xea, 0x2a, 0xb9, 0x89, 0x2f, 0x8b,
-	0x06, 0x46, 0x82, 0x4a, 0xad, 0x5c, 0x20, 0x8e, 0xd3, 0xa2, 0x55, 0x64, 0x36, 0x66, 0x12, 0x51,
-	0x2e, 0x25, 0x3b, 0x68, 0x5f, 0x84, 0xb1, 0x38, 0x96, 0x08, 0x4b, 0xa2, 0x40, 0x8e, 0xd4, 0x78,
-	0x01, 0x7d, 0xee, 0x02, 0xba, 0x84, 0xee, 0xa1, 0x6f, 0x5d, 0x46, 0xd1, 0x4d, 0x74, 0x01, 0xc5,
-	0xfc, 0x50, 0x24, 0x65, 0xa5, 0x79, 0x30, 0xda, 0x3e, 0x69, 0x78, 0xe6, 0x7c, 0xe7, 0xe7, 0x3b,
-	0x73, 0xce, 0x8c, 0xa0, 0xb6, 0xf4, 0x27, 0x74, 0x8c, 0x07, 0xf3, 0xc0, 0xa7, 0x7e, 0xd8, 0x20,
-	0x4b, 0x32, 0xa3, 0x61, 0x9d, 0x7f, 0xa1, 0x82, 0xd8, 0xab, 0x55, 0xd3, 0x3a, 0x53, 0x42, 0xb1,
-	0xd0, 0xa8, 0xdd, 0x1b, 0xf9, 0xfe, 0x68, 0x42, 0x1a, 0x78, 0xee, 0x35, 0xf0, 0x6c, 0xe6, 0x53,
-	0x4c, 0x3d, 0x7f, 0x26, 0xf1, 0xb5, 0x07, 0x72, 0x97, 0x7f, 0x5d, 0x2c, 0x2e, 0x1b, 0xd4, 0x9b,
-	0x92, 0x90, 0xe2, 0xe9, 0x5c, 0x28, 0x18, 0xcf, 0x60, 0xa7, 0xed, 0xcf, 0x2e, 0xbd, 0x91, 0xc9,
-	0xdc, 0xf6, 0xaf, 0xe7, 0xc4, 0xd8, 0x87, 0x3c, 0xfb, 0x0d, 0x51, 0x11, 0xb2, 0xd8, 0x75, 0xf5,
-	0x0c, 0x02, 0x28, 0x04, 0x64, 0xea, 0x2f, 0x89, 0xae, 0xb0, 0xf5, 0x62, 0xee, 0x62, 0x4a, 0x74,
-	0xd5, 0x18, 0x83, 0x96, 0x00, 0xa3, 0x4f, 0x20, 0x47, 0xaf, 0xe7, 0xa4, 0xaa, 0xec, 0x29, 0xfb,
-	0xdb, 0xcd, 0xff, 0xd5, 0x45, 0xcc, 0xf5, 0x35, 0xfb, 0x75, 0x6e, 0xdc, 0xe1, 0xaa, 0x08, 0x41,
-	0x6e, 0x8c, 0xc3, 0x71, 0x55, 0xdd, 0x53, 0xf6, 0xcb, 0x0e, 0x5f, 0x33, 0x99, 0x8b, 0x29, 0xae,
-	0x66, 0x85, 0x8c, 0xad, 0x8d, 0x47, 0x50, 0x79, 0x35, 0xf7, 0xe2, 0x18, 0x6b, 0x51, 0x8c, 0x65,
-	0xc8, 0x87, 0x13, 0x6f, 0x48, 0xf4, 0x0c, 0x2a, 0x80, 0x4a, 0x43, 0x5d, 0x31, 0x7e, 0x52, 0x61,
-	0xbb, 0x43, 0x68, 0xe0, 0x0d, 0x3b, 0x84, 0xe2, 0x63, 0x4c, 0x31, 0xfa, 0x17, 0xe4, 0xa9, 0x47,
-	0x27, 0x22, 0xb4, 0xb2, 0x23, 0x3e, 0xd0, 0x36, 0x03, 0x70, 0xd7, 0x8a, 0xa3, 0xd2, 0x10, 0x3d,
-	0x82, 0xdd, 0x89, 0x3f, 0xf2, 0x86, 0x78, 0x32, 0x70, 0xc9, 0xd2, 0x1b, 0x92, 0x81, 0xe7, 0xca,
-	0x28, 0x76, 0xe4, 0xc6, 0x31, 0x97, 0x5b, 0x2e, 0xba, 0x0b, 0xe5, 0x90, 0x04, 0x1e, 0x9e, 0x0c,
-	0x66, 0x7e, 0x35, 0xc7, 0x75, 0x4a, 0x42, 0x60, 0xfb, 0x6c, 0x33, 0x36, 0x90, 0x17, 0x9b, 0x6e,
-	0x84, 0xfc, 0x1c, 0x8a, 0x43, 0x7f, 0x46, 0xc9, 0x5b, 0x5a, 0x2d, 0xec, 0x65, 0xf7, 0xb5, 0xe6,
-	0x07, 0x11, 0x51, 0xe9, 0xa0, 0x19, 0x6f, 0x4c, 0xcb, 0x9c, 0xd1, 0xe0, 0xda, 0x89, 0x30, 0x8c,
-	0x9d, 0xc5, 0xc2, 0x73, 0xab, 0x45, 0xc1, 0x0e, 0x5b, 0xd7, 0x8e, 0xa0, 0x92, 0x54, 0x46, 0x3a,
-	0x64, 0xaf, 0xc8, 0xb5, 0x4c, 0x96, 0x2d, 0x19, 0x01, 0x4b, 0x3c, 0x59, 0x10, 0x49, 0xb4, 0xf8,
-	0x38, 0x52, 0x0f, 0x15, 0xe3, 0x07, 0x05, 0x74, 0xe1, 0xf8, 0x9c, 0xc9, 0x4e, 0xb1, 0x17, 0x84,
-	0xe8, 0x0b, 0x28, 0x4e, 0xb9, 0x2c, 0xac, 0x2a, 0x3c, 0xc6, 0x0f, 0xd3, 0x31, 0xc6, 0xaa, 0x52,
-	0x10, 0xca, 0x28, 0x25, 0x8a, 0x45, 0x94, 0xdc, 0x78, 0x5f, 0x44, 0x6a, 0x32, 0xa2, 0x5f, 0x14,
-	0xd8, 0x15, 0x60, 0x6b, 0x76, 0xe9, 0x07, 0x53, 0x7e, 0xa0, 0x51, 0x13, 0x4a, 0xec, 0xd4, 0xf3,
-	0x93, 0xc1, 0xcc, 0x68, 0xcd, 0x7f, 0x6f, 0xe6, 0xcd, 0x59, 0xe9, 0xa1, 0x2f, 0xe3, 0x34, 0x54,
-	0x9e, 0xc6, 0xc3, 0x34, 0x24, 0x61, 0xff, 0x2f, 0xc8, 0xe3, 0x57, 0x05, 0x4a, 0xd1, 0xa1, 0x45,
-	0xf5, 0x54, 0x6f, 0xd4, 0xa2, 0x38, 0x92, 0x87, 0x3a, 0xd5, 0x18, 0xf1, 0xd9, 0x54, 0xf9, 0xd9,
-	0x3c, 0x82, 0xd2, 0x3c, 0x20, 0x97, 0xde, 0x5b, 0x12, 0x56, 0xb3, 0x3c, 0x97, 0xfb, 0xeb, 0x36,
-	0xea, 0xa7, 0x52, 0x41, 0xe4, 0xb0, 0xd2, 0xaf, 0x9d, 0xc1, 0x56, 0x6a, 0x6b, 0x43, 0x16, 0xf5,
-	0x64, 0x16, 0x5a, 0xb3, 0xfa, 0xae, 0x72, 0x27, 0xf3, 0xfb, 0x5e, 0x81, 0x72, 0xe4, 0xbb, 0x79,
-	0x8b, 0x04, 0x45, 0xf3, 0x1d, 0x02, 0xf0, 0x46, 0x1e, 0xc8, 0xde, 0x67, 0x29, 0xfe, 0xf7, 0x9d,
-	0xe5, 0x72, 0xca, 0x5c, 0x99, 0xd5, 0xdb, 0xf8, 0x0e, 0xb6, 0x5b, 0x13, 0x1c, 0x4c, 0xe3, 0xe9,
-	0x40, 0xa2, 0xe9, 0xb0, 0x0b, 0x5b, 0xed, 0x6e, 0xa7, 0x73, 0x66, 0x5b, 0xed, 0x56, 0xdf, 0xea,
-	0xda, 0x7a, 0x06, 0xed, 0x80, 0x66, 0xda, 0xe7, 0x96, 0xd3, 0xb5, 0x3b, 0xa6, 0xdd, 0xd7, 0x15,
-	0xb4, 0x05, 0x65, 0xf3, 0xeb, 0x33, 0xeb, 0x94, 0x7f, 0xaa, 0x48, 0x83, 0x62, 0xcf, 0x74, 0xce,
-	0xad, 0xb6, 0xa9, 0x67, 0xd1, 0x36, 0xc0, 0xa9, 0xd3, 0x6d, 0x9b, 0xbd, 0x9e, 0x65, 0xbf, 0xd0,
-	0x73, 0xa8, 0x02, 0xa5, 0x9e, 0xd9, 0x3e, 0x73, 0xac, 0xfe, 0x37, 0x7a, 0xde, 0x78, 0x09, 0x28,
-	0x76, 0xdc, 0xc6, 0x94, 0x8c, 0xfc, 0xe0, 0xda, 0xf8, 0x34, 0x31, 0x3e, 0x4f, 0xb9, 0xcb, 0x22,
-	0x64, 0xbb, 0xaf, 0x99, 0x2b, 0xb6, 0xe0, 0x4e, 0xf8, 0xe2, 0x4c, 0xcf, 0xb2, 0x85, 0x6d, 0x5b,
-	0x7a, 0xce, 0x38, 0x80, 0x9d, 0xd8, 0x56, 0x8f, 0x62, 0x4a, 0x8c, 0xbd, 0xc8, 0x10, 0x40, 0xc1,
-	0x69, 0x59, 0x3d, 0xf3, 0x58, 0xcf, 0xb0, 0xf0, 0xda, 0xaf, 0xcd, 0x96, 0x63, 0x1e, 0xeb, 0x8a,
-	0x81, 0x93, 0x01, 0xf4, 0xc8, 0x92, 0x04, 0x1e, 0xbd, 0x36, 0x5e, 0x25, 0xb2, 0xb7, 0xec, 0x63,
-	0xb3, 0x6f, 0x3a, 0x1d, 0xcb, 0x6e, 0xf5, 0x4d, 0x01, 0x7f, 0xd3, 0x72, 0x6c, 0x96, 0x8d, 0xc2,
-	0x66, 0x67, 0xc7, 0xb2, 0xbb, 0x8e, 0xae, 0xf2, 0x65, 0xeb, 0x65, 0xd7, 0xd1, 0xb3, 0x2c, 0xc7,
-	0xb6, 0x63, 0xf5, 0xad, 0x76, 0xeb, 0xb5, 0x9e, 0x33, 0x7e, 0xce, 0x03, 0xc4, 0x3e, 0x58, 0xd5,
-	0x3c, 0x57, 0x1e, 0x1c, 0xd5, 0x73, 0xd1, 0xc7, 0xb2, 0xea, 0x2a, 0xaf, 0xfa, 0xbd, 0xa8, 0x5e,
-	0xe9, 0x7a, 0xa4, 0xea, 0xfe, 0x19, 0x94, 0x86, 0x92, 0x2a, 0x3e, 0x5b, 0xb7, 0x9b, 0x7b, 0x37,
-	0x51, 0x11, 0x99, 0x12, 0xb9, 0x42, 0xa0, 0x03, 0xc8, 0x87, 0x8c, 0x1c, 0x3e, 0x72, 0x13, 0x77,
-	0xcc, 0x1a, 0x77, 0x12, 0x27, 0x74, 0x99, 0xcb, 0x50, 0x92, 0xc3, 0xa7, 0xf1, 0x46, 0x97, 0x11,
-	0x7d, 0x91, 0xcb, 0x08, 0x81, 0x9e, 0x40, 0x39, 0xc0, 0x5e, 0x48, 0xdc, 0x01, 0x0d, 0xab, 0x05,
-	0xde, 0x1e, 0xb5, 0xba, 0xb8, 0x56, 0xeb, 0xd1, 0xb5, 0x5a, 0xef, 0x47, 0xd7, 0xaa, 0x53, 0x12,
-	0xca, 0xfd, 0x10, 0x3d, 0x03, 0x2d, 0x20, 0x73, 0x3f, 0xa0, 0x02, 0x5a, 0x7c, 0x2f, 0x14, 0x22,
-	0xf5, 0x7e, 0x88, 0x9e, 0x02, 0x0c, 0xc7, 0x78, 0x36, 0x12, 0xd8, 0xd2, 0x7b, 0xb1, 0x65, 0xa9,
-	0xdd, 0x0f, 0xd1, 0x03, 0xe6, 0x37, 0xf4, 0x17, 0x81, 0xb8, 0x7f, 0xca, 0xbc, 0x58, 0x10, 0x89,
-	0x2c, 0x17, 0xed, 0x81, 0xe6, 0x92, 0x70, 0x18, 0x78, 0x73, 0xd6, 0x4a, 0x55, 0xe0, 0x0a, 0x49,
-	0x11, 0x7a, 0x1a, 0xdf, 0x51, 0x1a, 0xef, 0xc4, 0x07, 0x37, 0x09, 0x7b, 0xc7, 0xfd, 0xb4, 0xf1,
-	0x12, 0xad, 0x6c, 0xbe, 0x44, 0x1f, 0xc2, 0x0e, 0x66, 0xf6, 0x06, 0xec, 0x64, 0x0c, 0x66, 0x78,
-	0x4a, 0xaa, 0x5b, 0x5c, 0x73, 0x8b, 0x8b, 0x59, 0x25, 0x6c, 0x3c, 0x25, 0xb7, 0xba, 0xdf, 0x7e,
-	0x57, 0x40, 0x13, 0x0e, 0xc5, 0x09, 0x5e, 0x63, 0x47, 0xb9, 0xc1, 0xce, 0x23, 0xd8, 0x95, 0x81,
-	0xf3, 0x97, 0x98, 0x08, 0x4b, 0x98, 0xdd, 0x71, 0x63, 0x43, 0x2c, 0xb0, 0x75, 0x26, 0xb3, 0x37,
-	0x99, 0x3c, 0x8a, 0x99, 0xcc, 0x71, 0x26, 0x57, 0x47, 0x2f, 0x11, 0xd4, 0x66, 0x2a, 0x6f, 0x95,
-	0xf6, 0x12, 0xb6, 0xd2, 0x63, 0xe9, 0x6f, 0x9a, 0x89, 0x27, 0xa0, 0x8b, 0x76, 0x5a, 0x5c, 0xdc,
-	0x72, 0x22, 0xbe, 0x81, 0x72, 0x3c, 0xd1, 0x5f, 0x46, 0x26, 0x74, 0xa8, 0xb4, 0xbb, 0xf6, 0x57,
-	0xd6, 0x8b, 0x81, 0x79, 0xce, 0x82, 0xcb, 0xb0, 0x58, 0x5f, 0x9d, 0x5a, 0xf2, 0x53, 0x61, 0xe1,
-	0xad, 0x3e, 0x9b, 0xba, 0xca, 0x00, 0xc7, 0x26, 0x0b, 0x5d, 0x6a, 0x64, 0x8d, 0xdf, 0x54, 0xd0,
-	0xb8, 0xe5, 0x13, 0x82, 0x5d, 0x12, 0xdc, 0x98, 0x69, 0x4f, 0x12, 0x13, 0x4a, 0xcc, 0xb5, 0xbb,
-	0x51, 0xcd, 0xfe, 0x7c, 0x38, 0xb5, 0xa0, 0x12, 0x2e, 0x2e, 0x06, 0x6b, 0xe3, 0xed, 0x7e, 0x0a,
-	0x9c, 0xe0, 0x45, 0xe2, 0xb5, 0x30, 0x16, 0xa1, 0xc7, 0x72, 0x9e, 0x8a, 0xf1, 0xf6, 0x9f, 0x14,
-	0xf4, 0xc6, 0x28, 0xfd, 0x3f, 0x54, 0x78, 0xe3, 0x2c, 0x49, 0x10, 0xb2, 0xe3, 0x27, 0x5e, 0x9a,
-	0x1a, 0x93, 0x9d, 0x0b, 0xd1, 0x3f, 0x33, 0xbc, 0x8c, 0x1f, 0x55, 0xc8, 0x8b, 0x6e, 0x7b, 0x0c,
-	0x85, 0x31, 0x67, 0x59, 0xbe, 0xd9, 0xee, 0xa4, 0x32, 0x12, 0x05, 0x70, 0xa4, 0x0a, 0x3a, 0x84,
-	0xca, 0x90, 0xff, 0x57, 0x10, 0x9d, 0x27, 0xdf, 0x22, 0x77, 0x36, 0xfc, 0x8f, 0x38, 0xc9, 0x38,
-	0xda, 0x30, 0xf1, 0xcf, 0xa3, 0x01, 0xe5, 0xab, 0xb9, 0x27, 0x61, 0x59, 0x0e, 0xd3, 0xd7, 0x5f,
-	0x20, 0x27, 0x19, 0xa7, 0x74, 0x15, 0x3d, 0xc7, 0x9a, 0x00, 0x2b, 0x40, 0x93, 0xb3, 0xad, 0x35,
-	0x77, 0xd7, 0x11, 0xcd, 0x93, 0x8c, 0x53, 0xbe, 0x5a, 0xbd, 0x70, 0x0e, 0xa1, 0x92, 0x1c, 0x0c,
-	0x9c, 0xee, 0x44, 0x78, 0x89, 0x7e, 0x66, 0xe1, 0x25, 0x46, 0xc5, 0xf3, 0x0a, 0x80, 0x98, 0x25,
-	0xac, 0x34, 0xcf, 0x4d, 0xb8, 0xe3, 0x07, 0xa3, 0xba, 0x3f, 0x27, 0xb3, 0xa1, 0x1f, 0xb8, 0x12,
-	0xff, 0x6d, 0x7d, 0xe4, 0xd1, 0xf1, 0xe2, 0xa2, 0x3e, 0xf4, 0xa7, 0x8d, 0x68, 0xaf, 0x21, 0xf6,
-	0x3e, 0x92, 0x7f, 0xfb, 0x96, 0x07, 0x8d, 0x91, 0x2f, 0x65, 0x17, 0x05, 0x2e, 0x3c, 0xf8, 0x23,
-	0x00, 0x00, 0xff, 0xff, 0xe5, 0xa6, 0xf9, 0x0e, 0x3f, 0x0e, 0x00, 0x00,
+	// 1135 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xdd, 0x6e, 0xe3, 0x44,
+	0x14, 0x8e, 0x9d, 0x34, 0x3f, 0xc7, 0x69, 0xeb, 0xce, 0x22, 0x08, 0x59, 0xd8, 0x2d, 0x46, 0xa0,
+	0x6a, 0x57, 0x38, 0xc2, 0x8b, 0xb4, 0x55, 0x57, 0x08, 0x76, 0x53, 0xb3, 0x35, 0x4b, 0x93, 0xe0,
+	0xa6, 0x45, 0x70, 0x13, 0x4d, 0xe3, 0x69, 0x62, 0x35, 0xc9, 0x58, 0x9e, 0x49, 0xb4, 0x7d, 0x00,
+	0xae, 0x79, 0x00, 0x1e, 0x81, 0xe7, 0xe0, 0x31, 0x10, 0x2f, 0xc1, 0x03, 0xa0, 0xf9, 0x71, 0x62,
+	0x97, 0xae, 0xf6, 0x62, 0xc5, 0x95, 0x67, 0xce, 0x9c, 0x6f, 0xe6, 0x3b, 0x67, 0xce, 0x77, 0xc6,
+	0xd0, 0x5e, 0xd1, 0x19, 0x9f, 0xe2, 0x51, 0x92, 0x52, 0x4e, 0x59, 0x87, 0xac, 0xc8, 0x82, 0x33,
+	0x57, 0xce, 0x50, 0x55, 0xad, 0xb5, 0x5b, 0x45, 0x9f, 0x39, 0xe1, 0x58, 0x79, 0xb4, 0x3f, 0x9a,
+	0x50, 0x3a, 0x99, 0x91, 0x0e, 0x4e, 0xe2, 0x0e, 0x5e, 0x2c, 0x28, 0xc7, 0x3c, 0xa6, 0x0b, 0x8d,
+	0x6f, 0x3f, 0xd4, 0xab, 0x72, 0x76, 0xb9, 0xbc, 0xea, 0xf0, 0x78, 0x4e, 0x18, 0xc7, 0xf3, 0x44,
+	0x39, 0x38, 0xcf, 0x60, 0xb7, 0x4b, 0x17, 0x57, 0xf1, 0xc4, 0x17, 0xc7, 0x0e, 0x6f, 0x12, 0xe2,
+	0x1c, 0xc0, 0x96, 0xf8, 0x32, 0x54, 0x83, 0x32, 0x8e, 0x22, 0xbb, 0x84, 0x00, 0xaa, 0x29, 0x99,
+	0xd3, 0x15, 0xb1, 0x0d, 0x31, 0x5e, 0x26, 0x11, 0xe6, 0xc4, 0x36, 0x9d, 0x29, 0x58, 0x39, 0x30,
+	0xfa, 0x12, 0x2a, 0xfc, 0x26, 0x21, 0x2d, 0x63, 0xdf, 0x38, 0xd8, 0xf1, 0x3e, 0x76, 0x15, 0x67,
+	0xf7, 0xd6, 0xfe, 0xae, 0xdc, 0x3c, 0x94, 0xae, 0x08, 0x41, 0x65, 0x8a, 0xd9, 0xb4, 0x65, 0xee,
+	0x1b, 0x07, 0x8d, 0x50, 0x8e, 0x85, 0x2d, 0xc2, 0x1c, 0xb7, 0xca, 0xca, 0x26, 0xc6, 0xce, 0x23,
+	0x68, 0xbe, 0x4a, 0xe2, 0x0d, 0xc7, 0x76, 0xc6, 0xb1, 0x01, 0x5b, 0x6c, 0x16, 0x8f, 0x89, 0x5d,
+	0x42, 0x55, 0x30, 0x39, 0xb3, 0x0d, 0xe7, 0x0f, 0x13, 0x76, 0x4e, 0x09, 0x4f, 0xe3, 0xf1, 0x29,
+	0xe1, 0xf8, 0x18, 0x73, 0x8c, 0xde, 0x83, 0x2d, 0x1e, 0xf3, 0x99, 0xa2, 0xd6, 0x08, 0xd5, 0x04,
+	0xed, 0x08, 0x80, 0x3c, 0xda, 0x08, 0x4d, 0xce, 0xd0, 0x23, 0xd8, 0x9b, 0xd1, 0x49, 0x3c, 0xc6,
+	0xb3, 0x51, 0x44, 0x56, 0xf1, 0x98, 0x8c, 0xe2, 0x48, 0xb3, 0xd8, 0xd5, 0x0b, 0xc7, 0xd2, 0x1e,
+	0x44, 0xe8, 0x3e, 0x34, 0x18, 0x49, 0x63, 0x3c, 0x1b, 0x2d, 0x68, 0xab, 0x22, 0x7d, 0xea, 0xca,
+	0xd0, 0xa3, 0x62, 0x71, 0xb3, 0xc1, 0x96, 0x5a, 0x8c, 0x32, 0xe4, 0xd7, 0x50, 0x1b, 0xd3, 0x05,
+	0x27, 0xaf, 0x79, 0xab, 0xba, 0x5f, 0x3e, 0xb0, 0xbc, 0x4f, 0xb3, 0x44, 0x15, 0x49, 0x8b, 0xbc,
+	0x09, 0x2f, 0x7f, 0xc1, 0xd3, 0x9b, 0x30, 0xc3, 0x88, 0xec, 0x2c, 0x97, 0x71, 0xd4, 0xaa, 0xa9,
+	0xec, 0x88, 0x71, 0xfb, 0x08, 0x9a, 0x79, 0x67, 0x64, 0x43, 0xf9, 0x9a, 0xdc, 0xe8, 0x60, 0xc5,
+	0x50, 0x24, 0x60, 0x85, 0x67, 0x4b, 0xa2, 0x13, 0xad, 0x26, 0x47, 0xe6, 0xa1, 0xe1, 0xfc, 0x66,
+	0x80, 0xad, 0x0e, 0xbe, 0x10, 0xb6, 0x01, 0x8e, 0x53, 0x86, 0xbe, 0x81, 0xda, 0x5c, 0xda, 0x58,
+	0xcb, 0x90, 0x1c, 0x3f, 0x2b, 0x72, 0xdc, 0xb8, 0x6a, 0x03, 0xd3, 0x2c, 0x35, 0x4a, 0x30, 0xca,
+	0x2f, 0xbc, 0x8d, 0x91, 0x99, 0x67, 0xf4, 0xa7, 0x01, 0x7b, 0x0a, 0x1c, 0x2c, 0xae, 0x68, 0x3a,
+	0x97, 0x05, 0x8d, 0x3c, 0xa8, 0x8b, 0xaa, 0x97, 0x95, 0x21, 0xb6, 0xb1, 0xbc, 0xf7, 0xef, 0xce,
+	0x5b, 0xb8, 0xf6, 0x43, 0xdf, 0x6e, 0xc2, 0x30, 0x65, 0x18, 0x9f, 0x17, 0x21, 0xb9, 0xfd, 0xff,
+	0x87, 0x38, 0xfe, 0x32, 0xa0, 0x9e, 0x15, 0x2d, 0x72, 0x0b, 0xda, 0x68, 0x67, 0x3c, 0xf2, 0x45,
+	0x5d, 0x10, 0xc6, 0xa6, 0x36, 0x4d, 0x59, 0x9b, 0x47, 0x50, 0x4f, 0x52, 0x72, 0x15, 0xbf, 0x26,
+	0xac, 0x55, 0x96, 0xb1, 0x3c, 0xb8, 0xbd, 0x87, 0x3b, 0xd0, 0x0e, 0x2a, 0x86, 0xb5, 0x7f, 0xfb,
+	0x1c, 0xb6, 0x0b, 0x4b, 0x77, 0x44, 0xe1, 0xe6, 0xa3, 0xb0, 0xbc, 0xd6, 0x9b, 0xae, 0x3b, 0x1f,
+	0xdf, 0xaf, 0x06, 0x34, 0xb2, 0xb3, 0xbd, 0x77, 0x08, 0x50, 0x89, 0xef, 0x10, 0x40, 0x0a, 0x79,
+	0xa4, 0xb5, 0x2f, 0x42, 0xfc, 0xf0, 0x8d, 0xd7, 0x15, 0x36, 0xa4, 0xb3, 0xb8, 0x6f, 0xe7, 0x1f,
+	0x03, 0x2c, 0xa5, 0x4b, 0x95, 0xea, 0x87, 0x60, 0xa5, 0x84, 0xd1, 0x65, 0xaa, 0xf4, 0xa7, 0xa2,
+	0x84, 0xcc, 0x14, 0x44, 0x42, 0xe7, 0x5a, 0x9e, 0xb2, 0xd7, 0x8e, 0x16, 0x78, 0x9e, 0x09, 0x63,
+	0x37, 0xda, 0x6c, 0xd4, 0xc3, 0x73, 0x82, 0xf6, 0xc1, 0x8a, 0x08, 0x1b, 0xa7, 0x71, 0x22, 0x8e,
+	0xd5, 0xdd, 0x20, 0x6f, 0x42, 0x47, 0x1b, 0x3d, 0x57, 0x24, 0xeb, 0xfd, 0x8c, 0x75, 0x8e, 0xd4,
+	0xdd, 0x62, 0x7e, 0x27, 0xe1, 0xae, 0x60, 0x5b, 0x6e, 0xdd, 0xc5, 0x9c, 0x4c, 0x68, 0x7a, 0xe3,
+	0x90, 0xac, 0x27, 0xee, 0xc1, 0x76, 0xb7, 0x7f, 0x7a, 0x7a, 0xde, 0x0b, 0xba, 0xcf, 0x87, 0x41,
+	0xbf, 0x67, 0x97, 0xd0, 0x2e, 0x58, 0x7e, 0xef, 0x22, 0x08, 0xfb, 0xbd, 0x53, 0xbf, 0x37, 0xb4,
+	0x0d, 0xb4, 0x0d, 0x0d, 0xff, 0xc7, 0xf3, 0x60, 0x20, 0xa7, 0x26, 0xb2, 0xa0, 0x76, 0xe6, 0x87,
+	0x17, 0x41, 0xd7, 0xb7, 0xcb, 0x68, 0x07, 0x60, 0x10, 0xf6, 0xbb, 0xfe, 0xd9, 0x59, 0xd0, 0x7b,
+	0x69, 0x57, 0x50, 0x13, 0xea, 0x67, 0x7e, 0xf7, 0x3c, 0x0c, 0x86, 0x3f, 0xdb, 0x5b, 0xce, 0x09,
+	0xd8, 0xf2, 0xdc, 0xb3, 0xe5, 0xe5, 0xfa, 0xe8, 0xaf, 0x72, 0x4f, 0xc6, 0x40, 0x1e, 0x58, 0x83,
+	0x72, 0xff, 0x07, 0x71, 0x90, 0x18, 0xc8, 0x23, 0xe4, 0xe0, 0xdc, 0x2e, 0x8b, 0x41, 0xaf, 0x17,
+	0xd8, 0x15, 0xe7, 0x27, 0x68, 0x6c, 0x3a, 0xfa, 0xf7, 0xd9, 0x16, 0x36, 0x34, 0xbb, 0xfd, 0xde,
+	0x77, 0xc1, 0xcb, 0x91, 0x7f, 0x21, 0xc8, 0x95, 0x04, 0xd7, 0x57, 0x83, 0x40, 0x4f, 0x0d, 0x41,
+	0x6f, 0x3d, 0xf5, 0x6c, 0x53, 0x00, 0x8e, 0x7d, 0x41, 0x5d, 0x7b, 0x94, 0x9d, 0xbf, 0x4d, 0xb0,
+	0xe4, 0xce, 0x27, 0x04, 0x47, 0x24, 0x15, 0xb5, 0xb6, 0x2e, 0x04, 0x33, 0x8e, 0xd0, 0x53, 0xa8,
+	0x8f, 0x35, 0x75, 0x99, 0xd7, 0x1d, 0xef, 0x7e, 0x76, 0x67, 0x85, 0x94, 0xea, 0x82, 0x5d, 0x3b,
+	0xa3, 0xe7, 0xd0, 0x64, 0xcb, 0xcb, 0xd1, 0x1a, 0x5c, 0x96, 0xe0, 0x07, 0x05, 0x70, 0x2e, 0x2f,
+	0x1a, 0x6f, 0xb1, 0x8d, 0x09, 0x3d, 0xd6, 0x3a, 0xa9, 0x48, 0xe8, 0x07, 0x05, 0xe8, 0x7f, 0x44,
+	0xf2, 0x09, 0x34, 0xc5, 0x77, 0xb4, 0x22, 0x29, 0x13, 0xe5, 0xa7, 0xde, 0x12, 0x4b, 0xd8, 0x2e,
+	0x94, 0x09, 0x3d, 0x85, 0x46, 0x8a, 0x63, 0x46, 0xa2, 0x11, 0x67, 0xad, 0xaa, 0x54, 0x6f, 0xdb,
+	0x55, 0xaf, 0xbe, 0x9b, 0xbd, 0xfa, 0xee, 0x30, 0x7b, 0xf5, 0xc3, 0xba, 0x72, 0x1e, 0x32, 0xf4,
+	0x4c, 0xc8, 0x24, 0xa1, 0x29, 0x57, 0xd0, 0xda, 0x5b, 0xa1, 0x90, 0xb9, 0x0f, 0x99, 0xf3, 0xbb,
+	0x09, 0x5b, 0x4a, 0x6d, 0x8f, 0xa1, 0x3a, 0x95, 0x59, 0xd6, 0x5d, 0xf9, 0x5e, 0x21, 0x22, 0x75,
+	0x01, 0xa1, 0x76, 0x41, 0x87, 0xd0, 0x1c, 0xcb, 0xbf, 0x01, 0xa5, 0x3c, 0xdd, 0x6d, 0xee, 0xdd,
+	0xf1, 0xa7, 0x70, 0x52, 0x0a, 0xad, 0x71, 0xee, 0xdf, 0xa2, 0x03, 0x8d, 0xeb, 0x24, 0xd6, 0xb0,
+	0xb2, 0x84, 0xd9, 0xb7, 0x7b, 0xcc, 0x49, 0x29, 0xac, 0x5f, 0x67, 0x0d, 0xd7, 0x03, 0x58, 0x03,
+	0x3c, 0x99, 0x6d, 0xcb, 0xdb, 0xbb, 0x8d, 0xf0, 0x4e, 0x4a, 0x61, 0xe3, 0x7a, 0xdd, 0xc3, 0x0e,
+	0xa1, 0x99, 0x6f, 0x0c, 0x32, 0xdd, 0x39, 0x7a, 0x39, 0x3d, 0x0b, 0x7a, 0xb9, 0x56, 0xf1, 0xa2,
+	0x09, 0xa0, 0x7a, 0x89, 0xb8, 0x9a, 0x17, 0x3e, 0xdc, 0xa3, 0xe9, 0xc4, 0xa5, 0x09, 0x59, 0x8c,
+	0x69, 0x1a, 0x69, 0xfc, 0x2f, 0xee, 0x24, 0xe6, 0xd3, 0xe5, 0xa5, 0x3b, 0xa6, 0xf3, 0x4e, 0xb6,
+	0xd6, 0x51, 0x6b, 0x5f, 0xe8, 0x1f, 0xbb, 0xd5, 0x93, 0xce, 0x84, 0x6a, 0xdb, 0x65, 0x55, 0x1a,
+	0x9f, 0xfc, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x6d, 0xad, 0x4a, 0x9a, 0x21, 0x0a, 0x00, 0x00,
 }
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..0874c00 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"
@@ -91,6 +92,7 @@
 const AdminState_DISABLED = AdminState_Types(common.AdminState_DISABLED)
 const AdminState_DOWNLOADING_IMAGE = AdminState_Types(common.AdminState_DOWNLOADING_IMAGE)
 const AdminState_DELETED = AdminState_Types(common.AdminState_DELETED)
+const AdminState_DELETING = AdminState_Types(common.AdminState_DELETING)
 
 // OperStatus_Types from public import voltha_protos/common.proto
 type OperStatus_Types = common.OperStatus_Types
@@ -1353,7 +1355,7 @@
 }
 
 func (SelfTestResponse_SelfTestResult) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e084f1a60ce7016c, []int{11, 0}
+	return fileDescriptor_e084f1a60ce7016c, []int{12, 0}
 }
 
 type DeviceGroup struct {
@@ -1812,6 +1814,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 +1909,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 +2005,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 +2047,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 +2097,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 +2145,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 +2187,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 +2198,171 @@
 func init() { proto.RegisterFile("voltha_protos/voltha.proto", fileDescriptor_e084f1a60ce7016c) }
 
 var fileDescriptor_e084f1a60ce7016c = []byte{
-	// 2530 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,
+	// 2613 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x6f, 0x1b, 0xc7,
+	0xf5, 0x17, 0x75, 0xd7, 0x21, 0x25, 0x91, 0x43, 0x5d, 0x68, 0x4a, 0xb2, 0xad, 0xc9, 0x4d, 0x51,
+	0x62, 0xd2, 0xb1, 0x92, 0x20, 0x7f, 0xfb, 0x1f, 0x34, 0xba, 0x59, 0x61, 0x6d, 0x99, 0xec, 0x52,
+	0xb2, 0xd3, 0x36, 0x06, 0xb1, 0xe4, 0x0e, 0xa9, 0x85, 0x97, 0x5c, 0x76, 0x77, 0x28, 0x5b, 0x30,
+	0x82, 0x02, 0xe9, 0x25, 0x7d, 0xcf, 0x7b, 0x9f, 0x5a, 0x14, 0xe8, 0x77, 0xc9, 0x43, 0xd1, 0xa7,
+	0xbe, 0x16, 0x7d, 0xe8, 0x27, 0xc8, 0x73, 0x31, 0x67, 0x66, 0xc9, 0x5d, 0xee, 0xae, 0x24, 0xa6,
+	0x01, 0xfa, 0x24, 0xed, 0x39, 0x67, 0x7e, 0xe7, 0x36, 0x73, 0xe6, 0xec, 0x59, 0x42, 0xfe, 0xdc,
+	0xb6, 0xf8, 0x99, 0x5e, 0xeb, 0x3a, 0x36, 0xb7, 0xdd, 0xa2, 0x7c, 0x2a, 0xe0, 0x13, 0x99, 0x96,
+	0x4f, 0xf9, 0xf5, 0x96, 0x6d, 0xb7, 0x2c, 0x56, 0xd4, 0xbb, 0x66, 0x51, 0xef, 0x74, 0x6c, 0xae,
+	0x73, 0xd3, 0xee, 0xb8, 0x52, 0x2a, 0xbf, 0xa6, 0xb8, 0xf8, 0x54, 0xef, 0x35, 0x8b, 0xac, 0xdd,
+	0xe5, 0x17, 0x8a, 0x99, 0x0b, 0xc2, 0xb7, 0x19, 0x57, 0xe0, 0xf9, 0x21, 0xc5, 0x0d, 0xbb, 0xdd,
+	0xb6, 0x3b, 0xd1, 0xbc, 0x33, 0xa6, 0x5b, 0xfc, 0x4c, 0xf1, 0x68, 0x90, 0x67, 0xd9, 0x2d, 0xb3,
+	0xa1, 0x5b, 0x35, 0x83, 0x9d, 0x9b, 0x0d, 0x16, 0xbd, 0x3e, 0xc0, 0x5b, 0x0b, 0xf2, 0x74, 0x43,
+	0xef, 0x72, 0xe6, 0x28, 0xe6, 0xad, 0x20, 0xd3, 0xee, 0xb2, 0x4e, 0xd3, 0xb2, 0x5f, 0xd6, 0x3e,
+	0xd8, 0x89, 0x11, 0x68, 0x37, 0xcc, 0x5a, 0xdb, 0xac, 0xd7, 0x8c, 0xba, 0x12, 0xd8, 0x8c, 0x10,
+	0xd0, 0x2d, 0xdd, 0x69, 0x0f, 0x44, 0x6e, 0x06, 0x45, 0xd8, 0x2b, 0x5e, 0x6b, 0xd8, 0x9d, 0xa6,
+	0xd9, 0x92, 0x7c, 0xfa, 0xa7, 0x04, 0x24, 0x0f, 0xd0, 0xe4, 0x23, 0xc7, 0xee, 0x75, 0xc9, 0x32,
+	0x8c, 0x9b, 0x46, 0x2e, 0x71, 0x3b, 0xb1, 0x35, 0xb7, 0x37, 0xf5, 0xef, 0xef, 0xbf, 0xdb, 0x48,
+	0x68, 0xe3, 0xa6, 0x41, 0x4a, 0xb0, 0x18, 0x74, 0xde, 0xcd, 0x8d, 0xdf, 0x9e, 0xd8, 0x4a, 0xde,
+	0x5b, 0x2e, 0xa8, 0x2c, 0x3e, 0x96, 0x6c, 0x89, 0xb5, 0x37, 0xf7, 0xcf, 0xef, 0xbf, 0xdb, 0x98,
+	0x14, 0x58, 0xda, 0x82, 0xe5, 0xe7, 0xb8, 0x64, 0x07, 0x66, 0x3c, 0x88, 0x09, 0x84, 0x58, 0xf0,
+	0x20, 0xc2, 0x6b, 0x3d, 0x49, 0xfa, 0x7f, 0x90, 0xf2, 0x59, 0xe9, 0x92, 0x77, 0x61, 0xca, 0xe4,
+	0xac, 0xed, 0xe6, 0x12, 0x08, 0x91, 0x0d, 0x42, 0xa0, 0x90, 0x26, 0x25, 0xe8, 0x1f, 0x13, 0x40,
+	0x0e, 0xcf, 0x59, 0x87, 0x3f, 0x34, 0x2d, 0xce, 0x1c, 0xad, 0x67, 0xb1, 0x47, 0xec, 0x82, 0x7e,
+	0x93, 0x80, 0xec, 0x10, 0xf9, 0xe4, 0xa2, 0xcb, 0xc8, 0x02, 0x40, 0x13, 0x29, 0x35, 0xdd, 0xb2,
+	0xd2, 0x63, 0x24, 0x05, 0xb3, 0x0d, 0x9d, 0xb3, 0x96, 0xed, 0x5c, 0xa4, 0x13, 0x24, 0x0d, 0x29,
+	0xb7, 0x57, 0xaf, 0xf5, 0x29, 0xe3, 0x84, 0xc0, 0xc2, 0x8b, 0xae, 0x59, 0x63, 0x02, 0xaa, 0xc6,
+	0x2f, 0xba, 0x2c, 0x3d, 0x41, 0x96, 0x21, 0x23, 0x83, 0xec, 0x27, 0x4f, 0x0a, 0xb2, 0xf4, 0xc7,
+	0x4f, 0x9e, 0xa2, 0x26, 0x2c, 0x0e, 0x19, 0x42, 0x3e, 0x83, 0x89, 0x17, 0xec, 0x02, 0xd3, 0xb0,
+	0x70, 0xaf, 0xe0, 0x39, 0x17, 0xf6, 0xa2, 0x10, 0xe1, 0x81, 0x26, 0x96, 0x92, 0x25, 0x98, 0x3a,
+	0xd7, 0xad, 0x1e, 0xcb, 0x8d, 0x8b, 0x54, 0x6a, 0xf2, 0x81, 0xfe, 0x25, 0x01, 0x49, 0xdf, 0x92,
+	0xb8, 0x6c, 0xaf, 0xc0, 0x34, 0xeb, 0xe8, 0x75, 0x4b, 0xae, 0x9e, 0xd5, 0xd4, 0x13, 0x59, 0x83,
+	0x39, 0xe5, 0x80, 0x69, 0xe4, 0x26, 0x10, 0x78, 0x56, 0x12, 0x4a, 0x06, 0xd9, 0x00, 0x18, 0xb8,
+	0x95, 0x9b, 0x44, 0xee, 0x1c, 0x52, 0x30, 0xae, 0x77, 0x60, 0xca, 0xe9, 0x59, 0xcc, 0xcd, 0x4d,
+	0x61, 0xc6, 0x56, 0x63, 0x9c, 0xd2, 0xa4, 0x14, 0xfd, 0x14, 0x52, 0x3e, 0x8e, 0x4b, 0xee, 0xc0,
+	0x8c, 0x4c, 0x4b, 0x28, 0xe5, 0x7e, 0x00, 0x4f, 0x86, 0xbe, 0x80, 0xd4, 0xbe, 0xed, 0xb0, 0x52,
+	0xc7, 0xe5, 0x7a, 0xa7, 0xc1, 0xc8, 0xdb, 0x90, 0x34, 0xd5, 0xff, 0xb5, 0x61, 0x8f, 0xc1, 0xe3,
+	0x94, 0x0c, 0xb2, 0x03, 0xd3, 0xb2, 0x00, 0xa0, 0xe7, 0xc9, 0x7b, 0x4b, 0x9e, 0x96, 0xcf, 0x91,
+	0x5a, 0xe5, 0x3a, 0xef, 0xb9, 0x7b, 0x53, 0x62, 0x87, 0x8e, 0x69, 0x4a, 0x94, 0x3e, 0x80, 0x79,
+	0xbf, 0x32, 0x97, 0x6c, 0x07, 0x77, 0x67, 0x1f, 0xc4, 0x2f, 0xe5, 0x6d, 0xcf, 0x8f, 0x60, 0xb1,
+	0xdc, 0x6e, 0x98, 0x27, 0xcc, 0xe5, 0x1a, 0xfb, 0x55, 0x8f, 0xb9, 0x9c, 0x2c, 0x0c, 0xb2, 0x82,
+	0xe9, 0x20, 0x30, 0xd9, 0xeb, 0x99, 0x86, 0x4a, 0x25, 0xfe, 0x4f, 0x7f, 0x0d, 0x29, 0xb9, 0xc4,
+	0xed, 0xda, 0x1d, 0x97, 0x91, 0x9f, 0xc0, 0xb4, 0xc3, 0xdc, 0x9e, 0xc5, 0xd5, 0xa6, 0x79, 0xc7,
+	0xd3, 0xe9, 0x97, 0x0a, 0x3c, 0x68, 0x28, 0xae, 0xa9, 0x65, 0xb4, 0x00, 0x24, 0xcc, 0x25, 0x49,
+	0x98, 0xa9, 0x9e, 0xee, 0xef, 0x1f, 0x56, 0xab, 0xe9, 0x31, 0xf1, 0xf0, 0x70, 0xb7, 0xf4, 0xf8,
+	0x54, 0x3b, 0x4c, 0x27, 0xe8, 0x73, 0x98, 0x7d, 0x2a, 0xf6, 0x54, 0x95, 0x85, 0x0d, 0xfe, 0x04,
+	0x52, 0xb2, 0x0c, 0xc9, 0x53, 0xa0, 0x62, 0x99, 0x2d, 0xa8, 0xca, 0xb3, 0x2b, 0x78, 0xfb, 0xf8,
+	0xff, 0xe7, 0x63, 0x5a, 0x52, 0x1f, 0x3c, 0xee, 0xcd, 0xa8, 0x6d, 0x4b, 0xff, 0x31, 0x09, 0xd3,
+	0x4f, 0xd1, 0x03, 0x72, 0x0b, 0x66, 0xce, 0x99, 0xe3, 0x9a, 0x76, 0x27, 0x98, 0x37, 0x8f, 0x4a,
+	0x3e, 0x86, 0x59, 0x55, 0x59, 0xbd, 0xaa, 0xb4, 0xe8, 0x79, 0xbf, 0x2b, 0xe9, 0xfe, 0x9a, 0xd2,
+	0x97, 0x8d, 0x2a, 0x6a, 0x13, 0xff, 0x7d, 0x51, 0x9b, 0xbc, 0x6e, 0x51, 0x23, 0x9f, 0x41, 0x4a,
+	0x1d, 0x27, 0x71, 0x64, 0xbc, 0x93, 0x41, 0x82, 0x2b, 0xc5, 0xe1, 0xf1, 0xaf, 0x4e, 0x1a, 0x7d,
+	0xb2, 0x4b, 0xf6, 0x61, 0x5e, 0x21, 0xb4, 0xb0, 0x2e, 0xe6, 0xa6, 0x63, 0xcb, 0xa1, 0x1f, 0x43,
+	0xa9, 0x55, 0xb5, 0x74, 0x1f, 0xe6, 0xe5, 0xc1, 0xf5, 0x0e, 0xd8, 0x4c, 0xec, 0x01, 0x0b, 0x80,
+	0x30, 0xff, 0xf9, 0xfc, 0x19, 0x64, 0x06, 0xf7, 0x93, 0xce, 0xf5, 0xba, 0xee, 0xb2, 0xdc, 0xba,
+	0x02, 0x12, 0x9c, 0xc2, 0xb1, 0x59, 0x97, 0xe6, 0x1c, 0xe8, 0x5c, 0xdf, 0x4b, 0x0b, 0xa0, 0xa4,
+	0xaf, 0x9e, 0x68, 0x8b, 0x42, 0x4a, 0x08, 0xa9, 0xd5, 0xe4, 0x19, 0x64, 0xfd, 0x37, 0x9a, 0x07,
+	0xba, 0xa1, 0x52, 0x84, 0xa0, 0xb8, 0x95, 0x2e, 0x85, 0x45, 0xb3, 0xa4, 0x98, 0x42, 0xa0, 0x7f,
+	0x4e, 0x40, 0xba, 0xca, 0xac, 0xe6, 0xf5, 0x0e, 0xd0, 0xb0, 0xa4, 0x9f, 0xe0, 0x3f, 0x40, 0x15,
+	0x58, 0x08, 0x72, 0xe2, 0x0f, 0x0f, 0xc9, 0xc0, 0xfc, 0x93, 0xf2, 0x49, 0xad, 0x7a, 0x5a, 0xa9,
+	0x94, 0xb5, 0x93, 0xc3, 0x83, 0xf4, 0xb8, 0x20, 0x9d, 0x3e, 0x79, 0xf4, 0xa4, 0xfc, 0xec, 0x49,
+	0xed, 0x50, 0xd3, 0xca, 0x5a, 0x7a, 0x82, 0x96, 0x21, 0x53, 0x6e, 0xee, 0xb6, 0x58, 0x87, 0x57,
+	0x7b, 0x75, 0xb7, 0xe1, 0x98, 0x75, 0xe6, 0x88, 0x32, 0x6b, 0x37, 0x75, 0x41, 0xec, 0x17, 0x32,
+	0x6d, 0x4e, 0x51, 0x4a, 0x86, 0x28, 0xd1, 0xea, 0xc6, 0xef, 0x17, 0x8c, 0x59, 0x49, 0x28, 0x19,
+	0xf4, 0x01, 0xc0, 0x31, 0x6b, 0xd7, 0x99, 0xe3, 0x9e, 0x99, 0x5d, 0x81, 0x84, 0xbb, 0xa6, 0xd6,
+	0xd1, 0xdb, 0xcc, 0x43, 0x42, 0xca, 0x13, 0xbd, 0xcd, 0xd4, 0xa1, 0x1e, 0xf7, 0x0e, 0x35, 0x3d,
+	0x84, 0xd4, 0x43, 0xcb, 0x7e, 0x79, 0xcc, 0xb8, 0x2e, 0x72, 0x41, 0x3e, 0x82, 0xe9, 0x36, 0xf3,
+	0x15, 0xe4, 0x8d, 0x82, 0xbf, 0x83, 0xb1, 0x9b, 0xdd, 0x1a, 0xb2, 0x55, 0x0d, 0xd0, 0x94, 0xf0,
+	0xbd, 0xbf, 0xdd, 0x85, 0x79, 0x79, 0xb0, 0xab, 0xcc, 0x11, 0x49, 0x22, 0xcf, 0x60, 0xfe, 0x88,
+	0x71, 0x9f, 0x61, 0x2b, 0x05, 0xd9, 0xe5, 0x15, 0xbc, 0x2e, 0xaf, 0x70, 0x28, 0xba, 0xbc, 0x7c,
+	0xff, 0x64, 0x0c, 0x64, 0x69, 0xfe, 0xeb, 0xbf, 0xff, 0xeb, 0xdb, 0xf1, 0x25, 0x42, 0xb0, 0x61,
+	0x3c, 0xff, 0xa0, 0xd8, 0x1e, 0xe0, 0x3c, 0x87, 0xf4, 0x69, 0xd7, 0xd0, 0x39, 0xf3, 0x61, 0x47,
+	0x60, 0xe4, 0x63, 0xf4, 0xd1, 0x0d, 0xc4, 0x5e, 0xa5, 0x11, 0xd8, 0xf7, 0x13, 0xdb, 0xe4, 0x00,
+	0xe6, 0x8e, 0x18, 0x57, 0x45, 0x2a, 0xce, 0xe6, 0x7e, 0x1d, 0x90, 0x72, 0x74, 0x11, 0x31, 0xe7,
+	0xc8, 0x8c, 0xc2, 0x24, 0xcf, 0x21, 0xf3, 0xd8, 0x74, 0x79, 0xf0, 0x02, 0x89, 0x43, 0x5b, 0x8e,
+	0xba, 0x49, 0x5c, 0x7a, 0x03, 0x41, 0xb3, 0x24, 0xe3, 0x19, 0x6a, 0xf6, 0x91, 0xaa, 0xb0, 0x78,
+	0xc4, 0x02, 0xe8, 0x04, 0x0a, 0xaa, 0xff, 0x2d, 0x1d, 0xe4, 0x23, 0xaf, 0x26, 0x7a, 0x13, 0xf1,
+	0x72, 0x64, 0x25, 0x84, 0x57, 0x7c, 0x6d, 0x1a, 0x5f, 0x11, 0x0d, 0x52, 0xc2, 0xe6, 0x5d, 0xaf,
+	0x90, 0xc6, 0x99, 0x9b, 0x1e, 0x2a, 0xc3, 0x2e, 0xcd, 0x21, 0x32, 0x21, 0x69, 0x0f, 0xb9, 0x5f,
+	0x8c, 0x19, 0x10, 0x81, 0xf9, 0x38, 0x58, 0x57, 0xe3, 0x90, 0x57, 0x22, 0x2b, 0xb4, 0x4b, 0x6f,
+	0x21, 0xfe, 0x0d, 0xb2, 0xea, 0xe1, 0x0f, 0x15, 0x78, 0xf2, 0x4b, 0x48, 0x1f, 0xb1, 0xa0, 0x96,
+	0x40, 0x40, 0xa2, 0x4b, 0x3f, 0x7d, 0x13, 0x71, 0x6f, 0x92, 0xf5, 0x18, 0x5c, 0x19, 0x97, 0x26,
+	0xac, 0x84, 0x7c, 0xa8, 0xd8, 0x0e, 0x77, 0xa3, 0x63, 0xae, 0xe4, 0x50, 0x82, 0x6e, 0xa3, 0x86,
+	0x37, 0x09, 0xbd, 0x4c, 0x43, 0xb1, 0x8b, 0x68, 0xaf, 0x60, 0x69, 0xd8, 0x09, 0x01, 0x42, 0x96,
+	0x23, 0x90, 0x4b, 0x46, 0x3e, 0x1b, 0x41, 0xa6, 0x1f, 0xa2, 0xbe, 0x02, 0x79, 0xff, 0x6a, 0x7d,
+	0xc5, 0xd7, 0xe2, 0x4f, 0x4d, 0x78, 0xf8, 0xbb, 0x04, 0xac, 0x1e, 0x62, 0x33, 0x78, 0x6d, 0xed,
+	0x71, 0xa7, 0xeb, 0x01, 0x1a, 0xf0, 0x11, 0xdd, 0x19, 0xc5, 0x80, 0xa2, 0xea, 0x44, 0xbf, 0x49,
+	0x40, 0xee, 0xc0, 0x74, 0x7f, 0x14, 0x43, 0xfe, 0x1f, 0x0d, 0xf9, 0x98, 0x7e, 0x38, 0x92, 0x21,
+	0x86, 0xd4, 0x4e, 0x8c, 0x88, 0x9c, 0x8b, 0x3a, 0x19, 0xcc, 0x39, 0x09, 0x14, 0x47, 0xe4, 0x5f,
+	0x33, 0xe3, 0x4d, 0xc4, 0xfa, 0x4d, 0x02, 0xd6, 0x65, 0x2d, 0x0b, 0x29, 0x3a, 0x41, 0x33, 0xd6,
+	0x43, 0x0a, 0x90, 0x2e, 0xd7, 0xc4, 0xba, 0x7e, 0x07, 0x4d, 0x78, 0x87, 0x5e, 0xc3, 0x04, 0x51,
+	0xf1, 0x7e, 0x9b, 0x80, 0x8d, 0x08, 0x2b, 0x8e, 0x45, 0x65, 0x97, 0x66, 0xac, 0x05, 0xcc, 0x40,
+	0xc6, 0xb1, 0x6d, 0x5c, 0x61, 0x45, 0x01, 0xad, 0xd8, 0xa2, 0x6f, 0x5c, 0x6a, 0x85, 0xbc, 0x3f,
+	0x84, 0x19, 0x2d, 0x58, 0x0d, 0x85, 0x1c, 0x55, 0x05, 0x63, 0x9e, 0x0d, 0xdb, 0xe2, 0xd2, 0xf7,
+	0x50, 0xd7, 0x5b, 0xe4, 0x3a, 0xba, 0x08, 0x87, 0xb5, 0xc8, 0xdc, 0xaa, 0xc6, 0xc9, 0xaf, 0x6c,
+	0x35, 0x14, 0x7f, 0x29, 0x44, 0xef, 0xa2, 0xc2, 0x6d, 0xb2, 0x75, 0x65, 0x88, 0x55, 0x0f, 0x47,
+	0xbe, 0x4d, 0xc0, 0x66, 0x4c, 0xae, 0x11, 0x53, 0x46, 0x7a, 0x33, 0x5a, 0xe1, 0x75, 0xb2, 0xbe,
+	0x83, 0x26, 0xdd, 0xa1, 0xd7, 0x36, 0x49, 0x04, 0xbd, 0x0c, 0x49, 0x11, 0x8b, 0xab, 0x0a, 0xf3,
+	0x62, 0xb0, 0xf5, 0x74, 0xe9, 0x2a, 0x2a, 0xcb, 0x90, 0x45, 0x4f, 0x99, 0x57, 0x89, 0xcb, 0x30,
+	0x3f, 0x00, 0x2c, 0x19, 0xf1, 0x90, 0xc9, 0x41, 0x98, 0x23, 0xae, 0x3a, 0x09, 0x67, 0x1a, 0x2e,
+	0x39, 0x85, 0xb4, 0xc6, 0x1a, 0x76, 0xa7, 0x61, 0x5a, 0xcc, 0x33, 0xd3, 0xbf, 0x36, 0x36, 0x1e,
+	0xeb, 0x88, 0xb9, 0x42, 0xc3, 0x98, 0xc2, 0xf1, 0x43, 0xbc, 0xe6, 0x23, 0xae, 0x8a, 0xa1, 0x16,
+	0xdf, 0x83, 0x21, 0x4b, 0x43, 0x9e, 0xca, 0xbb, 0xe1, 0xa7, 0x90, 0xda, 0x77, 0x98, 0xce, 0x95,
+	0x69, 0x64, 0x68, 0x75, 0x08, 0x4d, 0x35, 0x36, 0x74, 0x38, 0x6e, 0xc2, 0xa4, 0x67, 0x90, 0x92,
+	0x45, 0x38, 0xc2, 0xaa, 0x38, 0x27, 0xdf, 0x40, 0xbc, 0x0d, 0xba, 0x16, 0x65, 0x9d, 0x57, 0x56,
+	0x7f, 0x0e, 0xf3, 0xaa, 0xaa, 0x8e, 0x80, 0xac, 0xee, 0x46, 0xba, 0x1e, 0x89, 0xec, 0xd5, 0xc9,
+	0x67, 0x90, 0xd2, 0x58, 0xdd, 0xb6, 0xf9, 0x8f, 0x66, 0xb3, 0x83, 0x70, 0x02, 0xf8, 0x80, 0x59,
+	0x8c, 0xff, 0x80, 0x60, 0x6c, 0x47, 0x03, 0x1b, 0x08, 0x47, 0xea, 0x90, 0x79, 0x68, 0x3b, 0x0d,
+	0x36, 0x32, 0xfa, 0xbb, 0x88, 0xfe, 0xc6, 0xf6, 0x66, 0x24, 0x7a, 0x53, 0x60, 0xd6, 0x94, 0x8e,
+	0x1e, 0xcc, 0x1f, 0xd8, 0x2f, 0x3b, 0x96, 0xad, 0x1b, 0xa5, 0xb6, 0xde, 0x62, 0x83, 0xbb, 0x0b,
+	0x1f, 0x3d, 0x5e, 0x7e, 0xd9, 0x53, 0x5b, 0xee, 0x32, 0x07, 0x27, 0xa2, 0xe2, 0x75, 0x84, 0x7e,
+	0x8c, 0x9a, 0xee, 0xd2, 0xf7, 0x22, 0x35, 0x99, 0x02, 0xa2, 0x66, 0x28, 0x0c, 0xb7, 0xf8, 0x5a,
+	0x34, 0xfa, 0x5f, 0x89, 0x0d, 0xf4, 0x75, 0x02, 0x56, 0x8e, 0x18, 0x0f, 0xe8, 0x90, 0xb3, 0x8d,
+	0x78, 0x03, 0xa2, 0xc8, 0xf4, 0x3e, 0x1a, 0xf0, 0x21, 0xb9, 0x37, 0x82, 0x01, 0x45, 0x57, 0x6a,
+	0xea, 0x61, 0x2b, 0x16, 0xc0, 0x1b, 0x51, 0xbb, 0x2a, 0x64, 0x64, 0x14, 0xf7, 0x49, 0x53, 0x36,
+	0x9a, 0x01, 0x24, 0x77, 0x28, 0xaf, 0x51, 0xda, 0x5c, 0xfa, 0x3e, 0xaa, 0x7b, 0x9b, 0xbc, 0x79,
+	0x1d, 0x75, 0xe4, 0x15, 0x64, 0xf7, 0x45, 0xcf, 0x6c, 0x5d, 0xd3, 0xc3, 0xc8, 0x04, 0x2b, 0x0f,
+	0xb7, 0x47, 0xf2, 0xf0, 0x0f, 0x09, 0xc8, 0xee, 0x36, 0xb8, 0x79, 0xae, 0x73, 0x86, 0x5a, 0xe4,
+	0x7d, 0x30, 0xa2, 0xea, 0x7d, 0x54, 0xfd, 0x29, 0xfd, 0x64, 0x94, 0xd4, 0x4a, 0x72, 0x0f, 0xf5,
+	0x89, 0x8d, 0xf6, 0xfb, 0x04, 0x64, 0x34, 0x76, 0xce, 0x1c, 0xfe, 0x3f, 0x31, 0xc4, 0x41, 0xd5,
+	0xc2, 0x90, 0x0a, 0x2c, 0x0e, 0x6e, 0x9b, 0x70, 0x4f, 0x3e, 0xef, 0x59, 0x24, 0x9b, 0x71, 0x8a,
+	0x2a, 0xd7, 0x49, 0x3e, 0x52, 0xa5, 0x6c, 0xc2, 0x9f, 0x43, 0xd6, 0x87, 0xa8, 0x06, 0x58, 0x41,
+	0xd4, 0x4c, 0x1f, 0xd5, 0x63, 0xd3, 0x77, 0x10, 0x79, 0x93, 0xdc, 0x8a, 0x46, 0xf6, 0x46, 0x66,
+	0x2e, 0xe9, 0xc0, 0xb2, 0x8c, 0xd6, 0xb0, 0x82, 0x30, 0x68, 0x6c, 0x21, 0x52, 0x1d, 0x26, 0xbd,
+	0x4a, 0x99, 0x08, 0xd0, 0xa9, 0x3f, 0x40, 0xd7, 0x6b, 0x60, 0x2f, 0x8f, 0x92, 0x6c, 0x5c, 0x19,
+	0x2c, 0x05, 0x61, 0x47, 0xe9, 0x9d, 0xb6, 0x50, 0x01, 0x25, 0xb7, 0x63, 0x15, 0x78, 0x3d, 0xd3,
+	0x97, 0x7e, 0xeb, 0xe5, 0x6c, 0x2c, 0xae, 0x9d, 0xc8, 0x86, 0xe7, 0x6b, 0x6e, 0xdc, 0xdd, 0x2d,
+	0x07, 0x73, 0x44, 0xc3, 0x09, 0xc5, 0x40, 0x7e, 0x28, 0x32, 0x21, 0x3c, 0xba, 0x89, 0x70, 0x6b,
+	0xe4, 0x46, 0x14, 0x9c, 0xec, 0x07, 0x6a, 0x90, 0x1e, 0x58, 0xac, 0x82, 0x12, 0x67, 0xf2, 0x52,
+	0xc4, 0x3c, 0xcf, 0xf5, 0xc6, 0x13, 0x64, 0x79, 0x48, 0x89, 0x0a, 0xc9, 0x43, 0x48, 0x57, 0xb9,
+	0xc3, 0xf4, 0x76, 0x45, 0x6f, 0xbc, 0x60, 0xdc, 0x2d, 0xf7, 0x38, 0x59, 0x09, 0x44, 0x5a, 0x32,
+	0xca, 0x3d, 0x1e, 0xbb, 0x81, 0xc6, 0xb6, 0x12, 0xe4, 0x10, 0xdb, 0x2a, 0x66, 0x9e, 0x33, 0x05,
+	0x54, 0xea, 0x5c, 0x32, 0x9f, 0x08, 0xe3, 0x97, 0x3a, 0x74, 0xec, 0x6e, 0x82, 0x3c, 0x82, 0xac,
+	0x82, 0xd9, 0x3f, 0xd3, 0x3b, 0x2d, 0x86, 0x53, 0xc5, 0x78, 0x97, 0x73, 0x01, 0x24, 0xdf, 0x12,
+	0x04, 0x3b, 0x85, 0x85, 0x7e, 0x42, 0xe4, 0x77, 0xab, 0x60, 0xe3, 0x1f, 0x0e, 0x57, 0xdc, 0x66,
+	0x55, 0xd1, 0xf2, 0x72, 0x92, 0x91, 0x3d, 0x9a, 0xff, 0x1b, 0x49, 0xd4, 0x1c, 0x34, 0x1f, 0x45,
+	0xa4, 0xb7, 0x51, 0x45, 0x9e, 0xf6, 0x13, 0x12, 0x18, 0xab, 0x8a, 0x43, 0xf6, 0x14, 0xed, 0xf6,
+	0xa3, 0x47, 0x0e, 0x06, 0xfc, 0x5f, 0x3e, 0xc2, 0x86, 0x07, 0x50, 0xa5, 0xe1, 0x06, 0x64, 0x64,
+	0xb1, 0xf8, 0x61, 0x86, 0xbf, 0x85, 0x2a, 0x6e, 0xe5, 0x2f, 0x51, 0x21, 0xac, 0x37, 0x20, 0x23,
+	0x7b, 0xa1, 0x2b, 0xb5, 0xc4, 0xed, 0x27, 0xe5, 0xcb, 0xf6, 0x65, 0xbe, 0xa8, 0x83, 0x11, 0xf8,
+	0xfa, 0x73, 0xe5, 0xc1, 0x08, 0x44, 0x2c, 0x74, 0x30, 0x02, 0x5a, 0xc8, 0x63, 0x6c, 0xe8, 0xf1,
+	0xea, 0x71, 0xa3, 0x1b, 0x7a, 0xc9, 0xf3, 0xba, 0x44, 0xb2, 0x16, 0x7f, 0xf1, 0xb8, 0xe4, 0x0b,
+	0x98, 0xf5, 0xc6, 0xbe, 0x01, 0xb0, 0x5c, 0xdc, 0xfc, 0x98, 0xbe, 0x8d, 0xb0, 0xb7, 0xe9, 0xcd,
+	0x48, 0x58, 0x97, 0x59, 0xcd, 0x1a, 0x17, 0x68, 0x4f, 0xb1, 0x3f, 0x0a, 0x8c, 0xcd, 0x87, 0xdf,
+	0x6f, 0x43, 0x73, 0xf5, 0x70, 0xe5, 0x11, 0xc7, 0x48, 0xc8, 0xa9, 0x17, 0x5b, 0xb3, 0x4e, 0xbe,
+	0x04, 0x72, 0xc4, 0xf8, 0xd0, 0xe4, 0x7c, 0x68, 0x08, 0x16, 0x35, 0x5c, 0x0f, 0xc7, 0x23, 0x88,
+	0x8d, 0x73, 0x7a, 0xe2, 0xc2, 0x7c, 0xd5, 0x6c, 0xf7, 0x2c, 0x9d, 0x33, 0x5c, 0x4f, 0xd6, 0xfb,
+	0x81, 0xf0, 0x93, 0xd5, 0xb7, 0xae, 0xb8, 0x3b, 0x3f, 0x34, 0x98, 0x08, 0xc6, 0x48, 0x21, 0xd5,
+	0x04, 0x92, 0xd8, 0x99, 0xfb, 0x30, 0xd7, 0x1f, 0x91, 0x93, 0x1b, 0x9e, 0xc2, 0xd0, 0xf0, 0x3c,
+	0x1f, 0xcf, 0xa2, 0x63, 0xe4, 0x18, 0x40, 0xbe, 0x55, 0xe1, 0x10, 0x29, 0xe5, 0xef, 0x08, 0x62,
+	0x37, 0xb4, 0x7a, 0x1d, 0xa5, 0x0b, 0xc2, 0xc6, 0xc1, 0x6a, 0xf5, 0xc2, 0xac, 0xde, 0xa5, 0x46,
+	0xc0, 0x1b, 0xbc, 0xf5, 0x9d, 0x7f, 0x50, 0xf4, 0x2d, 0x17, 0x80, 0x5f, 0x40, 0x52, 0x14, 0x8f,
+	0x57, 0x1c, 0xbf, 0xbb, 0x91, 0x15, 0x2f, 0x72, 0xf2, 0x33, 0x5c, 0x97, 0x35, 0xcc, 0xa6, 0xc9,
+	0x9c, 0xfc, 0x92, 0x47, 0xd7, 0x18, 0xef, 0x39, 0x1d, 0xe4, 0xba, 0x74, 0x0d, 0x81, 0x97, 0x49,
+	0xd6, 0x0b, 0xa8, 0x1f, 0xea, 0x04, 0x92, 0x55, 0xdf, 0x63, 0x7f, 0x6c, 0xeb, 0x7d, 0xe0, 0x8b,
+	0x35, 0x37, 0x84, 0xea, 0x87, 0x39, 0x83, 0x6c, 0x95, 0xeb, 0x0e, 0xf7, 0x3e, 0x6f, 0x8a, 0x96,
+	0xd4, 0xee, 0x90, 0xfe, 0x97, 0xdf, 0xa1, 0xcf, 0x9e, 0x83, 0xc3, 0x1c, 0x38, 0x2d, 0xaa, 0x64,
+	0xd0, 0xfe, 0x44, 0xd7, 0x15, 0x98, 0x35, 0xfc, 0x32, 0x24, 0x8e, 0xc9, 0xfd, 0xc4, 0xf6, 0x9e,
+	0x05, 0x59, 0xdb, 0x69, 0xe1, 0x8d, 0xd1, 0xb0, 0x1d, 0x43, 0xe1, 0xec, 0xa5, 0xe4, 0xcc, 0xbd,
+	0x82, 0x3f, 0x7d, 0xf8, 0x45, 0xa1, 0x65, 0xf2, 0xb3, 0x5e, 0x5d, 0x44, 0xa7, 0xe8, 0x49, 0xaa,
+	0x9f, 0xa0, 0xdc, 0xf1, 0x7e, 0x90, 0xb2, 0x53, 0x6c, 0xd9, 0x8a, 0xf6, 0xd7, 0xf1, 0x95, 0xb2,
+	0x87, 0xf7, 0xd4, 0x3f, 0xc2, 0xaf, 0x8c, 0x57, 0x26, 0x2a, 0x93, 0x95, 0xa9, 0xca, 0x74, 0x65,
+	0xa6, 0x32, 0x5b, 0x9f, 0xc6, 0xb5, 0x3b, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x26, 0xc1,
+	0x93, 0xdc, 0x22, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -2352,6 +2433,8 @@
 	RebootDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error)
 	// Delete a device
 	DeleteDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error)
+	// Forcefully delete a device
+	ForceDeleteDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error)
 	// Request an image download to the standby partition
 	// of a device.
 	// Note that the call is expected to be non-blocking.
@@ -2423,6 +2506,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)
 }
@@ -2678,6 +2762,15 @@
 	return out, nil
 }
 
+func (c *volthaServiceClient) ForceDeleteDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error) {
+	out := new(empty.Empty)
+	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ForceDeleteDevice", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *volthaServiceClient) DownloadImage(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error) {
 	out := new(common.OperationResp)
 	err := c.cc.Invoke(ctx, "/voltha.VolthaService/DownloadImage", in, out, opts...)
@@ -3046,6 +3139,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...)
@@ -3113,6 +3215,8 @@
 	RebootDevice(context.Context, *common.ID) (*empty.Empty, error)
 	// Delete a device
 	DeleteDevice(context.Context, *common.ID) (*empty.Empty, error)
+	// Forcefully delete a device
+	ForceDeleteDevice(context.Context, *common.ID) (*empty.Empty, error)
 	// Request an image download to the standby partition
 	// of a device.
 	// Note that the call is expected to be non-blocking.
@@ -3184,6 +3288,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)
 }
@@ -3678,6 +3783,24 @@
 	return interceptor(ctx, in, info, handler)
 }
 
+func _VolthaService_ForceDeleteDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(common.ID)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).ForceDeleteDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/voltha.VolthaService/ForceDeleteDevice",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ForceDeleteDevice(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _VolthaService_DownloadImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(ImageDownload)
 	if err := dec(in); err != nil {
@@ -4286,6 +4409,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 {
@@ -4417,6 +4558,10 @@
 			Handler:    _VolthaService_DeleteDevice_Handler,
 		},
 		{
+			MethodName: "ForceDeleteDevice",
+			Handler:    _VolthaService_ForceDeleteDevice_Handler,
+		},
+		{
 			MethodName: "DownloadImage",
 			Handler:    _VolthaService_DownloadImage_Handler,
 		},
@@ -4537,6 +4682,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 b092be3..132b768 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -88,8 +88,9 @@
 github.com/opencord/voltha-lib-go/v3/pkg/db
 github.com/opencord/voltha-lib-go/v3/pkg/db/kvstore
 github.com/opencord/voltha-lib-go/v3/pkg/log
-# github.com/opencord/voltha-protos/v3 v3.4.1
+# github.com/opencord/voltha-protos/v3 v3.4.6
 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
